zoukankan      html  css  js  c++  java
  • OpenLayers控制瓦片的绽放级别

    先说说这个功能可能使用到的地方,当我们下载的网上瓦片或者矢量数据的第一级或开始几级效果不是很好时,我们就就想让用户看到这些级别的瓦片。实现这个功能比较简单,主要就是修改Openlayers.map的isValidZoomLevel方法。具体如下:
    1.先定义好一个limiteZoonLevel方法,在

    /*
    *设置地图可以缩放的级别
    *Parameters:
    *minLevel - {int} 最小级别
    *maxLevel - {int} 最大级别
    */
    limiteZoonLevel: function (minLevel, maxLevel) {
        minLevel = minLevel || 0;  //如果没有传入minLevel,则默认为0
        maxLevel = maxLevel || this.mapObj.numZoomLevels;
        this.mapObj.isValidZoomLevel = function (zoomLevel) {
            return ((zoomLevel != null) &&
                (zoomLevel >= minLevel) && // 最小级
                (zoomLevel <= maxLevel));
        }
    },
    

    地图初始化完成时,调用就可以了。同样的,我们也可以在点击某个按钮后触发。

    2.以初始化地图调用为例。

    var myMap = {
        mapObj:null,
        initialize: function (domId) {
            var mapNav = new OpenLayers.Control.Navigation();
            this.mapObj = new OpenLayers.Map(domId, {
                maxExtent: new OpenLayers.Bounds(90, 0, 135, 45), //90,0,135,40.9798980696202  90, 0, 135, 45
                controls: [mapNav],
                numZoomLevels: 8,
                maxResolution: (135 - 90) / 256,
                theme: null
            });
    
             //定义瓦片图层
            var titleLayer = new Zondy.Map.TileLayerForMetro('myLayers', '', {
                baseUrl: '../images/map/ditu/IMG'
            });
            this.mapObj.addLayer(titleLayer);
            this.mapObj.setCenter(new OpenLayers.LonLat(101.217, 24.87400), 4);
            this.limiteZoonLevel(4,8);
            return this;
        },
    
        /*
        *设置地图可以缩放的级别
         *Parameters:
        *minLevel - {int} 最小级别
         *maxLevel - {int} 最大级别
         */
        limiteZoonLevel: function (minLevel, maxLevel) {
            minLevel = minLevel || 0;  //如果没有传入minLevel,则默认为0
            maxLevel = maxLevel || this.mapObj.numZoomLevels;
            this.mapObj.isValidZoomLevel = function (zoomLevel) {
                return ((zoomLevel != null) &&
                    (zoomLevel >= minLevel) && // 最小级
                    (zoomLevel <= maxLevel));
            }
        },
    
        OBJECT_NAME: 'myMap'
    };
    

    这里我将地图的初始化和级别控制方法都包在myMap对象中了。最后一步就是调用这个myMap对象。

  • 相关阅读:
    MySQL集群搭建(4)-MMM+LVS+Keepalived
    MySQL集群搭建(3)-MMM高可用架构
    MySQL集群搭建(2)-主主从模式
    MySQL集群搭建(1)-主备搭建
    MySQL 安装(二进制版)
    Nginx缓存了DNS解析造成后端不通--代理
    开启tcp_timestamps和tcp_tw_recycle造成NAT转发连接不上
    tcp_tw_recycle参数引发的故障
    记一次TIME_WAIT网络故障
    TCP服务端收到syn但是不回复syn ack问题分析
  • 原文地址:https://www.cnblogs.com/airbreak/p/4595430.html
Copyright © 2011-2022 走看看