【问题标题】:how can i Restrict map to show only the selected country?我怎样才能限制地图只显示选定的国家?
【发布时间】:2015-08-14 05:47:20
【问题描述】:

我正在尝试使用 openlayers 3 制作 web 地图应用程序。我有一个问题要解决。

我正在加载 OSM 层作为应用程序的基本地图。但是 OSM 图层的问题在于它显示了整个世界,我可以在世界各地平移我的地图。

我希望我的应用程序在某些部分得到修复。我设置了地图范围,但它仍然不起作用。

我正在使用 minZoom,但它没有帮助。

还有其他方法可以解决这个问题吗?

var centerpos = [84.2, 28.2];
var newpos = ol.proj.transform(centerpos,'EPSG:4326','EPSG:900913');

var baseLayerOSM = new ol.layer.Tile({  
source: new ol.source.MapQuest({
    layer: 'osm'
}),
isBaseLayer:true    
});

var map = new ol.Map({
  layers: [baseLayerOSM],
  target: 'map',
  controls: [new CustomControl()],
  view: new ol.View({
    extent:[80.05844110726194,26.34796712822462,88.2015218371264,30.44742963310623],
    projection : 'EPSG:900913', // OSM projection
    center : newpos,
    minZoom:7,
    zoom: 7
  })
});

这是我的代码。

AJ

【问题讨论】:

    标签: openlayers-3


    【解决方案1】:

    基本上您的示例应该可以工作,但我认为您忘记将范围转换为 EPSG:900913 / EPSG:3857。

    var maxExtent = [80.05844110726194,26.34796712822462,88.2015218371264,30.44742963310623];
    
    var map = new ol.Map({
      layers: [baseLayerOSM],
      target: 'map',
      controls: [new CustomControl()],
      view: new ol.View({
        extent: ol.proj.transformExtent(maxExtent, 'EPSG:4326', 'EPSG:900913'),
        projection : 'EPSG:900913', // OSM projection
        center : newpos,
        minZoom:7,
        zoom: 7
      })
    });
    

    【讨论】:

      猜你喜欢
      • 2010-10-16
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      相关资源
      最近更新 更多