获取两个位置之间的距离和时间的功能
Function to get distance and time between two location
在这里,我下面有一个代码,当用户单击标记时,将显示谷歌放置API数据。
我还有一个两点位置,坐标(纬度,液化天然气),所以Point1[], Point2[]
我如何计算这个地方之间的道路距离(以公里和时间为单位)并以 HTML 显示。谷歌地图是否有计算此距离和时间的功能?
法典:
google.maps.event.addListener(marker,'click',function(){
service.getDetails(request, function(place, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
//class m_tooltip
var contentStr = '<div><h5>'+place.name+'</h5><p>'+place.formatted_address+'</p>';
if (!!place.photos) contentStr += '<img src='+place.photos[0].getUrl({ 'maxWidth': 500, 'maxHeight': 500 })+'></img>';
if (!!place.formatted_phone_number) contentStr += '<br>'+place.formatted_phone_number;
if (!!place.website) contentStr += '<br><a target="_blank" href="'+place.website+'">'+place.website+'</a>';
var Point1 = [34,666, 56,888];
var Point2 = [77.876, 45,555];
contentStr += '<p>Distance in km:' + functionThatReturnRoadDistance(Point1, Point2) + '</p>';
$(contentStr).dialog({
modal:true
});
} else {
var contentStr = "<h5>No Result, status="+status+"</h5>";
$(contentStr).dialog();
}
});
那么是否有一些谷歌地图或类似的功能可以向我返回以米或公里为单位的距离,而不是地方之间的简单距离,而是道路/路线距离???
更新:我说这个:
function calculateDistances(start,stop) {
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
origins: [start],
destinations: [stop],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false
}, callback);
}
function callback(response, status) {
if (status != google.maps.DistanceMatrixStatus.OK) {
alert('Error was: ' + status);
} else {
var origins = response.originAddresses;
var destinations = response.destinationAddresses;
for (var i = 0; i < origins.length; i++) {
var results = response.rows[i].elements;
for (var j = 0; j < results.length; j++) {
var xxx= "";
xxx += origins[i] + ' to ' + destinations[j]
+ ': ' + results[j].distance.text + ' in '
+ results[j].duration.text + '<br>';
return xxx;
}
}
}
}
并用以下命令调用它:
var start = document.getElementById("from").value;
var stop = place.formatted_address;
contentStr += '<p>'+ calculateDistances(start,stop); + '</p>';
$(contentStr).dialog({
modal:true
});
但不要使用距离矩阵
根据 http://www.movable-type.co.uk/scripts/latlong.html
if (typeof(Number.prototype.toRad) === 'undefined')
{
Number.prototype.toRad = function() {
return this * Math.PI / 180;
}
}
function getDistance(lat1, lon1, lat2, lon2) {
var R = 6371; // km
var dLat = (lat2-lat1).toRad();
var dLon = (lon2-lon1).toRad();
var lat1 = lat1.toRad();
var lat2 = lat2.toRad();
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
return d;
}
这里积分的一个例子:http://jsfiddle.net/dFqmG/(结果以公里为单位)
这
可以帮助你距离矩阵
相关文章:
- Java脚本时间添加
- Json数据包含日期和时间格式
- 如何根据时间运行不同的脚本
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 在wordpress一定时间后更改自定义字段
- 更改angularjs中的日期-时间格式
- 将当前时间添加到我的页面上的特定部分
- 如何获取所有旅行模式的距离和持续时间,例如驾驶,公交,骑自行车,在我的页面中步行以及将其存储在数据库中
- Javascript:获取行驶距离和时间,并在谷歌地图中显示当前位置
- 距离 = 速率 * 时间计算
- 获取两个位置之间的距离和时间的功能
- 使用Dygraph很难指向近距离的时间序列点
- 如何将当前GPS导航器位置设置为destinationA的变量,以查找距离和时间
- 谷歌地图v3中所有路点的总距离和时间
- 从谷歌地图API V3获取旅行距离和旅行时间
- 在mark 's信息泡泡中显示附近的地点,并显示距离和持续时间
- 谷歌距离API时间以分钟为单位
- Duration_in_traffic小于持续时间在谷歌距离矩阵API
- 谷歌距离矩阵API具体出发时间
- 如何计算时间和显示在H-M与12小时时钟,基于距离和速度使用javascript