"对不起,我们这里没有图像"错误

时间:2014-03-31 17:54:48

标签: javascript google-maps-api-3

我的网站上显示的谷歌地图有问题,直到上周五才能正常运行。我的一位客户表示他无法再从我的网站查看谷歌地图,并向我发送了一张充满&#34的屏幕截图;抱歉,我们这里没有图像"文本。

奇怪的是到目前为止只有一个客户遇到这个问题。我在办公室和家里尝试了不同的浏览器(IE,Firefox,Chrome)和不同的计算机,但无法重现这个问题。

客户还在他的计算机上尝试了不同的浏览器而没有任何改变。

<asp:Content ID="Content2" ContentPlaceHolderID="LeftBarContent" runat="server" >
<script type="text/javascript" src="https://maps.google.com/maps/api/js?v=3&sensor=false">
//<![CDATA[

var gm = null; //google map

function InitLoad() {

    if (gm == null) {
        var myOptions = {
            center: new google.maps.LatLng(44, -76),
            minZoom: 1,  //minimal allowed zoom level of map
            maxZoom: 22, //maximal allowed zoom level of map
            zoom: 3,
            scaleControl: true,
            mapTypeId: google.maps.MapTypeId.HYBRID
        };
        gm = new google.maps.Map(document.getElementById("divMap"), myOptions);
    }
}

//]]>
</script>
</asp:Content>

2 个答案:

答案 0 :(得分:1)

您可以在head部分添加以下元内容来解决此问题。

<meta http-equiv="Content-Security-Policy" content="default-src *; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; style-src 'self' 'unsafe-inline' *; img-src * data:'unsafe-inline'"

&GT;

答案 1 :(得分:0)

谷歌地图使用&#34; Map-Tiles&#34;方法。在Map-Tiles方法中,显示给用户的地图是由一系列称为图块的小图像(通常为256x256像素)构建的。根据用户可见的区域,客户端将获取相应的Map-Tile以获得适当的缩放级别。

在Google地图中,对于某些地图类型(通常是卫星),在某些区域中,某些缩放级别(通常是非常高的缩放级别)会丢失一些地图图块。例如,您可以在卫星视图中以最大缩放级别在海洋中间看到这些区域。

在线Google-Maps解决此问题的方法是通过显示具有额外像素缩放的最高可用缩放级别,而不是正确的方式,应显示不同的地图图块。

但是,在使用Google-Maps-Api(而不是在线Google地图)时,会从这些位置的Google服务器收到404错误(未找到)。

所以你需要自己解决这个问题。为此,您可以使用Google的 MaxZoomService 并收听zoom_changed事件。如果新的缩放级别大于可用的最大级别,则应将缩放设置为上次可用的缩放级别。

您可以在此处阅读更多内容:https://developers.google.com/maps/documentation/javascript/maxzoom