先说说这个功能可能使用到的地方,当我们下载的网上瓦片或者矢量数据的第一级或开始几级效果不是很好时,我们就就想让用户看到这些级别的瓦片。实现这个功能比较简单,主要就是修改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对象。

OpenLayers控制瓦片的绽放级别的更多相关文章

  1. openlayers调用瓦片地图分析

    网上有诸多资料介绍openlayers如何调用百度地图或者是天地图等常见互联网地图,本文作者使用的是不是常见的互联网瓦片,现将调用过程进行整理与大家分享. 首先,openlayers就不赘述了(官网: ...

  2. springmvc 事务控制与数据库隔离级别

    springmvc 事物传播与数据库隔离控制 http://www.cnblogs.com/yangy608/archive/2011/06/29/2093478.html 一.Propagation ...

  3. openlayers离线瓦片地图开发

    近期业务繁忙...待更新

  4. lin-cms-dotnetcore.是如何方法级别的权限控制的?

    方法级别的权限控制(API级别) Lin的定位在于实现一整套 CMS的解决方案,它是一个设计方案,提供了不同的后端,不同的前端,而且也支持不同的数据库 目前官方团队维护 lin-cms-vue,lin ...

  5. MongoDB 安全和访问权限控制

    MongoDB的访问控制能够有效保证数据库的安全,访问控制是指绑定Application监听的IP地址,设置监听端口,使用账户和密码登录 一,访问控制的参数 1,绑定IP地址 mongod 参数:-- ...

  6. 30分钟全面解析-SQL事务+隔离级别+阻塞+死锁

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  7. SQL事务隔离级别

    数据库是要被广大客户所共享访问的,那么在数据库操作过程中很可能出现以下几种不确定情况. 更新丢失(Lost update) 两个事务都同时更新一行数据,但是第二个事务却中途失败退出,导致对数据的两个修 ...

  8. LogUtil【实现自由的控制日志的打印的封装类】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 主要用于控制项目开发和上线阶段日志的打印. 效果图 暂不需要. 代码分析 在LogUtil类中声明代表不同日志级别的常量值(VERB ...

  9. Jmeter日志级别

    转自:https://blog.csdn.net/gowhere_/article/details/78555068 Jmeter日志默认存放在%JMeter_HOME%\bin目录,文件名通常是JM ...

随机推荐

  1. python 3.5 关于sys问题总结

    想把自己写的模组直接调用的时候,使用这个sys.path.append(): 但是总是报错(图1): 解决方案,去掉前面的from public; 解决思路: 1.sys.path.append(&q ...

  2. java随笔

    java与c++的几点区别 (1)Java比C++程序可靠性更高.有人曾估计每50行C++程序中至少有一个BUG.姑且不去讨论这个数字是否夸张,但是任何一个C++程序员都不得不承认C++语言在提供强大 ...

  3. Windows Phone 二、WP控件

  4. Oracle 多行变一列的方法

    多行变一列的方法有很多,觉得这个第一眼看懂了当时就用的这个办法. 情况是这样的.以下数据前几列是一样的,需要把VAT_VALUE_CHAR 的值放在同一行上. SELECT * FROM ps_vat ...

  5. js字符串和正则表达式中的match、replace、exec等函数详解

    正则并不是经常使用,而正则和字符串之间的函数关系又错综复杂,谁是谁的函数,又是怎么样的一种结果,往往我们是看一遍忘一遍,对此我是头疼不已,感觉自己是个笨蛋^_^. 为了以后不再查文档,特此把常用的函数 ...

  6. Flexbox布局(转)

    Flexbox布局( Flexible Box 或CSS3 弹性布局),是CSS3中的一种新的布局模式,是可以自动调整子元素的高和宽,来很好的填充任何不同屏幕大小的显示设备中的可用显示空间,收缩内容防 ...

  7. SQL Server取datetime的日期部分

    在c#中有个Date属性用于返回日期,其实就是当天0点. DateTime dtNow = DateTime.Now; DateTime dtNow2 = dtNow.Date; Console.Wr ...

  8. css3动画之小牛奔跑

    今天突然看到阿里云官网的一个悬浮效果挺炫的,就想知道到底是怎么做的,研究了半天,加了一个技术群,原来是css3做的,然后做了一个小 Demo记录下来: <!DOCTYPE html> &l ...

  9. Thinkphp:有你真好

    ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的.最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布.ThinkPHP从诞生以来一 ...

  10. PhpStorm创建Drupal模块项目开发教程(3)

    rush是 Drupal的脚本界面,PhpStorm的命令行工具支持Drush 5.8和更高版本. 接下来就Drush配置和基本操作进行设置,首先点击打开Settings | Command Line ...