沿Google地图路线查找我的数据库中的POI?

时间:2016-06-23 16:22:26

标签: google-maps google-app-engine google-maps-api-3 google-cloud-sql google-cloud-datastore

如果我的前端有一个包含大量POI和Google Map(JS API)的后端云数据库(Google Datastore - NoSQL或Google CloudSQL),我该如何在路径上显示数据库中的POI在地图上?

使用Google Maps API,允许用户输入起始和目的地帖子/邮政编码并显示路线。存储用户lat / lon或地址很容易。我对此进行了一些研究,并坚持最后一点 - 从路径的DB中拉出正确的POI(例如,在距用户指定的路线距离内)。数据库可能包含多个国家/地区的大量POI,但沿任何特定路线的POI密度可能较低。

地图API似乎让我几乎在那里,但并不完全,我不知道如何让它来搜索我的 POI,而不是那些已经在Google地图中的POI。

显然,我希望以节省成本和资源的方式(如果可能的话)这样做。架构是JS / HTML5前端,后端谷歌云(PHP Appengine,数据存储或云SQL)。

感谢您的任何建议或指示!

亚历

1 个答案:

答案 0 :(得分:0)

MySQL支持'空间'索引,允许您根据几何进行查询。您可以在使用空间索引编制索引的字段中为您的POI存储lat / lon。当您想要查询时,您可以创建一个表示您想要查看的位置的形状(例如路线的边界框+一些填充),然后查询该形状中的点的空间索引。

MySQL的文档位于http://dev.mysql.com/doc/refman/5.6/en/spatial-extensions.html。您可以在Cloud SQL中使用它。

App Engine数据存储区域具有地理空间查询的封闭式Alpha:https://cloud.google.com/appengine/docs/java/datastore/geosearch。如果你可以等,也许可以使用它。