我如何限制地图以仅显示所选国家/地区?

时间:2015-08-14 05:47:20

标签: openlayers-3

我正在尝试使用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

1 个答案:

答案 0 :(得分:4)

基本上你的例子应该有用,但我认为你忘了将你的程度转换为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
  })
});