2016-01-04 22 views
5

Jestem naprawdę nowy w użyciu interfejsów API, więc po spojrzeniu na mapach google google nie jestem pewien, czy istnieją API zaprojektowane do użycia dla C#. Nie potrzebuję mapy google do pokazania na mojej aplikacji wszystko, co muszę wiedzieć, czy mogę korzystać z Google Maps API na C#. This is the one i will like to usegoogle maps API dla C#

Szukałem go w wielu miejscach, ale wszystko, co mogłem znaleźć, było alternatywą dla używania Gmaps, ale to nie jest to, co chcę.

¿Można z niego korzystać?

+1

Witamy w StackOverflow! Chcemy mieć jakiś rzeczywisty kod w naszych pytaniach i odpowiedziach. To pytanie jest prawdopodobnie zamknięte. Nie pozwól, aby to zniechęciło Cię do zadawania innych pytań w przyszłości. – Marijn

Odpowiedz

5

1. Utwórz Requests do API Google Maps przez siebie

Wystarczy wysłać HTTP Requests do API Google Maps, a następnie pracować z wyników. Możesz użyć numeru WebRequest, aby przekierowywać żądania do aplikacji Google api. Potrzebujesz do tego celu Maps API Key.


Będziesz musiał zbudować parametry GET, np. origin=...&destination=...&key=YOUR_API_KEY + przeanalizuj odpowiedź JSON, aby coś z nią zrobić.

Google Maps Api Documentation (w interfejsie API usług sieci Web) zawiera listę parametrów żądania i przykładowe odpowiedzi.

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(); 
odpowiedź

JSON będzie wyglądać następująco (od Directions API )

{ 
    "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 ©2016 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" : "[email protected]]@[email protected]@[email protected]@[email protected][email protected]@[email protected]`@[email protected]`[email protected]{YlZiBdBaIhGkFrDeCtBuFxFmIdJmOjPaChDeBlDiAdD}ApGcDxU}@hEmAxD}[[email protected]\\yBdEqFnJqB~DeFxMgK~VsMr[uKzVoCxEsEtG}[email protected]][email protected]{[email protected]`CwBfHaEzJuBdEyEhIaBnCiF|K_Oz\\ 
      {MdZwAbDaKbUiB|CgCnDkDbEiE|[email protected]|[email protected]|[email protected][email protected]\\`[email protected]`@}F`MqK`PeGzIyGfJiG~GeLhLgIpIcE~FsDrHcFfLqDzH{CxEwAbBgC|B}F|DiQzKsbBdeA{[email protected]~\\[email protected]^wJfOySx[[email protected]_EvAiFpCaC|AqGpEwHzFoQnQoTrTqBlCyDnGmCfEmDpDyGzGsIzHuZzYwBpBsC`CqBlAsBbAqCxAoBrAqDdDcNfMgHbHiPtReBtCkD|GqAhBwBzBsG~FoAhAaCbDeBvD_BlEyM``@uBvKiA~DmAlCkA|B}@lBcChHoJnXcB`GoAnIS~CIjFDd]A|QMlD{@jH[[email protected]`[email protected]~HeMx^eDtJ}BnG{DhJU`@[email protected]@[email protected]{[email protected]@kBSsEW{GV}[email protected]? 
      [email protected]@mE`BsH|[email protected]}[email protected]@[email protected]][email protected]@[email protected][email protected]`DoBxDaHvM_FzImDzFeCpDeC|CkExDiJrHcBtAkDpDwObVuCpFeCdHoIl\\uBjIuClJsEvMyDbMqAhEoDlJ{C|J}FlZuBfLyDlXwB~QkArG_AnDiAxC{G|OgEdLaE`LkBbEwG~KgHnLoEjGgDxCaC`BuJdFkFtCgCnBuClD_HdMqEzHcBpB_C|BuEzCmPlIuE|[email protected]@|[email protected]_AlC{AxCcL`U{GvM_DjFkBzBsB`[email protected]@[email protected]|BcFjC}DbEuD~D`@[email protected]@[email protected]@}@vAgCbEaHfMqA`[email protected]@bAO`@[email protected]@W" 
     }, 
     "summary" : "I-5 N and US-101 N", 
     "warnings" : [], 
     "waypoint_order" : [] 
     } 
    ], 
    "status" : "OK" 
} 

2. ... albo użyć dedykowanej biblioteki

  • gmaps-api-net (github) oferuje odkryty Interfejs API dla Map Google. Możesz go uzyskać przez nuget. Nie testowałem tego, ale wygląda na bardzo łatwy w użyciu.
+0

https://msdn.microsoft.com/en-us/library/debx8sh9(v=vs.110).aspx dla języka angielskiego ** Strona WebRequest **. – Illuminator