Google Maps API:请求和接收地理定位的json数据

时间:2016-06-07 14:33:26

标签: javascript json google-maps geolocation

我希望通过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。

1 个答案:

答案 0 :(得分:0)

根据documention获得的错误(403) dailyLimitExceeded userRateLimitExceeded 。原因是您已经超出了在Google Developers Console中配置的每用户每秒限制请求数。应将此限制配置为阻止单个或小组用户耗尽每日配额,同时仍允许对所有用户进行合理访问。

有关详细信息以及如何查看您在Google Developers Console中使用的使用情况或配额,请按照此page上的指南进行操作。