如何使用Google Maps API返回没有流量的AND的旅程时间?

时间:2010-10-02 12:16:41

标签: javascript api google-maps

我想要一种能够在没有交通的情况下计算行程时间的方法,所以我可以计算出差异所以我知道流量会拖延多少。

另外,有没有办法根据选定的日期和时间进行操作?据我所知谷歌有这个功能,只是不确定他们的API是否已经可用。是否可以不为最终访问者加载地图?

谢谢!

4 个答案:

答案 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 hereJavaScript 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参数。