Google Map Javascript API v3: как автоматически / легко настроить уровень масштабирования в зависимости от детализации адреса? и наоборот? - PullRequest
1 голос
/ 10 апреля 2011

2 вопроса о настройке масштабирования на основе детализации адреса или наоборот соответственно:

  1. точно так же, как карта Google, когда пользователи вводят «сша», «Вашингтон» или «Новый»York ', карта Google будет масштабироваться до разных уровней.Это зависит от того, насколько специфичен пользовательский ввод.

    Я прочитал API-интерфейсы Google Map об автоматизации этого, но безрезультатно.Есть ли какие-либо простые способы добиться этого?

  2. В документах google api о 1015 * обратном геолокации форматированный_адрес может иметь 8 уровней "детализации"

    Если пользователь приблизится к определенному уровню и определит маркер там, есть ли какие-либо простые способы вернуть «соответствующий уровень детализации» formatted_address?Или мне нужно самому жестко кодировать логику?

PS Мне не нужен весь подробный код, мне просто нужен правильный способ мышления, чтобы сделать это легко, лучше автоматически.

Ответы [ 2 ]

2 голосов
/ 10 апреля 2011

Я прочитал API документации Google на предмет автоматизации, но безрезультатно. Есть ли простые способы добиться этого?

Re 1. при отправке запроса геокодирования в Google:

http://maps.google.com/maps/api/geocode/xml?address=usa&sensor=false

вы получите viewport и bounds элементов. Эти прямоугольники показывают границы найденного элемента и оптимальное окно просмотра карты, чтобы показать его полностью. Он работает для любого типа объектов, таких как страны, штаты и города.

- <viewport>
- <southwest>
  <lat>-5.7034477</lat> 
  <lng>-161.2792988</lng> 
  </southwest>
- <northeast>
  <lat>64.7366415</lat> 
  <lng>-30.1464832</lng> 
  </northeast>
  </viewport>

Вы можете увеличить карту, чтобы она соответствовала одному из них, используя метод fitBounds().

Re 2.)

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

Насколько я знаю, это невозможно: нет способа получить текущий уровень детализации. Вам нужно будет оценить его вручную в соответствии с числовым уровнем масштабирования - когда я должен показывать города, когда я должен показывать дороги и т. Д.

0 голосов
/ 10 апреля 2011

Вы хотите найти метод getBound в Google-Api. Граница карты Google определяется ее пространственным индексом. Вы хотите найти индекс плитки, где вы можете найти свое местоположение. getBound упрощает поиск этого индекса, в противном случае вам нужно рассчитать индекс с использованием кривой заполнения пространства или пространственного индекса. Вы хотите искать блог Ника пространственного индекса quadtree кривая Гильберта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...