Карты Google v3 определяют, какие состояния находятся в границах наложения круга - PullRequest
0 голосов
/ 08 июля 2011

Есть ли способ определить, какие состояния находятся внутри круговых оверлеев, созданных google.maps.Circle?Возможно использование обратного геокодирования и getBounds или содержит?Предоставляет ли Google способ сделать это (используя геокодер или какой-либо другой метод), или должна использоваться база данных точек состояний Широта и Долгота?

1 Ответ

1 голос
/ 08 июля 2011

В API Карт Google нет простого способа сделать это.

Вы можете использовать getBounds(), чтобы получить LatLngBounds объект, приближающийся к кругу.Обратите внимание, что getBounds() вернет прямоугольник, который приблизительно соответствует кругу, поэтому вы можете получить неточные результаты.Чтобы сделать это более точно, вам нужно рассчитать набор точек для аппроксимации круга, используя что-то вроде формулы Хаверсайна в сочетании с центром и радиусом циркса.Чем больше точек вы рассчитываете, тем точнее приближение.

После того, как у вас есть набор ограничивающих точек, вы все еще не совсем вне леса.Похоже, что не существует способа использовать Google Geocoder API для возврата всех состояний в LatLngBounds.Таким образом, вам придется рассчитать еще несколько точек в пределах границ и отправить для них отдельные запросы обратного геокода.И вы все еще можете пропустить государство или два.В общем, гадость, приблизительная форма государства.Для каждого состояния используйте intersects(), чтобы увидеть, пересекается ли оно с вашим кругом.

Возможны и другие возможности, в том числе API Карт Google или другие технологии, в зависимости от вашего варианта использования.

...