为啥“Google Maps”一书中的 Google Maps Directions API 示例对我不起作用?
Posted
技术标签:
【中文标题】为啥“Google Maps”一书中的 Google Maps Directions API 示例对我不起作用?【英文标题】:Why won't the Google Maps Directions API example in the 'Google Maps' book work for me?为什么“Google Maps”一书中的 Google Maps Directions API 示例对我不起作用? 【发布时间】:2016-03-31 02:54:11 【问题描述】:我正在使用 Petrousos 的“Google Maps”图书,并尝试运行从图书网站 www.mhprofessional.com 下载的 CHAPTER17/html/Directions Service.html 中的示例,内容为 0071823026。
我不得不调整表格尺寸以使其正确显示,但除此之外没有进行任何更改。我正在通过 Firefox 运行它。
我设置了起点和终点,然后点击“显示路线”,此时什么也没发生。
事件调用了以下函数:
function showDirections()
var start = document.getElementById("origin").value;
var end = document.getElementById("destination").value;
var request =
origin: start,
destination: end,
travelMode: google.maps.TravelMode.DRIVING
;
directionsService.route(request, function(result, status)
if (status == google.maps.DirectionsStatus.OK)
directionsDisplay.setDirections(result);
printDirections(result);
);
我得到了directionsService.route调用,但它显然没有被执行,并且没有定义状态和结果。
我不知道如何进一步调试,无法访问 API 代码..
示例中调用的语法会不会过时?
我没有 API 密钥,但我知道这不是必需的,并且我已经运行了其他没有 API 密钥的示例。
【问题讨论】:
请张贴 Minimal, Complete, Tested and Readable example 来证明您的问题 (Uncaught ReferenceError: printDirections is not defined
)。如果我注释掉 printDirections
调用并提供缺失的数据,则发布的代码可以正常工作。
【参考方案1】:
您的旧示例仍然有效吗?如果没有,那是因为您没有 API 密钥。超过配额后,Google 将关闭您。我相信配额是每小时 50 个请求。
Google 拥有最新的文档(而且文档非常详尽)
https://developers.google.com/maps/documentation/directions/intro#Audience
另外,你能看看对象返回什么吗?如果是这样,那通常表明报价被超过。您可以通过在链接处设置断点来做到这一点
if (status == google.maps.DirectionsStatus.OK)
如果您使用的是 Chrome,您可以通过右键单击页面并选择“检查元素”进入调试器,然后转到源代码,找到您的代码行并单击链接号以设置断点。
【讨论】:
以上是关于为啥“Google Maps”一书中的 Google Maps Directions API 示例对我不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
为啥这不是 google.maps.Map 的地图实例? InvalidValueError:setMap:不是 Map 的实例;
为啥在调试 android google maps 示例时没有调用我的 onLocationChanged() 方法?
为啥我在使用 Google Maps API 时没有收到“同源政策”警告?