作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Google Maps API 计算两个地点之间的预计旅行时间。我通过以下方式索取数据:
const Url = 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=25.7694708,-80.259947&destinations=25.768915,-80.254659&key=' + API_KEY;
try {
const response = await fetch(Url);
console.log(response);
const data = await response.json();
console.log(data.rows);
} catch(e){
console.log(e);
}
问题是在浏览器控制台中我收到错误:
TypeError: NetworkError when attempting to fetch resource
它还向我显示了一个警告:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://maps.googleapis.com/maps/api/distancematrix/json?origins=25.7694708,-80.259947&destinations=25.768915,-80.254659&key=API_KEY. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
但是当我查看网络部分的控制台时,它显示调用已成功完成,并且显示以下 json:
{
"destination_addresses" : [ "3670 SW 3rd St, Miami, FL 33135, USA" ],
"origin_addresses" : [ "3911 SW 2nd Terrace, Coral Gables, FL 33134, USA" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "0.9 km",
"value" : 881
},
"duration" : {
"text" : "2 mins",
"value" : 144
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
有人可以帮我解决这个问题吗?我在网站上尝试过类似的问题,但未能解决问题。提前致谢。
最佳答案
您正在客户端使用距离矩阵服务。但是客户端(浏览器)站点不支持您尝试访问 API 的方式,并且它将无法可靠地工作。
很高兴有一个适合您的用例的库:这是 Distance Matrix Service 的指南在客户端。这是 vanilla-js example一探究竟。
也许这个片段会对您有所帮助:
const matrix = new google.maps.DistanceMatrixService();
matrix.getDistanceMatrix({
origins: [new google.maps.LatLng(25.7694708, -80.259947)],
destinations: [new google.maps.LatLng(25.768915, -80.254659)],
travelMode: google.maps.TravelMode.DRIVING,
}, function(response, status) {
//do something
});
关于javascript - 谷歌地图 API; "CORS header ‘Access-Control-Allow-Origin’ 缺失“错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55483478/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!