【问题标题】:Display "no map data for this scale" instead of changing zoom when switching map type切换地图类型时显示“没有此比例的地图数据”而不是更改缩放
【发布时间】:2012-04-07 10:37:29
【问题描述】:

在 google maps API v3 中,我通过调用创建自己的自定义地图类型

map.mapTypes.set('my map', new google.maps.ImageMapType({
    getTileUrl: ...
    minZoom: 12,
    maxZoom: 20,
    ...
}));

图层当然有有限的缩放范围(本例中为 12-20)。现在问题是谷歌地图的默认行为。例如,当我看到比例为 7 的地图并切换到我的地图时,地图会自动放大到 12 倍

相反,当我在缩放 7 并切换到我的地图时,我希望看到带有文本“没有此比例的地图数据,请放大”的图块。

  • 是否有一些标准选项/方法可以在 API v3 中执行此操作?
  • 这个问题有一些常用的解决方案吗?
  • 如果没有,最简单的方法是什么?

提前致谢。

【问题讨论】:

  • @Ahisha,“我的地图功能”是什么意思?而getZoom是如何解决这个问题的?

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


【解决方案1】:

避免使用 minZoommaxZoom 选项并尝试以下操作:

map.mapTypes.set('my map', new google.maps.ImageMapType({
    getTileUrl: function( position, zoom ){
        if( zoom >= 12 && zoom <= 20 ){
            return "http://example.com/tileservice?x="+position.x+"&y="+position.y+"&zoom="+zoom;
        }else{
            return "http://example.com/no_map_data_in_this_scale_please_zoom_in.png";
        }
    },
    ...
}));

【讨论】:

  • 好主意!如果谷歌已经以某种方式解决了这个问题当然会更好,只需将消息作为我的语言的文本传递,而不需要创建我自己的图块。但是如果没有这样的解决方案,我会走这条路。
  • @Tomas ImageMapType 仅用于处理图像。因此,如果您想使用图像和文本,可能您需要纠正自己的MapType 并希望google-developers.appspot.com/maps/documentation/javascript/… 链接对您有所帮助。祝你好运。
  • 感谢您的链接,但如果您正在寻找简单、不复杂的解决方案,这似乎不是可行的方法 :-) 自定义平铺图像目前胜出。
猜你喜欢
  • 1970-01-01
  • 2011-07-11
  • 2021-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多