我希望通过javascript中的Google Maps Geolocation api在MAC地址的基础上获取物理位置(纬度和长度)。
根据Google Maps API的文档,对于地理位置,信息必须采用json格式https://developers.google.com/maps/documentation/geolocation/intro#body请求给定的网址,并在其中返回json https://developers.google.com/maps/documentation/geolocation/intro#responses
<中的数据p> 我试过这段javascript代码:
xhr = new XMLHttpRequest();
var url = "https://www.googleapis.com/geolocation/v1/geolocate?key=MY_API_KEY";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-type", "application/json");
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
var json = JSON.parse(xhr.responseText);
console.log(json.location.lat+","+json.location.lng+","+json.accuracy);
}
}
var data = JSON.stringify({
"wifiAccessPoints": [
{
"macAddress": "MY_MAC_ADDRESS"
},
{
"macAddress": "MY_MAC_ADDRESS"
}
]
});
xhr.send(data);
但是我在控制台中收到以下错误
POST https://www.googleapis.com/geolocation/v1/geolocate?key=MY_API_KEY 403()
代码有什么问题吗?还是有另一种更好的方法吗?
注意:您可能会问为什么不简单地使用navigator.geolocation
?好吧,因为我构建项目的系统不支持HTML5地理定位api。
答案 0 :(得分:0)
根据documention获得的错误(403)是 dailyLimitExceeded 或 userRateLimitExceeded 。原因是您已经超出了在Google Developers Console中配置的每用户每秒限制请求数。应将此限制配置为阻止单个或小组用户耗尽每日配额,同时仍允许对所有用户进行合理访问。
有关详细信息以及如何查看您在Google Developers Console中使用的使用情况或配额,请按照此page上的指南进行操作。