【问题标题】:Google Maps API v3 directions.route() requestGoogle Maps API v3 Directions.route() 请求
【发布时间】:2010-11-11 20:33:01
【问题描述】:

我一直在转换到第 3 版的 Google 地图 API,并且在调用方向服务.route() 时不断返回错误。地图渲染得很好,但在 Firebug 中我看到 google 抛出错误“a is undefined (main.js line 16)”。

以下是相关代码:

self.gmap = new google.maps.Map(document.getElementById(id),mapOpts);

self.dirService = new google.maps.DirectionsService(self.gmap);

self.dirRenderer = new google.maps.DirectionsRenderer({
                draggable: false,
                map: self.gmap,
                markerOptions: {clickable: false}});

//定义起点、终点等...

self.dirService.route({
'destination' : destination,
'origin' : origin,
'travelMode' : google.maps.DirectionsTravelMode.DRIVING
},function(result,status){
if(status == google.maps.DirectionsStatus.OK){
    self.dirRenderer.setDirections(result);
    self.refreshMap();
} else {
    alert(self.ERR_MapRoute);
}
});

在 API 文档中,谷歌表示在路线请求中只需要起点、目的地和 travelMode。有人遇到过这个问题吗?

【问题讨论】:

    标签: javascript google-maps


    【解决方案1】:

    我曾经使用地图上不存在的叠加层来获取此错误。或者初始化有问题。 检查你的初始化,你可能遗漏了什么。

    【讨论】:

    • 好的,谢谢你的提示,我明白了。起作用的是,我没有在 DirectionsService.route() 的回调中调用自定义 self.refreshMap(),而是向 directionRenderer 的方向改变事件添加了一个监听器:
    • 我添加的监听器是:google.maps.event.addListener(self.dirRenderer,'directions_changed',function(){ google.maps.event.trigger(this.getMap(),'resize ');});然后我从 route() 回调中删除了 self.refreshMap()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    相关资源
    最近更新 更多