现在我有一个允许用户在谷歌地图上绘制多边形的应用程序。我需要使用PHP和MySQL保存这个多边形,但我不确定最佳实践。
我应该启用空间扩展并保存几何图形吗?我应该将每个垂直(lat / lng对)保存在一个数组中吗?另一种我不知道的方法?
我想知道最佳做法是什么。使用MySQL空间扩展似乎令人生畏。它返回WKT中的内容然后我必须解析该文本以使其执行其他操作。这似乎很复杂。
答案 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)
花点时间熟悉空间扩展,因为它们将帮助您完成任务,而不仅仅是这个项目。