在角度谷歌地图中计算两个纬度和经度之间的旅行时间



我已经在我的项目中实现了角度谷歌地图。我正在使用<agm-direction>来显示方向。现在我想计算两个纬度和经度之间的自行车旅行时间。我已经浏览了互联网,但没有得到我的解决方案。

<agm-map id="map" [latitude]='origin.lat' [longitude]='origin.lng' (mapReady)="addMarker()" [zoom]='15'>
<agm-direction [origin]="origin" [destination]="destination" [renderOptions]="renderOptions" [markerOptions]="markerOptions">
</agm-direction>
</agm-map>
public origin: {lat: 30.7224576, lng: 76.6984192};
public destination: {lat: 30.6949406, lng: 76.72605039999996};
public renderOptions = {
suppressMarkers: true,
}
public markerOptions = {
origin: {
icon: 'http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png',
draggable: true,
},
destination: {
icon: 'http://www.google.com/intl/en_us/mapfiles/ms/micons/red-dot.png',
label: '',
opacity: 0.8,
},
}

首先,您是否有速度信息或您知道自行车的平均速度。 步骤1 - 首先使用以下逻辑获取距离

function getDistanceFromLatLonInKm(lat1,lon1,lat2,lon2) {
var R = 6371; // Radius of the earth in km
var dLat = deg2rad(lat2-lat1);  // deg2rad below
var dLon = deg2rad(lon2-lon1); 
var a = 
Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * 
Math.sin(dLon/2) * Math.sin(dLon/2)
; 
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
var d = R * c; // Distance in km
return d;
}
function deg2rad(deg) {
return deg * (Math.PI/180)
}

第 2 步 -time = distance/speed公式

或者,您可以检查谷歌地图是否提供了任何此类方法,以根据它们可以提供的平均速度的流量获取所有这些值。

最新更新