我想要一种能够在没有交通的情况下计算行程时间的方法,所以我可以计算出差异所以我知道流量会拖延多少。
另外,有没有办法根据选定的日期和时间进行操作?据我所知谷歌有这个功能,只是不确定他们的API是否已经可用。是否可以不为最终访问者加载地图?
谢谢!
答案 0 :(得分:1)
不幸的是,Google不支持流量数据。
您可以使用彩色道路填充包含交通数据的地图,以显示交通的好坏程度(http://code.google.com/apis/maps/documentation/javascript/examples/layer-traffic.html)。但是,许多道路或许多国家都不支持这种做法。
不幸的是,API中没有支持将流量纳入方向/距离。
Google与实时流量监控机构有很多链接,可以向他们发送数据。 TomTom还收集这些数据并创建如下信息: http://www.tomtom.com/livetraffic/
很多代理商都会向开发人员收取这些数据的费用,有些代理商很容易将其作为RSS Feed提供。
遗憾的是,您很难自己收集所有这些信息,但我认为如果您联系TomTom(例如),他们会愿意为您提供原始数据,但需要付费。
希望有所帮助。
答案 1 :(得分:1)
你可以在json中使用http get和take数据 例如
http://maps.googleapis.com/maps/api/distancematrix/json?origins=49.52041,11.001359&destinations=52.518271,13.408374&mode=driving&language=en-US&sensor=false
答案 2 :(得分:0)
我认为你将能够旅行时间。但是我怀疑和没有交通时间api提供与否。
您可以构建一个没有地图或方向div的GDirections对象。您可以从A到B执行加载请求,然后调用getDuration方法获取总旅行时间。
首先,您需要创建路线对象:
// no need to pass map or results div since
// we are only interested in travel time.
var directions = new GDirections ();
然后执行你的加载请求以解决方向(我使用两个纬度,经度作为我的起点和终点,但你也可以在这里使用地址):
var wp = new Array ();
wp[0] = new GLatLng(32.742149,119.337218);
wp[1] = new GLatLng(32.735347,119.328485);
directions.loadFromWaypoints(wp);
然后您需要侦听加载事件,以便在解决方向后调用 getDuration :
GEvent.addListener(directions, "load", function() {
$('log').innerHTML = directions.getDuration ().seconds + " seconds";
});
您可以找到whole example here和JavaScript here。您可以查看Google Maps Documentation以获取有关您可以为GDirections对象提供的选项的更多信息(例如步行距离等...)。您还应该收听错误事件以进行地理编码失败。
答案 3 :(得分:0)
请参阅此谷歌地图api示例
http://code.google.com/apis/maps/documentation/javascript/examples/distance-matrix.html
示例:
var origin1 = new google.maps.LatLng(55.930385, -3.118425);
var origin2 = "Greenwich, England";
var destinationA = "Stockholm, Sweden";
var destinationB = new google.maps.LatLng(50.087692, 14.421150);
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
origins: [origin1, origin2],
destinations: [destinationA, destinationB],
travelMode: google.maps.TravelMode.DRIVING,
avoidHighways: false,
avoidTolls: false
}, callback);
function callback(response, status) {
// See Parsing the Results for
// the basics of a callback function.
}
根据您的需要设置距离matric参数。