将实际距离转换为 Google 地图距离

Convert real distance to Google Map distance

我在 Google 地图 (Android) 上有一个 marker,我想将标记移动到给定 bearing 和 [=16= 的新位置].

//lat, lng in degrees. Bearing in degrees. Distance in Km
private LatLng newPostion(Double lat,Double lng,Double bearing,Double distance) {
      Double R = 6371; // Earth Radius in Km

       Double lat2 = Math.asin(Math.sin(Math.PI / 180 * lat) * Math.cos(distance / R) + Math.cos(Math.PI / 180 * lat) * Math.sin(distance / R) * Math.cos(Math.PI / 180 * bearing));
       Double lon2 = Math.PI / 180 * lng + Math.atan2(Math.sin( Math.PI / 180 * bearing) * Math.sin(distance / R) * Math.cos( Math.PI / 180 * lat ), Math.cos(distance / R) - Math.sin( Math.PI / 180 * lat) * Math.sin(lat2));

       Double newLat = 180 / Math.PI * lat2;
       Double newLng = 180 / Math.PI * lon2;

       LatLng newLatLng = new LatLng(newLat, newLng);

       return newLatLng;
} 

LatLng newPos = newPostion(myMark.getPosition().latitude,myMark.getPosition().longitude, 90.0,3000.0);

距离计算速度*时间。

distance = speed * time 

假设标记代表一辆汽车,汽车行驶 100 km/h,我需要每 5 秒更新一次标记。

distance = 100 * (5/60)

但问题是在 Google 地图上显示 distance,因为 Google 地图已缩放。使用上面计算的距离移动标记会使标记移动得更远。

谁能帮我把实际距离换算成Google地图距离?

在您的距离计算中,您将秒与分钟(5 秒,60 分钟)混在一起。应该是:

distance = 100 km * (5 sec / 3600 sec)