像饿了么一样利用地图定位计算坐标附近餐厅的这个方式怎么做的呢?
程序员文章站
2023-12-24 13:34:15
...
像这种场景,点击地图选一个坐标,就可以定位出附近有多少家外卖餐厅,随意拖动那个小杆杆,就能计算任意一个位置附近是否有餐厅,感觉好高级啊,怎么实现的呢?
说说我的想法:
餐厅在开通的时候有三个字段关乎今后的定位搜索:经度,纬度,配送范围(方圆千米/还是区域,这个怎么定的我还真没想好)
然后利用地图的API,得出选的经纬度,然后怎么样我就不知道了
希望知道的大神给我指点一下,谢谢了!
回复内容:
像这种场景,点击地图选一个坐标,就可以定位出附近有多少家外卖餐厅,随意拖动那个小杆杆,就能计算任意一个位置附近是否有餐厅,感觉好高级啊,怎么实现的呢?
说说我的想法:
餐厅在开通的时候有三个字段关乎今后的定位搜索:经度,纬度,配送范围(方圆千米/还是区域,这个怎么定的我还真没想好)
然后利用地图的API,得出选的经纬度,然后怎么样我就不知道了
希望知道的大神给我指点一下,谢谢了!
这个数据库要选用一个原生支持geo的,mongodb是一个不错的选择。
另:Mysql 5.7也加入对geo的原生支持
在这个业务里,对经纬度的写入,查询的代码逻辑是最重要的,距离可以通过经纬度进行计算
而后的一大块业务逻辑其实是前端了
虽然你这个问题放到了PHP里,但其实PHP在中间并没有起到太多作用,或者说,实现难点并不是PHP
原理是geohash,geohash原理对所有的 poi 建立geo索引,然后用已知坐标搜出来需要的poi,再在地图上展示出来。
简单的话mongodb本身就支持geohash,还有地图提供商也提供这种服务。