启用地理编码API后,Google Maps JavaScript API会引发“ ExpiredKeyMapError”

时间:2019-08-27 05:10:40

标签: google-maps google-maps-api-3 google-geocoding-api

我使用Google Maps JavaScript API处理与地图有关的事务,并打算在用户单击地图时使用Google Geocoding API将经纬度转换为格式化地址。

在启用地理编码API之前,我仅使用Maps JavaScript API进行所有工作。刷新页面时,出现错误: Google Maps JavaScript API错误:ExpiredKeyMapError

要修复它很容易,只需禁用已修复的Geocoding API,显然我不能再使用Geocoding API中的任何功能。

我还尝试生成一个新的API密钥,并等待了2个多小时,但问题仍然存在。

这是我加载API和服务的方式

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY&libraries=geocoding,places"></script>

如何一起正确使用Maps JavaScript API和Geocoding API?

  

地理编码代码从lat和lng获取地址

var latLngToAddress = function (lat, lng) {
    var latLng = {lat: lat, lng: lng},
        geocoder = new google.maps.Geocoder;
    geocoder.geocode(
        {location: latLng},
        function (results, status) {
            console.log(results);
        }
    );
};

我在执行上述操作时遇到错误Geocoding Service: This API project is not authorized to use this API.。如果启用了地址解析服务,那么一切都会回到原始问题-JS API将收到错误ExpiredKeyMapError


我不能保证该解决方案始终有效,但这就是我解决的方式。

  1. 禁用地理编码API
  2. 访问诸如https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY之类的地址解析API请求并收到错误消息。
  3. 在项目中启用地理编码API。
  4. 再次访问地理编码API请求,例如https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY并获得成功。
  5. 刷新项目页面,JavaScript和地理编码API现在都可以正常工作。

2 个答案:

答案 0 :(得分:1)

https://developers.google.com/maps/documentation/javascript/libraries

geocoding不是Google Maps Javascript API v3中可用的库之一。

您启用的API是地理编码Web服务。您不需要在JS API项目中使用它。要进行地理编码/反向地理编码,只需使用google.maps.Geocoder类。

答案 1 :(得分:-1)

这是我对问题的解决方案,不能保证在其他许多情况下也可以使用该解决方案。

  1. 禁用地理编码API
  2. 访问诸如https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY之类的地址解析API请求并收到错误消息。
  3. 在项目中启用地理编码API。
  4. 再次访问地理编码API请求,例如https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY并获得成功。
  5. 刷新项目页面,JavaScript和地理编码API现在都可以正常工作。