抱歉,我们这里没有图像-Google卫星地图

时间:2018-07-18 10:00:30

标签: javascript html google-maps google-maps-api-3

我正在应用程序上使用Google Satellite地图。一切正常,突然,地图图像开始不显示。地图没有显示地形图像,而是显示消息“ 抱歉,我们在这里没有图像”。

这是在我的办公室IP和其他测试人员的IP上发生的。如果我从另一个IP或移动数据访问,它将正常工作并显示卫星图像。我不确定在连续访问地图的情况下google是否会阻止IP。

我还能看到很多访问图像的错误

enter image description here

在单击链接以加载图像时,我得到如下错误页面,而不是地图图块图像。

enter image description here

任何有关此问题的线索

3 个答案:

答案 0 :(得分:1)

为避免显示这些错误,如果它们是由于所使用的缩放级别对于您正在查看的区域而言过高而导致的,则可以使用MaxZoomService。请注意,以下代码段无效,因为显然没有API密钥就无法访问服务。

复制代码并使用有效的API密钥对其进行测试。

var map, maxZoomService;

function initialize() {

  maxZoomService = new google.maps.MaxZoomService();

  var myLatLng = new google.maps.LatLng(0, 0);
  var mapOptions = {
    zoom: 15,
    center: myLatLng,
    mapTypeId: google.maps.MapTypeId.SATELLITE
  };

  map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);

  var marker = new google.maps.Marker({
    position: myLatLng,
    map: map
  });

  google.maps.event.addListenerOnce(map, 'idle', function() {

    checkZoom();
  });

  google.maps.event.addListener(map, 'zoom_changed', function() {

    checkZoom();
  });
}

function checkZoom() {

  let zoom = map.getZoom();

  maxZoomService.getMaxZoomAtLatLng(map.getCenter(), function(response) {
  
    if (response.status !== 'OK') {
    
      alert('maxZoomService error: ' + response.status);
      document.getElementById('max-zoom').innerHTML = 'n/a';
      document.getElementById('max-zoom-service').innerHTML = response.status;
      
    } else {

      if (response.zoom < zoom) {

        map.setZoom(response.zoom);
        
        document.getElementById('max-zoom').innerHTML = response.zoom;
        document.getElementById('max-zoom-service').innerHTML = response.status;
      }
    }
    
    document.getElementById('curr-zoom').innerHTML = map.getZoom();
  });
}

initialize();
#map-canvas {
  height: 130px;
}

span {
  font-weight: bold;
}
<div id="map-canvas"></div>
Current Zoom Level: <span id="curr-zoom"></span><br>
Max Zoom Level: <span id="max-zoom"></span><br>
Max Zoom Service Status: <span id="max-zoom-service"></span>

<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>

如果缩放级别不是问题,请确保您使用的是有效的API密钥。无论如何,可能值得创建一个新密钥并再次尝试使用该密钥。如果仍然无法解决问题,我会尝试直接与Google联系以获取更多信息,因为您的网络IP或IP范围可能由于某种原因被Google禁止。

答案 1 :(得分:1)

感谢您的所有答复,我能够找到并解决真正的问题。在此处添加详细信息以供参考。

我已与Google支持人员联系并提供了请求详细信息,他们能够找出确切的问题。原因是它们的图像服务器阻止了该项目(混合移动项目-Android)的请求,因为它发现该项目也来自无效请求。无效的请求称为没有适当的标头信息的请求。

基于这些信息,我可以发现项目中的缓存机制正在尝试缓存图像,并且该机制将发送无效请求。向该缓存机制添加适当的标头可以永远解决该问题。

答案 2 :(得分:0)

我知道这是一个老问题,但是最近我也收到了此错误。因此,问题在于我所使用的API脚本的版本。

我之所以回答这个问题,是因为我在这里找不到解决方案,以防万一有人遇到相同的错误。

只需在网址中添加v = 3.35(版本号)即可。

示例:https://maps.googleapis.com/maps/api/js?v=3.35&key=API_KEY ...

他们在这里解释: https://developers.google.com/maps/documentation/javascript/versions#an-update-affected-my-application