0

使用 google maps api 查找我所在位置附近的地址

我有一张公司表,其地址位于世界各地。在距离我当前位置 50 公里半径范围内的谷歌地图上将公司显示为标记的最佳方式是什么。是否可以使用谷歌地图 api 做到这一点?

4

2 回答 2

0

是的,是的。您需要做的是使用地理编码服务将这些地址转换为纬度和经度(假设您还没有这些地址)。听起来你想使用几何库来计算你的位置和你的纬度/经度之间的距离,看看你是否需要绘制它们的标记。

于 2013-05-17T10:26:54.063 回答
0

为了计算两个接近点之间的距离,给定它们的纬度和经度,以下方法效果很好。如果 (Current_Latitude, Current_Longitude) 是您当前的位置,而 (Latitude, 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函数都以​​弧度为参数,所以一定要根据需要进行转换。

于 2013-05-17T11:51:53.453 回答