MySQL Spatial Extensions: получение записей, относящихся к определенной области - PullRequest
0 голосов
/ 21 марта 2011

Я хочу использовать пространственное расширение MySQL для проекта. То, что это - средство просмотра javascript, отправит края видимой области так, чтобы наиболее влажные, восточные и северные точки и другие точки соответствовали соответствующим значениям (широта и логит). Я привел примеры использования расчётов расстояния и расстояния от. Однако я только хочу вынуть записи, которые были бы точками в видимой области для пользователя. С spartial расширением mysql сказать, если у меня есть:

имя: варчар местоположение: точка длинный: двойной лат: двойной

(Длинный и лат предназначен для построения точки)

Учитывая небольшую таблицу примеров, как бы я вытащил точки в видимой области

Следующая ссылка показывает, как это делается в postgresql. Однако это нужно для MySQL.

Ответы [ 2 ]

1 голос
/ 21 марта 2011

Скорее всего, вы хотите вычислить пространственный индекс самостоятельно.Пространственный индекс - это просто кривая заполнения пространства, которая превращает вашу двумерную задачу в одномерную и, таким образом, облегчает понимание.Вместо того, чтобы выбирать пространственный индекс, скорее всего, вы можете выбрать ключ вложенной строки из sfc или quadtree.Вложенный ключ читается слева направо, и запрос на аналогичные ключи или пары lat / lng, следовательно, представляет собой просто сравнение строк с каждым возможным оператором.Я сделал реализацию SFC в php на phpclasses.org (кривая Гильберта).Скорее всего, вы хотите скачать его!Или, скорее всего, вы хотите выполнить поиск в Google по пространственному индексу Гилберта кривой блога Ника и квадродерева.

0 голосов
/ 21 марта 2011

Вы хотите использовать расширение «geometry» mysql. Если ваше местоположение имеет тип 'geometry', вы можете выполнить такой запрос

SELECT *, AsWKT(location) as geomWKT
FROM myTable
WHERE Intersects(location,GeomFromText('POINT(1.9845 49.8543)'))

Некоторые примеры формата здесь

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