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