4

我对 OpenLayers 和 GeoData 非常陌生;因此,我想我有一个关于使用 OpenLayers 配置地图边界的非常菜鸟问题。首先,这是我编的地图代码……

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在地图上调用,地图会缩小为在我的视口中心的一个小小的缩略图大小的图形,而不是填充框架。然后,如果我放大地图,我可以(似乎)在任何方向上无限期地平移地图,而不是被限制在地图形状的边缘。

所以我认为我的设置有问题maxExtentrestrictExtent尽管我不知道它是什么。老实说,我不确定那些巨大的边界数字是什么(在示例代码中找到它们)。本质上,通过 Lon/Lat 坐标,我想我只是想将边界限制在 -180、-90、180、90——这应该在地图地理周围提供一个紧密的框架,对吧?不幸的是,将这些 Lon/Lat 设置为边界参数似乎没有任何作用。任何见解将不胜感激!

4

0 回答 0