我正在尝试使用谷歌距离矩阵来找出从一个来源到一个目的地的距离和时间。
我正在调用函数
$('#postCode').change(function () {
var address = "sydney";
var source = "melbourne"
var url = "https://maps.googleapis.com/maps/api/distancematrix/js?units=imperial&origins=" + address + "&destinations=" + source + "&key=MYKEY_HERE";
$.get(url, function (data) {
window.alert(data);
});
});
我只需要获取返回的任何数据,但问题是每当我加载具有链接的页面时
<script src="https://maps.google.com/maps/api/js?sensor=false?key=MYKEY_HERE"></script>
或触发邮政编码字段的更改,它在控制台中显示以下 2 个错误
Google map API 错误:MissingKeyMapError
请求中不存在“Access-Control-Allow-Origin” header
资源。产地' http://localhost:60197 ' 因此不允许
访问权限。
还有两个警告
util.js:210 Google Maps API 警告:NoApiKeys https://developers.google.com/maps/documentation/javascript/error-messages#no-api-keys
util.js:210 Google Maps API 警告:SensorNotRequired https://developers.google.com/maps/documentation/javascript/error-messages#sensor-not-required
哪里做错了,或者实现所需输出(两点之间的距离和时间)的正确方法是什么。
最佳答案
不要使用 DistanceMatrix web service从客户端的 javascript,使用 Google Maps Javascript API v3 DistanceMatrix Service .
$('#postCode').change(function () {
var address = "sydney";
var source = "melbourne"
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
origins: [address],
destinations: [source],
travelMode: 'DRIVING',
unitSystem: google.maps.UnitSystem.IMPERIAL,
}, callback);
function callback(response, status) {
// See Parsing the Results for
// the basics of a callback function.
}
});
关于javascript - 本地主机上的谷歌距离矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40985434/