Google maps 谷歌地图API请求被拒绝错误取决于地址

Google maps 谷歌地图API请求被拒绝错误取决于地址,google-maps,Google Maps,我正在使用指令将谷歌地图与AngularJS应用程序中的API集成 示例代码: HTML: 关键是它有时有效,有时不取决于地址。工作示例:location=“Calle Noruega,6 Palma de Malloca,Islas Baleares,España” 不工作示例:location=“Mallorca,Islas Baleares,España”,状态代码=请求被拒绝 关键是它有时有效,有时不取决于地址 您明确了地理编码服务的本质:异步向外部服务器发出的请求 我想在这里指出的一点

我正在使用指令将谷歌地图与AngularJS应用程序中的API集成

示例代码:

HTML:

关键是它有时有效,有时不取决于地址。工作示例:location=“Calle Noruega,6 Palma de Malloca,Islas Baleares,España”

不工作示例:location=“Mallorca,Islas Baleares,España”,状态代码=请求被拒绝

关键是它有时有效,有时不取决于地址

您明确了地理编码服务的本质:异步向外部服务器发出的请求

我想在这里指出的一点是,我们假设问题在于代码,而事实上可能并非如此。如果您在快速间隔内连续测试了相同的输入地址,并且服务器始终返回错误,这是因为地理编码不“喜欢”模糊、不完整的查询,并且服务器可能没有找到您正在键入的地址。这是极不可能的,尽管谷歌在他们的文档中警告了位置偏差,以及在处理不完整地址时使用自动完成服务。(这也是因为地理编码是资源密集型的,并且在服务器上放置了一些工作量,如果您正在构建一个对延迟问题敏感的应用程序,那么您需要考虑的一个方面)。如果我是你,我也不会排除网络问题,因为正如你上面所说的,有时会出错,有时不会

接下来,您需要编写代码:

…#我并没有把所有的指令代码都放进去,因为我认为它不相关

为什么不在geocoder初始值设定项和if语句之间包含1或2个控制台日志

geocoder.geocode({'address': attrs.location}, function(results, status) {
console.log(results);
console.log(results.length); 
  if (status == google.maps.GeocoderStatus.OK) { 
  var location = results[0].geometry.location;
您应该尝试的下一个解决方案是检查您的API密钥是否已在Google控制台中正确实现;由于不正确的实现,有时会引发您所遇到的错误

或者,你真的应该这样做,以便我可以尝试重现你的问题

<script type="text/javascript" src="//maps.googleapis.com/maps/api/js?sensor=false" defer></script>
... # I don´t put all the directive code, because I think it´s not relevant. Let me know if you need it
geocoder.geocode({'address': attrs.location}, function(results, status) {
                if (status == google.maps.GeocoderStatus.OK) { 
                    var location = results[0].geometry.location;
geocoder.geocode({'address': attrs.location}, function(results, status) {
console.log(results);
console.log(results.length); 
  if (status == google.maps.GeocoderStatus.OK) { 
  var location = results[0].geometry.location;