谷歌地图使用PHP保存多边形并在MySQL中指向

时间:2011-03-01 22:47:13

标签: php mysql google-maps google-maps-api-3 gis

现在我有一个允许用户在谷歌地图上绘制多边形的应用程序。我需要使用PHP和MySQL保存这个多边形,但我不确定最佳实践。

我应该启用空间扩展并保存几何图形吗?我应该将每个垂直(lat / lng对)保存在一个数组中吗?另一种我不知道的方法?

我想知道最佳做法是什么。使用MySQL空间扩展似乎令人生畏。它返回WKT中的内容然后我必须解析该文本以使其执行其他操作。这似乎很复杂。

3 个答案:

答案 0 :(得分:5)

在规划存储层时,最好考虑一下您的使用场景。

这将帮助您确定要为持久层优化的查询。

如果你要处理很多问题,比如“找到我这个空间内的所有物体”。您可能希望查看使用空间扩展。

但是,如果大多数情况下你只是绘制一个具有给定id的对象,只需将多边形保存为数据库中的json blob即可。

创建表多边形 ( polygon_id int not null, vertices_json varchar(4096) )

答案 1 :(得分:4)

您还可以使用:google.maps.geometry.encoding来编码/压缩路径

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

我曾经用它在数据库中保存数千个方向,非常方便。

答案 2 :(得分:1)

花点时间熟悉空间扩展,因为它们将帮助您完成任务,而不仅仅是这个项目。