Google Maps Сохранить полигон и точки в MySQL, используя PHP - PullRequest
9 голосов
/ 02 марта 2011

Прямо сейчас у меня есть приложение, которое позволяет пользователям рисовать многоугольник на картах Google. Мне нужно сохранить этот полигон, используя PHP и MySQL, но я не уверен в лучших практиках.

Должен ли я включить пространственные расширения и сохранить геометрию? Должен ли я сохранить каждую вертикаль (широту / длину пары) в массив? Другой подход, о котором я не знаю?

Мне интересно, каковы лучшие практики. Использование пространственных расширений MySQL кажется пугающим. Он возвращает вещи в WKT, а затем мне нужно проанализировать этот текст, чтобы заставить его делать что-то еще. Это кажется запутанным.

Ответы [ 3 ]

5 голосов
/ 02 марта 2011

Лучше подумать о сценариях использования при планировании уровня хранения.

Это поможет вам определить, для каких запросов вы хотите оптимизировать свой уровень персистентности.

Если вы собираетесь обрабатывать множество запросов типа «Найдите мне все объекты в этом пространстве». Вы можете посмотреть на использование пространственных расширений.

Тем не менее, если большую часть времени вы просто рисуете объект с заданным идентификатором, можно просто сохранить полигоны в виде BLOB-объекта json в БД.

CREATE TABLE Polygons ( polygon_id int не нуль, vertices_json varchar (4096) )

4 голосов
/ 02 марта 2011

Вы также можете использовать: google.maps.geometry.encoding для кодирования / сжатия путей

http://code.google.com/intl/fr/apis/maps/documentation/utilities/polylinealgorithm.html

Я однажды использовал это, чтобы сохранить в базе данных тысячи направлений, и это довольно удобно.

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

Потратьте время, чтобы ознакомиться с пространственными расширениями, поскольку они помогут вам выполнять задачи в будущем, и не только для этого проекта.

...