谷歌地图API:请求和接收用于地理位置的json数据



我想通过javascript中的Google Maps Geolocation api根据MAC地址获取物理位置(纬度和经度)。

根据谷歌地图API的文档,对于地理位置,信息必须采用json格式,https://developers.google.com/maps/documentation/geolocation/intro#body 请求到给定的网址,它以json https://developers.google.com/maps/documentation/geolocation/intro#responses

我尝试过这段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。

基于文档得到的错误 (403) 是 dailyLimitExceeded 或 userRateLimitExceeded原因是您已超出在 Google 开发者控制台中配置的每位用户每秒请求数限制。应配置此限制,以防止单个或一小组用户用尽每日配额,同时仍允许所有用户进行合理的访问。

如需详细了解以及如何查看您在 Google 开发者控制台中使用的使用情况或配额,请遵循此页面上的指南。

最新更新