Jak obliczyć odległość między dwoma znacznikami w Google Maps V3? (Podobne do distanceFrom
funkcji inV2.)
Dzięki..
javascript
google-maps-api-3
Waheed
źródło
źródło
Odpowiedzi:
Jeśli chcesz to obliczyć samodzielnie, możesz użyć formuły Haversine:
źródło
p1.lat()
ip1.lng()
zakładają, że dane wejściowe sągoogle.maps.LatLng
obiektami. Jeśli masz po prostu surowe dane , to na przykład{lat: __, lon: __}
zamiast tego skorzystaszp1.lat
.Wydaje się, że w GMap3 jest jakaś metoda. Jest to statyczna metoda
google.maps.geometry.spherical
przestrzeni nazw.Jako argument przyjmuje dwa
LatLng
obiekty i wykorzysta domyślny promień Ziemi wynoszący 6378137 metrów, chociaż domyślny promień można w razie potrzeby zastąpić wartością niestandardową.Upewnij się, że podałeś:
w twojej części głowy.
Połączenie będzie:
źródło
Przykład zastosowania szerokości / długości geograficznej GPS 2 punktów.
źródło
Po prostu dodaj to na początku swojego kodu JavaScript:
a następnie użyj funkcji w ten sposób:
źródło
źródło
script
tagu i wywoływać tych metod. Jak reakcyjny natywny.Oto implementacja c # tej forumuli
źródło
Z Google można to zrobić za pomocą sferycznego api ,
google.maps.geometry.spherical.computeDistanceBetween (latLngA, latLngB);
.Jeśli jednak precyzja projekcji sferycznej lub rozwiązania typu haverine nie jest dla Ciebie wystarczająco precyzyjna (np. Jeśli jesteś blisko bieguna lub obliczasz większe odległości), powinieneś użyć innej biblioteki.
Większość informacji na ten temat znalazłem na Wikipedii tutaj .
Sztuką, aby sprawdzić, czy dokładność dowolnego algorytmu jest wystarczająca, jest wypełnienie maksymalnego i minimalnego promienia ziemi i sprawdzenie, czy różnica może powodować problemy w twoim przypadku użycia. Wiele innych szczegółów można znaleźć w tym artykule
W końcu google api lub haversine będą bez problemu służyć większości celów.
źródło
Za pomocą PHP możesz obliczyć odległość za pomocą tej prostej funkcji:
źródło
K
to da ci odległość w km. Sprawdź to.ROZWIĄZANIE OFFLINE - Algorytm Haversine
Odniesienie: https://en.wikipedia.org/wiki/Great-circle_distance
źródło
Musiałem to zrobić ... Sposób skryptu akcji
źródło
W moim przypadku najlepiej było to obliczyć w programie SQL Server, ponieważ chciałem wziąć bieżącą lokalizację, a następnie wyszukać wszystkie kody pocztowe w pewnej odległości od bieżącej lokalizacji. Miałem również DB, który zawierał listę kodów pocztowych i ich długości. Twoje zdrowie
źródło
źródło
Korzystanie z usługi Google Distance Matrix jest dość łatwe
Pierwszym krokiem jest aktywacja usługi Distance Matrix z konsoli API Google. zwraca odległości między zestawem lokalizacji. I zastosuj tę prostą funkcję
Gdzie origin1 jest Twoją lokalizacją i miejscem docelowymA jest lokalizacją docelową. Możesz dodać powyżej dwóch lub więcej danych.
Rad Pełna dokumentacja z przykładem
źródło
Znalazłem wersję online, która jest w 80% poprawna, ale podłączyłem zły parametr i jest niespójny w użyciu danych wejściowych, ta wersja naprawiła to całkowicie
źródło
Aby obliczyć odległość w Mapach Google, możesz użyć interfejsu API wskazówek. To będzie jeden z najłatwiejszych sposobów. Aby uzyskać dane z Google Server, możesz użyć Retrofit lub Volley. Oba mają swoje zalety. Spójrz na następujący kod, w którym użyłem modernizacji, aby go zaimplementować:
Powyżej znajduje się kod funkcji build_retrofit_and_get_response do obliczania odległości. Poniżej znajduje się odpowiedni interfejs modernizacji:
}
Mam nadzieję, że to wyjaśnia twoje zapytanie. Wszystkiego najlepszego :)
Źródło: Google Maps Distance Calculator
źródło