Как правильно задать заголовок Google Maps JavaScript API версии 3 в случае указания почтового адреса? - PullRequest
5 голосов
/ 14 марта 2012

Я борюсь со следующей проблемой и не могу найти какое-либо решение в документации по API Карт Google или в сети, поэтому постараюсь опубликовать свой вопрос здесь:

Я использовал Googles Static StreetView ImageAPI, где вы можете передать в качестве местоположения long / lat или строку с почтовым адресом.В моем случае я всегда использовал строковый подход, который в большинстве случаев содержит адрес с порядковым номером.Я был удивлен результатами возвращенного изображения, которое в большинстве случаев было идеально ориентировано в направлении искомого адреса.

Теперь я хотел попробовать JavaScript API для StreetViews.Он прекрасно работает с единственным доступным интерфейсом для местоположения путем указания адреса через значения long / lat.Посредством необязательных параметров pov можно также указать заголовок.Но в случае, если вы хотите инициализировать StreetView с почтовым адресом с порядковым номером, вы теряетесь с этим API.Единственный способ - геокодировать почтовый адрес в значение long / lat через API геокодирования, но с недостатком потери информации о заголовке.В конечном итоге исходное изображение StreetView в этом случае было совершенно иначе ориентировано.

Я снова проверил API-интерфейс Static StreetView Image и нашел следующий комментарий к члену заголовка:

заголовок (необязательно): ... Если заголовок не указан, будет рассчитано значение, которое направляет камеру в указанное место, из точки, в которой была сделана ближайшая фотография.

Могу ли я здесь что-нибудь сделать?Как найти идеальный курс между положением сделанной фотографии и тем местом, которое я ищу?Похоже, что только Google может сделать это с помощью некоторой внутренней магии для API-интерфейса Static StreetView.

1 Ответ

5 голосов
/ 27 июня 2012

1) Действительно, геокодируйте почтовый адрес в значение long / lat, чтобы у вас было «точное» местоположение дома.

2) Используйте streetViewService.getPanoramaByLocation, чтобы узнать, доступен ли просмотр улиц, и в ответе будет указано точное местоположение, где было снято изображение улицы.

Теперь вы можете вычислить курс между двумя точками (1 - «дом», 2 - «камера»). Для этого вы можете использовать функцию google.maps.geometry.spherical.computeHeading - см. https://developers.google.com/maps/documentation/javascript/geometry#Navigation

...