使用 google maps api 查找我所在位置附近的地址
我有一张公司表,其地址位于世界各地。在距离我当前位置 50 公里半径范围内的谷歌地图上将公司显示为标记的最佳方式是什么。是否可以使用谷歌地图 api 做到这一点?
我有一张公司表,其地址位于世界各地。在距离我当前位置 50 公里半径范围内的谷歌地图上将公司显示为标记的最佳方式是什么。是否可以使用谷歌地图 api 做到这一点?
为了计算两个接近点之间的距离,给定它们的纬度和经度,以下方法效果很好。如果 (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
函数都以弧度为参数,所以一定要根据需要进行转换。