2017-02-04 107 views
-1

我有我的商店成千上万的财产。我正在尝试编写自动化相关属性。每个属性有纬度经度。当客户点击任何一个物业时,我们需要建议五个最靠近物业的物业作为我们的相关物业。附近的位置使用纬度长 - 谷歌API - PHP

我在php框架工作,所以我期待php相关答案。

任何人都可以指出我的正确方向吗?

回答

0
SELECT id, (3959 * acos(cos(radians(37)) * cos(radians(latitude)) * cos(radians(longitude) - radians(-122)) + sin(radians(37)) * sin(radians(latitude)))) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 5; 

下面是SQL语句,它将查找距离37,-122坐标25英里半径内最近的20个位置。它根据该行的纬度/经度和目标纬度/经度计算距离,然后仅请求距离值小于25的行,按距离排序整个查询,并将其限制为20个结果。以公里而非英里搜索,用6371代替3959.

更多详情click here

0

据我所知(我最近没有使用谷歌地图),谷歌地图不提供这种类型的解决方案。

我相信你需要一个空间数据库;如果您目前使用的RDBMS检查出PostgreSQL中PostGIS的扩展:

http://postgis.net/

下面是引用的使用PostGIS中,空间数据的好清单:

http://twiav-tt.blogspot.ca/2012/07/postgis-using-latitude-and-longitude-to.html http://workshops.boundlessgeo.com/postgis-intro/spatial_relationships.html#st-distance-and-st-dwithin http://revenant.ca/www/postgis/workshop/indexing.html

如果您使用的是Mongo,还有Mongogis:

https://github.com/mongogis

我从来没有与Mongogis合作过,所以我没有任何好的参考。

相关问题