Google Maps сохраняет полигоны и точки в MySQL с помощью PHP

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

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

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

3 ответов


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

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

Если вы собираетесь обрабатывать много запросов, таких как "найти мне все объекты в этом пространстве". Вы можете посмотреть на использование пространственных расширений.

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

создать полигоны таблиц ( polygon_id int не null, vertices_json varchar(4096) )


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

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

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


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