В скрипте PHP у меня есть запрос SPARQL, возвращающий POI на заданном расстоянии от другой точки. Это строка в запросе, который обрабатывает гео-фильтрацию:Вычислить ограничительную рамку на основе заданных координат и расстояния/радиуса
FILTER (?long > " . ($resource_long - $search_radius) . " && ?long < " . ($resource_long + $search_radius) . " && ?lat > " . ($resource_lat - $search_radius) . " && ?lat < " . ($resource_lat + $search_radius) . " )
На данный момент я использую целое (переменный $ search_radius), чтобы ограничить свои результаты, и это будет переводить в градусы. Однако есть две проблемы. Во-первых, использование степеней в качестве параметра не очень удобное для пользователя, а километры - предпочесть. Во-вторых, чем дальше от экватора, тем ближе расстояние между двумя градусами долготы. Это, в свою очередь, приведет к меньшему количеству возвращенных результатов. Итак, вопрос: учитывая координату lat/long, как я могу вычислить ограничивающий прямоугольник на основе заданного радиуса/расстояния в км?
Означает ли это, что в результате получается ограничивающая рамка (или окружность) точек, равноудаленных от начальной точки? По-прежнему кажется, что проблема состоит в том, что расстояние между точками более высокой широты меньше расстояния между точками более низкой широты. Мой триггер ржавый, поэтому я могу что-то упустить. –
Дает ограничивающий прямоугольник (или 2, если используется нижний). Поскольку он обрабатывает подавляющее большинство баллов – exussum
Спасибо за ваш ответ, но я не ожидаю ожидаемых результатов. Я создал тестовую среду с картой и сеткой, а также функцию рисования линий между точками, чтобы она давала мне визуальное представление создаваемого ящика. При 0 градусах лат/долго это дает мне хороший квадрат. Моя первоначальная забота заключалась в том, что это будет прямоугольник, который выше и выше по сравнению с его шириной, чем дальше от экватора, который я получаю. Однако результаты, которые я вижу сейчас, представляют собой прямоугольники всех форм. В какой-то момент я также получаю NAN-значение (не-число?) От PHP. –