为啥 OpenLayers-3 加载太多地图?

Posted

技术标签:

【中文标题】为啥 OpenLayers-3 加载太多地图?【英文标题】:Why does OpenLayers-3 load too much map?为什么 OpenLayers-3 加载太多地图? 【发布时间】:2015-01-21 21:29:06 【问题描述】:

我正在尝试在网页中从我的地理服务器加载地图,当它加载时它几乎翻了一番。第一张地图是来自 geoserver 管理页面的预览,第二张是它在网页上拉起时的加载方式。

【问题讨论】:

我不明白你的问题是什么。您是否正在考虑不重复/包装世界? 是的,它正在扩展地图,所以每个大陆都有两个 【参考方案1】:

我最终通过在图层中添加一些属性来解决这个问题,这是我的代码:

mapInit: function()          
          var _this = this;

          this.map = new ol.Map(
            target: 'mapdiv', //element to render in
            interactions: ol.interaction.defaults(
                shiftDragZoom: false,
                altShiftDragRotate: false,
                dragPan: false
            ),
            controls: ol.control.defaults( 
                attributionOptions: ( 
                    collapsible: true 
                )
            ).extend([ new ol.control.ScaleLine() ]),
            renderer: 'canvas',
            layers: [
                     new ol.layer.Tile(
                         source: new ol.source.TileWMS(
                             url: 'http://***.**.**.***:8080/geoserver/Global/wms',
                             params: 'LAYERS': 'Global Map', 'TILED': true,
                             noWrap: true, //<----added this
                             wrapX: false  //<----added this
                         ),
                         //constrain the extent of the servable tiles to only 1 world's coordinates.
                         extent: [-20037508.34, -20037508.34, 20037508.34, 20037508.34] //<----added this
                     ) 
                     ],

【讨论】:

你想和我们分享一个通用的,也兼容 3.1.1 吗?【参考方案2】:

Openlayers 使用平铺系统,地图将在网络浏览器中不断重复,以确保持续的覆盖范围和填充屏幕/div 的无缝视图。专注于特定区域的最简单方法是使用缩放级别。

var map = new OpenLayers.Map("mapdiv");
map.setCenter(new OpenLayers.LonLat(yourLong, yourLat), zoomLevel);

上面的代码将以给定缩放级别作为 int 值以特定区域为中心。这里还有其他设置边界和缩放的方法:

http://dev.openlayers.org/docs/files/OpenLayers/BaseTypes/Bounds-js.html

【讨论】:

以上是关于为啥 OpenLayers-3 加载太多地图?的主要内容,如果未能解决你的问题,请参考以下文章

使用openlayers 3 在线加载天地图及GeoServer发布的地图

openlayers 3加载百度高德google瓦片地图

如何使用Openlayers 3加载谷歌离线地图

OpenLayers 3 - Bing 地图不会在 Windows 应用程序中加载

OpenLayers 3 - 有没有像谷歌地图这样的配额限制?

OpenLayers 3 的地图基本操作