Jak*_*era 4 php mysql google-maps google-maps-api-3 google-maps-markers
在我的应用程序中,我们要求用户输入邮政编码以查询附近的位置.我们使用zipcode的LatLng对象作为原点,然后我们绘制一个虚构的"边界框"来查询数据库中该范围内的所有位置.这些位置将在地图上显示为用户将能够看到的标记.我们希望将结果限制在10-15左右.
数据库示例:

我正在考虑使用MySQL的BETWEEN运算符在垂直和水平方向上进行±2度的查询,然后LIMIT n是那些结果,或者我可以将整个数据库拉入PHP然后使用它进行抽象range().
我不确定什么是解决这个问题的最好方法,所以如果你们之前有任何人处理过这个场景我会很感激,并且可以提供一些如何解决它的见解.
在sql中执行
SELECT
id,
( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance
FROM
markers
HAVING
distance < 25
ORDER BY
distance
LIMIT
0 , 20;
Run Code Online (Sandbox Code Playgroud)
http://code.google.com/apis/maps/articles/phpsqlsearch.html