Maps 在OpenLayers中配置maxExtent和restrictExtent坐标
我对OpenLayers和GeoData非常陌生;因此,我认为我有一个关于使用OpenLayers配置地图边界的非常棘手的问题。首先,这是我编的地图代码Maps 在OpenLayers中配置maxExtent和restrictExtent坐标,maps,gis,openlayers,arcgis-js-api,Maps,Gis,Openlayers,Arcgis Js Api,我对OpenLayers和GeoData非常陌生;因此,我认为我有一个关于使用OpenLayers配置地图边界的非常棘手的问题。首先,这是我编的地图代码 function createMap(containerId){ return new OpenLayers.Map(containerId, { projection: new OpenLayers.Projection("EPSG:900913"),
function createMap(containerId){
return new OpenLayers.Map(containerId, {
projection: new OpenLayers.Projection("EPSG:900913"),
displayProjection: new OpenLayers.Projection("EPSG:4326"),
units: "m",
maxResolution:156543.0339,
numZoomLevels:4,
controls: [],
maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),
restrictExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34)
});
}
我有我的地图,我在上面加载了一层矢量国家形状的GeoJSON。到现在为止,一直都还不错。但是,如果我在地图上调用zoomToMaxExtent
,地图将缩小为视口中心的一个小缩略图大小的图形,而不是填充框架。然后,如果我放大地图,我可以(似乎)在任何方向上无限期地平移地图,而不是限制在地图形状的边缘
所以我假设我的
maxExtent
和restrictExtent
设置有问题,尽管我不知道这是什么。老实说,我不确定这些巨大的边界数字是什么(在示例代码中找到)。基本上,通过Lon/Lat坐标,我想我只是试图将边界限制在-180,-90,180,90–这应该为地图地理提供一个紧密的框架,对吗?不幸的是,将这些Lon/Lat设置为边界参数似乎没有任何作用。如有任何见解,将不胜感激 明白了。。。这个页面非常有用:在mercator项目中,使用maxResolution
设置156543.0339,地图将在单个256x256平铺上呈现。您可以通过在因子2处递减该值来逐步确定最大平移;因此,将最大分辨率减半至78271.516953125将在4个分片上渲染地图,总计512x512px。至于有限的平移范围–我将参数误输入为“restrictExtent”,而不是正确的属性restrictedExtent
。另请参见:和