谷歌地图使用 PHP 在 MySQL 中保存多边形和点

Posted

技术标签:

【中文标题】谷歌地图使用 PHP 在 MySQL 中保存多边形和点【英文标题】:Google Maps Save Polygon and points in MySQL using PHP 【发布时间】:2011-07-06 21:21:33 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

这将帮助您确定您希望持久层针对哪些查询进行优化。

如果您要处理大量查询,例如“查找此空间内的所有对象”。您可能想看看使用空间扩展。

但是,如果大多数时候您只是简单地绘制具有给定 id 的对象,则只需将多边形保存为数据库中的 json blob 即可。

创建表格多边形 ( polygon_id int 不为空, vertices_json varchar(4096) )

【讨论】:

那么如何得到多边形的顶点呢?【参考方案2】:

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

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

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

【讨论】:

不再可用【参考方案3】:

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

【讨论】:

以上是关于谷歌地图使用 PHP 在 MySQL 中保存多边形和点的主要内容,如果未能解决你的问题,请参考以下文章

如何使用坐标数组在谷歌地图 API 中绘制多边形?

从谷歌地图drawingManager V3中删除多边形

使用 php 从图像中裁剪多边形

如何使用谷歌地图检测一个点在多边形内?

如何使用 php-mysql,js 在谷歌地图上显示多个位置

如何在不使用 kml 的情况下向 android studio 中的谷歌地图应用程序添加大量多边形