2012-03-14 6 views
5

walczę z następującym problemem i nie można znaleźć żadnego rozwiązania w goolge Maps API docs lub w sieci, dlatego postaram się odpowiedzieć na moje pytanie tutaj:Jak ustawić prawidłowy nagłówek dla Google Maps JavaScript API Version 3 w przypadku gdy adres pocztowy jest określony?

używałem Googles Static StreetView API obrazu, gdzie możesz podać jako lokalizację długą/długą lub ciąg z adresem pocztowym. W moim przypadku zawsze stosowałem metodę łańcuchową, która zawiera w większości przypadków adres z numerem domowym. Zaskoczyły mnie wyniki zwracanego obrazu, który w większości przypadków był idealnie zorientowany w kierunku szukanego adresu.

Teraz chciałem spróbować JavaScript API dla StreetViews. Działa doskonale z jedynym dostępnym interfejsem dla lokalizacji poprzez specyfikację adresu za pomocą wartości long/lat. Poprzez opcjonalne parametry pov można również określić nagłówek. Ale jeśli chcesz zainicjować StreetView z adresem pocztowym z numerem domu, zgubisz się z tym API. Jedynym sposobem jest geokodowanie adresu pocztowego do wartości długiej/prostej za pomocą interfejsu API geokodującego, ale z handicapem utraty informacji o nagłówku. W ostatecznym wyniku początkowy obraz StreetView był w takim przypadku zupełnie inny.

sprawdziłem ponownie Static StreetView API obrazu i znaleźć do komentarza członka Nagłówek:

pozycji (opcjonalnie): ... Jeśli nie pozycja jest określona wartość zostanie obliczona, że ​​kieruje kamerę w kierunku określona lokalizacja, od miejsca, w którym zrobiono najbliższe zdjęcie.

Czy mogę coś tutaj zrobić? Jak znaleźć idealny nagłówek między pozycją zrobionego zdjęcia a lokalizacją, której szukam? Wygląda na to, że Google może to zrobić dzięki wewnętrznej magii dla Static StreetView Image API.

Odpowiedz

5

1) Rzeczywiście, geokoduj adres pocztowy do wartości długich/lat, aby mieć "dokładną" lokalizację domu.

2) Użyj streetViewService.getPanoramaByLocation, aby sprawdzić, czy widok ulicy jest dostępny, a odpowiedź będzie zawierała dokładną lokalizację, w której zostało zrobione zdjęcie z ulicy.

Teraz możesz obliczyć kurs pomiędzy dwoma punktami (1 oznacza "dom", a 2 oznacza "kamerę"). Możesz użyć funkcji google.maps.geometry.spherical.computeHeading - patrz: https://developers.google.com/maps/documentation/javascript/geometry#Navigation

Powiązane problemy