在 Google 地图上绘制位置数据库

Posted

技术标签:

【中文标题】在 Google 地图上绘制位置数据库【英文标题】:Plotting a database of locations on a Google Map 【发布时间】:2012-09-04 23:25:53 【问题描述】:

我在 SQL 数据库中有 100K+ 纬度/经度,我想将它们绘制在谷歌地图上。用户将输入地址以查找靠近该地址的点。我该怎么做?我有地图工作,用户可以输入地址并将地图中心放在这一点上。只需添加引脚即可。

我将在 JS 中构建前端,并在 php 中构建任何后端。

【问题讨论】:

这个问题似乎太宽泛了。在较高级别上,您需要在您的数据库上运行一些查询以获取用户提交地址附近合理数量的纬度/经度对。您将这些返回到您的页面(例如,使用 AJAX 调用),然后为结果集中的每个纬度/经度添加一些 GMarkers。 谢谢,我会修改得更具体。 其次是 aroth 所说的 - 不确定您遇到的问题(例如 SQL 结构、SQL 查询、将数据泵入地图 api 等)。如果您有尝试过(或想到过)的东西,就把它放进去,这样我们就知道要集中精力了。 【参考方案1】:

让我们从搜索地址开始,我会使用Google places API。这将允许您本地化您的结果并获取相关地点的坐标。

获得坐标后,我会前往服务器进行查找,如果您使用的是 mysql,则可以使用它们的空间扩展,这些扩展具有一些方便的空间索引方式。

您说您有 100k 个项目,但是您无法将所有项目发送到前端以显示在地图上,您需要限制结果集,否则用户浏览器会哭成血泪它试图渲染和处理所有这些。您可以查看Google Maps Marker Clusterer,了解显示高密度标记的好方法。

【讨论】:

以上是关于在 Google 地图上绘制位置数据库的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中步行/驾驶时更新位置标记并在 Google 地图上绘制路径

在地图上绘制 10 万个经纬度位置

如何循环这个 PL/SQL 语句,以便它在我的 Google 地图上绘制多个标记?

使用数据库中的多个纬度和经度值在 Google 地图上标记路线

尝试使用通过EJS传递给客户端的数据绘制多个Google Map标记/信息窗口时,initMap()不是一个函数

在 iPhone 应用程序的地图上绘制用户位置