查找我所在位置附近的地址

时间:2013-05-17 10:13:46

标签: google-maps-api-3 geolocation

使用google maps api

查找我所在位置附近的地址

我有一张公司地址表,这些公司的地址位于世界各地。什么是最好的方式来显示公司作为谷歌地图上的标记,距我当前位置50公里半径范围内。可以使用google maps api吗?

2 个答案:

答案 0 :(得分:0)

是的,是的。您需要做的是使用Geocoding service将这些地址转换为纬度和经度(假设您还没有这些地址)。听起来您想要使用Geometry Library来计算您的位置与您的纬度/经度之间的距离,以查看是否需要绘制其标记。

答案 1 :(得分:0)

为了计算两个关闭点之间的距离,给定其纬度和经度,以下方法效果很好。如果(Current_Latitude,Current_Longitude)是您当前的位置,并且(纬度,经度)是另一个位置,只需按如下方式计算:

float LatDiff = Current_Latitude - Latitude;
float LongDiff = Current_Longitude - Longitude;
float CosCurLat = Math.cos(Current_Latitude);
float ConversionFac = 6371000 * Math.PI / 180; // 6371000 is earth radius in metres
float Dist_metres = ConversionFac * Math.sqrt(LatDiff*LatDiff + LongDiff*LongDiff*CosCurLat *CosCurLat );

这种方法的基本思想是计算出当前位置的纬度和经度值多少米。对于实现,请注意ConversionFac是一个常量,因此(取决于您的语言)您可以将其设置为某个地方的全局静态常量。此外,只需要为您感兴趣的所有其他位置计算一次CosCurLat。

实施说明:ConversionFac假设纬度和经度以度为单位。但是,很多cos函数将弧度作为参数,因此请务必根据需要进行转换。