如何计算谷歌地图最大和最小拉特和长

时间:2016-07-26 17:27:37

标签: javascript google-maps-api-3

我使用Google Maps JavaScript API处理网络应用程序。

我有这个问题:

当用户打开应用程序时,它会生成带有一些自定义标记的地图。 标记存储在具有纬度和经度的数据库(SQL)中。 我有用户位置,半径可以说10km。

我需要从数据库中仅获取用户10km(半径)的标记。

所以在我的where子句中我需要lang的特定值。而且很长。边界。

是否有一些Google API函数或其他方法来计算它。

示例:

我有这个SQL结构: 表标记

CODE                int         
LOCATION_LATITUDE   float           
LOCATION_LONGITUDE  float   

现在在JS中我使用center = user location生成地图。

现在我想只添加地图中心10公里范围内的表标记中的标记(用户位置) 在表Markers中,我有来自世界各地的标记。

1 个答案:

答案 0 :(得分:1)

确定。我找到了解决方案。 - > Haversine公式

让我们说坐标(37,-122)的点是地图的中心。 那么,where语句将是

SELECT code FROM MARKERS WHERE ( 6371 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) < 10

其中6371是地球的半径,以千米为单位(3959英里),10是搜索区域的半径。