Поиск мест внутри определенных государственных границ

Я занимаюсь поиском любимых мест с помощью API Mapbox и Google Maps.

На данный момент я использую формулу haversine для осуществления кругового поиска, начиная с точки. Например, когда я нажимаю на штат на карте, это возвращает мне широту и долготу штата как такового (точно центр штата или страны), а также возвращает мне широту и долготу каждой кардинальной точки (север-юг). Восток-Запад) по формуле haversine я вычисляю расстояние между центром и каждой из точек, и с помощью этого я получаю среднее расстояние с помощью PHP.

math class
{
const radius = 6371;
public function __construct ()
{

}

public function harversine ($ lat, $ lng, $ lat2, $ lng2)
{
$ d = 0;

$ t1 = deg2rad ($ lat);
$ t2 = deg2rad ($ lat2);
$ dt = deg2rad (($ lat2 - $ lat));
$ dl = deg2rad (($ lng2 - $ lng));

$ a = (sin ($ dt / 2) * sin ($ dt / 2)) +
(cos ($ t1) * cos ($ t2)) *
(sin ($ dl / 2)) sin ($ dl / 2));

$ c = 2 * atan2 (sqrt ($ a), sqrt ((1 - $ a)));

$ d = self :: radius * $ c;return floor ($ d);
}
}

Теперь, используя это среднее расстояние, я выполняю поиск в базе данных на основе этого расстояния, чтобы найти места, которые я сохранил, с их соответствующими координатами, которые являются моими любимыми, в пределах базы я снова вычисляю формулу.

Все идеально, проблема заключается в круговом поиске и не ограничивается передачей другого состояния, если расстояние определяет его таким образом, я объясню немного подробнее на примере.

Если я ищу Тлапу, штат Герреро, Мексика и обрабатываю поиск, этот поиск выполняется в форме круга на расстоянии X (от центра).

введите описание изображения здесь

Я приведу все места, если они находятся в области круга, проблема в том, что она проходит от демаркации штата Герреро и, следовательно, больше не работает с моим приложением.

Мне нужно что-то подобное
введите описание изображения здесь

Я говорю, что я сделал поиск в пределах ограничений штата, не проходя через другое государство, но учитывая расстояние поиска, в этом примере 50 км, он продолжит поиск на западе и юго-западе, но больше не будет выходить за пределы северо-востока и северо-востока.

Существует ли какой-либо API Google или Mapbox, который дает мне эти границы или как я могу их рассчитать?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]