2013-03-30 7 views
12

Moja aplikacja umożliwia użytkownikowi wybranie dwóch punktów na mapie i znalezienie trasy między nimi za pomocą usługi Wskazówki na mapie Google Apiv3. Następnie współrzędne wzdłuż tej trasy muszą zostać zapisane w bazie danych. Mogłem z powodzeniem napisać cały kod, aby to osiągnąć. Jednak nie mam problemu.Pobieranie wszystkich współrzędnych wzdłuż trasy wygenerowanej przez usługę Wskazówki dojazdu w Google Maps Apiv3

Wiem, że istnieje kilka innych pytań w StackOverflow-One, Two na tym samym, ale myślę, że na pewno oni albo ja pominęli coś tutaj.

Przykładowy kod:

function getCoordinates(result) { 
      var currentRouteArray = result.routes[0]; //Returns a complex object containing the results of the current route 
      var currentRoute = currentRouteArray.overview_path; //Returns a simplified version of all the coordinates on the path 


      obj_newPolyline = new google.maps.Polyline({ map: map }); //a polyline just to verify my code is fetching the coordinates 
      var path = obj_newPolyline.getPath(); 
      for (var x = 0; x < currentRoute.length; x++) { 
       var pos = new google.maps.LatLng(currentRoute[x].kb, currentRoute[x].lb) 
       latArray[x] = currentRoute[x].kb; //Returns the latitude 
       lngArray[x] = currentRoute[x].lb; //Returns the longitude 
       path.push(pos); 
      } 
     } 

Powyższy kod działa idealnie z tym że kb i lb właściwości głównej ścieżki, które wydają się trzymać łata i LNG współrzędne nie zawsze są takie same. Kiedy ostatnio tworzyłem kod, przez kilka dni był kb i lb, a później zmieniono go na mb, nb, a dziś na jb i kb.

Nie widzę żadnych innych właściwości w obiekcie, które mogłyby zapewnić mi latlng inne niż powyższe. Odpowiedzi na inne podobne pytania wspominają ten problem. Czy coś mi umyka? Jakiekolwiek niezawodne rozwiązania, proszę.

Odpowiedz

12

nie używaj kb i funtów, które są minifikowanymi nazwami i nieudokumentowane. Używaj wyłącznie udokumentowane właściwości .lat() i .lng()

+4

Jesteś moim bohaterem – zz3599

+0

Wow! Dziękuję Ci! – Jonathan

0

Inną opcją jest do dekodowania "punkty" string:

http://home.provide.net/~bratliff/routes/ 

Jest dużo szybciej niż przy użyciu LAT()/LNG () metody dla każdego pojedynczego punktu.

Powiązane problemy