استفاده از Api گوگل مپ در سی شارپ

شاید شما هم همانند بسیاری دیگر از برنامه نویسان در استفاده از API تازه کار هستید ، چراکه بسیاری از برنامه نویسان پس از جستجو در صفحه API Google Maps ، مطمئن نیستند که API مشخصی برای گوگل مپ وجود دارد که در زبان سی شارپ استفاده شود !

ابزارهای بسیاری برای انجام اینکار وجود دارد اما بیاید به جای رفرنس دهی خودمان این پرسش را پاسخ دهیم و ببینیم چگونه می شود به سرویس گوگل مپ در زبان سی شارپ دسترسی گرفت.

روش اول

۱٫ درخواست های Google Maps API را توسط خودتان ایجاد کنید

شما در قدم اول تنها کاری که باید ابتدا انجام دهید این است که HTTP-Requests را به google maps API ارسال کنید و سپس با نتایج بدست آمده را  ، در هر کار دیگری که میخواهید به کار ببرید. برای فراخوانی درخواست ها به google api می توانید از WebRequest استفاده کنید. برای این کار به یک کلید API Maps نیاز دارید. پس از ورود به لینک قرار داده شده از مستندات آن سایت برای ساخت کلید استفاده کنید.

سپس در قدم بعدی شما باید پارامترهای GET را ایجاد کنید. پارامتر شما چیزی شبیه به مورد زیر است :

origin=…&destination=…&key=YOUR_API_KEY

Google Maps Api Documentation (در بخش API های وب سرویس) پارامترهای درخواست و پاسخ های دریافت بسیاری مثال زده شده است که در لینک قرار داده شده می توانید این نمونه کدها را مشاهده کنید.

پلتفرم بوی اجرا شدن خروجی صحیح قطعه کد زیر را تایید می کند

قطعه کدی که در زیر مشاهده می کنید توسط برنامه کامپایلر به جهت تست آزمایش شده و خروجی صحیح مدنظر را بدست آورد.

string url = @"https://maps.googleapis.com/maps/api/directions/json?origin=75+9th+Ave+New+York,+NY&destination=MetLife+Stadium+1+MetLife+Stadium+Dr+East+Rutherford,+NJ+07073&key=YOUR_API_KEY";

WebRequest request = WebRequest.Create(url);

WebResponse response = request.GetResponse();

Stream data = response.GetResponseStream();

StreamReader reader = new StreamReader(data);

// json-formatted string from maps api
string responseFromServer = reader.ReadToEnd();

response.Close();

پس از راه اندازی اولیه قطعه کد بالا پاسخ JSON چیزی شبیه به مورد زیر خواهد بود :

لینک کمکی برای مطالعه بیشتر

{
   "geocoded_waypoints" : [
      {
         "geocoder_status" : "OK",
         "place_id" : "ChIJRVY_etDX3IARGYLVpoq7f68",
         "types" : [
            "bus_station",
            "transit_station",
            "point_of_interest",
            "establishment"
         ]
      },
      {
         "geocoder_status" : "OK",
         "partial_match" : true,
         "place_id" : "ChIJp2Mn4E2-woARQS2FILlxUzk",
         "types" : [ "route" ]
      }
   ],
   "routes" : [
      {
         "bounds" : {
            "northeast" : {
               "lat" : 34.1330949,
               "lng" : -117.9143879
            },
            "southwest" : {
               "lat" : 33.8068768,
               "lng" : -118.3527671
            }
         },
         "copyrights" : "Map data ©۲۰۱۶ Google",
         "legs" : [
            {
               "distance" : {
                  "text" : "35.9 mi",
                  "value" : 57824
               },
               "duration" : {
                  "text" : "51 mins",
                  "value" : 3062
               },
               "end_address" : "Universal Studios Blvd, Los Angeles, CA 90068, USA",
               "end_location" : {
                  "lat" : 34.1330949,
                  "lng" : -118.3524442
               },
               "start_address" : "Disneyland (Harbor Blvd.), S Harbor Blvd, Anaheim, CA 92802, USA",
               "start_location" : {
                  "lat" : 33.8098177,
                  "lng" : -117.9154353
               },

  ... Additional results truncated in this example[] ...


         "overview_polyline" : {
            "points" : "knjmEnjunUbKCfEA?_@]@kMBeE@qIIoF@wH@eFFk@WOUI_@?u@j@k@`@EXLTZHh@Y`AgApAaCrCUd@cDpDuAtAoApA{YlZiBdBaIhGkFrDeCtBuFxFmIdJmOjPaChDeBlDiAdD}ApGcDxU}@hEmAxD}[tt@yNb\\yBdEqFnJqB~DeFxMgK~VsMr[uKzVoCxEsEtG}BzCkHhKWh@]t@{AxEcClLkCjLi@`CwBfHaEzJuBdEyEhIaBnCiF|K_Oz\\
            {MdZwAbDaKbUiB|CgCnDkDbEiE|FqBlDsLdXqQra@kX|m@aF|KcHtLm@pAaE~JcTxh@w\\`v@gQv`@}F`MqK`PeGzIyGfJiG~GeLhLgIpIcE~FsDrHcFfLqDzH{CxEwAbBgC|B}F|DiQzKsbBdeA{k@~\\oc@bWoKjGaEzCoEzEwDxFsUh^wJfOySx[uBnCgCbCoFlDmDvAiCr@eRzDuNxC_EvAiFpCaC|AqGpEwHzFoQnQoTrTqBlCyDnGmCfEmDpDyGzGsIzHuZzYwBpBsC`CqBlAsBbAqCxAoBrAqDdDcNfMgHbHiPtReBtCkD|GqAhBwBzBsG~FoAhAaCbDeBvD_BlEyM``@uBvKiA~DmAlCkA|B}@lBcChHoJnXcB`GoAnIS~CIjFDd]A|QMlD{@jH[vAk@`CoGxRgPzf@aBbHoB~HeMx^eDtJ}BnG{DhJU`@mBzCoCjDaAx@mAnAgCnBmAp@uAj@{Cr@wBPkB@kBSsEW{GV}BEeCWyAWwHs@qH?
            cIHkDXuDn@mCt@mE`BsH|CyAp@}AdAaAtAy@lBg@pCa@jE]fEcBhRq@pJKlCk@hLFrB@lD_@xCeA`DoBxDaHvM_FzImDzFeCpDeC|CkExDiJrHcBtAkDpDwObVuCpFeCdHoIl\\uBjIuClJsEvMyDbMqAhEoDlJ{C|J}FlZuBfLyDlXwB~QkArG_AnDiAxC{G|OgEdLaE`LkBbEwG~KgHnLoEjGgDxCaC`BuJdFkFtCgCnBuClD_HdMqEzHcBpB_C|BuEzCmPlIuE|B_EtDeBhCgAdCw@rCi@|DSfECrCAdCS~Di@jDYhA_AlC{AxCcL`U{GvM_DjFkBzBsB`BqDhBaEfAsTvEmEr@iCr@qDrAiFnCcEzCaE~D_@JmFdGQDwBvCeErEoD|BcFjC}DbEuD~D`@Zr@h@?d@Wr@}@vAgCbEaHfMqA`Cy@dAg@bAO`@gCi@w@W"
         },
         "summary" : "I-5 N and US-101 N",
         "warnings" : [],
         "waypoint_order" : []
      }
   ],
   "status" : "OK"
}

۲- یا از کتابخانه اختصاصی استفاده کنید

در این لینک یک رابط api برای Google Maps ارائه داده شده است . شما می توانید آن را از طریق سرویس محبوب nuget در ویژوال استودیو دریافت کنید. ما این مورد را بررسی نکرده ایم اما استفاده از آن بسیار آسان به نظر می رسد.

حتما قبل از استفاده از کتابخانه ها ، از به روز بودن آنها مطمئن شوید.

روش دوم

همانطور که پیشتر ذکر شد ، شما می توانید درخواست HTTP ارسال کنید و از پاسخ آن با فرمت JSON استفاده کنید.

همچنین اگر یک کتابخانه دات نت می خواهید می توانید از یکی از این کتابخانه های بسته بندی دات نت برای API Google Maps استفاده کنید:

۱-GoogleApi

۲-google-maps

نمونه قطعه کد مثال زده شده برای استفاده از گوگل مپ در سی شارپ :

using GoogleApi.Entities.Common;
using GoogleApi.Entities.Maps.Directions.Request;
using GoogleApi.Entities.Maps.Directions.Response;

public void GetRoute()
{
    DirectionsRequest request = new DirectionsRequest();    

    request.Key = "AIzaSyAJgBs8LYok3rt15rZUg4aUxYIAYyFzNcw";

    request.Origin = new Location("Brasov");
    request.Destination = new Location("Merghindeal");

    var response = GoogleApi.GoogleMaps.Directions.Query(request);

    Console.WriteLine(response.Routes.First().Legs.First().DurationInTraffic);
    Console.WriteLine(response.Routes.First().Legs.First().Distance);
    Console.WriteLine(response.Routes.First().Legs.First().Steps);
}

 

 

آیا این نوشته برای شما مفید بود ؟

1 دیدگاه برای “استفاده از Api گوگل مپ در سی شارپ

  1. Platform boy
    ابولفضل گفته:

    روش اول رو امتحان کردم . خواستم به سایر دوستانم بگم با وجود محدودیت و تحریم ها ولی این سورس قرار داده شده به درستی کار میکنه
    ممنون از مطالب خوبتون

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *