问题描述
|
用户来到我的Web应用程序并找到了目标地址,但是他没有找到源位置并发布了页面。未注册到Web应用程序的普通用户将添加源位置。
用户添加了源位置后,他将看不到确切的方向图,而是由Google显示默认的地图。
这是我们使用chrome控制台时给出的异常。
我在这里添加了代码,也添加了异常
Error Name:
main.js:41Uncaught TypeError:Object#<object> has no method \'Load\'
function calcRoute() {
showDirections();
document.getElementById(\'directionsPanel\').innerHTML=\"\";
initialize();
var start = document.getElementById(\"txt_from\").value;
var end = getDestinationAddeRSS(document.getElementById(\'final_address\').innerHTML);
var request = {
origin:start,destination:end,travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request,function(response,status) {
if (status == google.maps.Directionsstatus.OK) {
directionsdisplay.setDirections(response);
}
});
function initialize() {
directionsdisplay = new google.maps.DirectionsRenderer();
var chicago = new google.maps.LatLng(41.850033,-87.6500523);
var myOptions = {
zoom:7,mapTypeId: google.maps.MapTypeId.ROADMAP,center: chicago
}
map = new google.maps.Map(document.getElementById(\"map_canvas_directions\"),myOptions);
directionsdisplay.setMap(map);
directionsdisplay.setPanel(document.getElementById(\"directionsPanel\"));
}
解决方法
调试屏幕截图表明,initialize()是文件在Google Maps API引发错误之前运行的最后一行代码。因此,查看那里(和/或在您的问题中提供该代码)。
更新:根据您的代码,首先要检查的是确保一个ID为
map_canvas_directions
的元素和另一个ID为directionsPanel
的元素。没有足够的信息可以肯定地说,但是如果我不得不猜测,您的UI更改摆脱了这些元素中的一个或另一个,但是您的代码需要它们。
更新到更新:按照@Arjan的建议替换DirectionsRenderer()构造函数中的内容也是导致问题的可能原因,因此也绝对可以尝试!
,您已删除了Google示例中提供的一些代码。
directionsDisplay = new google.maps.DirectionsRenderer({
\'map\': map,\'preserveViewport\': true,\'draggable\': true
});
如果您将以上代码添加到适当的位置,我希望您的代码能够再次正常工作。如果没有,您确实应该再次从示例代码开始,因为这样做确实可行。