- 浏览: 21573 次
- 性别:
- 来自: 杭州
最新评论
//名字空间 OpenLayers.Util = {}; //根据ID获取DOMElement,当参数是多个ID时,返回的是一个DOMElement数组 OpenLayers.Util.getElement = function() { var elements = []; for (var i=0, len=arguments.length; i<len; i++) { var element = arguments[i]; if (typeof element == 'string') { element = document.getElementById(element); } if (arguments.length == 1) { return element; } elements.push(element); } return elements; }; //判断一下$符号有没有被别的库使用,如果没使用,那就把它指向getElement函数。这样使用的时候更方便一些。 if(typeof window.$ === "undefined") { window.$ = OpenLayers.Util.getElement; } //extend在java中是继承的意思,这里执行一个源到目标的一个属性浅拷贝 OpenLayers.Util.extend = function(destination, source) { destination = destination || {}; if(source) { for(var property in source) { var value = source[property]; if(value !== undefined) { destination[property] = value; } } //这里用来修正IE和Firefox的一个bug var sourceIsEvt = typeof window.Event == "function" && source instanceof window.Event; if(!sourceIsEvt && source.hasOwnProperty && source.hasOwnProperty('toString')) { destination.toString = source.toString; } } return destination; }; //删除数组中的某一项 OpenLayers.Util.removeItem = function(array, item) { for(var i = array.length - 1; i >= 0; i--) { if(array[i] == item) { array.splice(i,1); //注意下面的注释,意思是如果使用break,那么只删掉最后一个item。如果去掉break,则意思是删掉所有的item。 //break;more than once?? } } return array; }; //清空数组 OpenLayers.Util.clearArray = function(array) { //Console是在控制台打印输出log,这里的控制台是指火狐的Firebug OpenLayers.Console.warn( //il8n是国际化支持,第一个参数是模板名字,后面是token的替换值 OpenLayers.i18n( "methodDeprecated", {'newMethod': 'array = []'} ) ); array.length = 0; }; //这个是获取obj在array中的索引值,没有的话就返回-1 OpenLayers.Util.indexOf = function(array, obj) { for(var i=0, len=array.length; i<len; i++) { if (array[i] == obj) { return i; } } return -1; }; //这里是修改一个DOMElement元素的属性值,element是DOMElement的引用,id是DOMElement的id,px是Pixel值,sz是Size值,position、border、overflow、opacity都是css得对应属性,分别是位置,边框,溢出,不透明度 OpenLayers.Util.modifyDOMElement = function(element, id, px, sz, position, border, overflow, opacity) { if (id) { element.id = id; } if (px) { element.style.left = px.x + "px"; element.style.top = px.y + "px"; } if (sz) { element.style.width = sz.w + "px"; element.style.height = sz.h + "px"; } if (position) { element.style.position = position; } if (border) { element.style.border = border; } if (overflow) { element.style.overflow = overflow; } if (parseFloat(opacity) >= 0.0 && parseFloat(opacity) < 1.0) { element.style.filter = 'alpha(opacity=' + (opacity * 100) + ')'; element.style.opacity = opacity; } else if (parseFloat(opacity) == 1.0) { element.style.filter = ''; element.style.opacity = ''; } }; //创建一个有指定属性的Div OpenLayers.Util.createDiv = function(id, px, sz, imgURL, position, border, overflow, opacity) { //创建一个Div元素 var dom = document.createElement('div'); //如果有背景图片,则设置背景 if (imgURL) { dom.style.backgroundImage = 'url(' + imgURL + ')'; } //没有id的话,生成一个id,前缀是OpenLayersDiv if (!id) { id = OpenLayers.Util.createUniqueID("OpenLayersDiv"); } //没有position的话,默认是绝对定位 if (!position) { position = "absolute"; } //设置其他参数 OpenLayers.Util.modifyDOMElement(dom, id, px, sz, position, border, overflow, opacity); //生成完毕,返回div return dom; }; //创建一个image,和创建div一样。 OpenLayers.Util.createImage = function(id, px, sz, imgURL, position, border, opacity, delayDisplay) { var image = document.createElement("img"); //set generic properties if (!id) { id = OpenLayers.Util.createUniqueID("OpenLayersDiv"); } if (!position) { position = "relative"; } OpenLayers.Util.modifyDOMElement(image, id, px, sz, position, border, null, opacity); if(delayDisplay) { image.style.display = "none"; //这是Openlayers的Event类封装了event对象,这个是给image注册onload事件,当发生这个时间时调用Openlayers.Util.onImageLoad函数 OpenLayers.Event.observe(image, "load", OpenLayers.Function.bind(OpenLayers.Util.onImageLoad, image)); //这个同上,当加载图像失败时,它就用一个粉红色的背景图来替代 OpenLayers.Event.observe(image, "error", OpenLayers.Function.bind(OpenLayers.Util.onImageLoadError, image)); } //set special properties image.style.alt = id; //下面这个属性我还真不知道,baidu了一下发现时各IE6的过时属性,用来显示image tools工具条的。 image.galleryImg = "no"; if (imgURL) { image.src = imgURL; } return image; }; //设置元素的透明度 OpenLayers.Util.setOpacity = function(element, opacity) { OpenLayers.Util.modifyDOMElement(element, null, null, null, null, null, null, opacity); }; //image加载时会调用这个函数 OpenLayers.Util.onImageLoad = function() { if (!this.viewRequestID || (this.map && this.viewRequestID == this.map.viewRequestID)) { this.style.backgroundColor ="transparent"; this.style.display = ""; } }; //image加载出错时,显示的图像颜色,这个pink是粉红色,血难看! OpenLayers.Util.onImageLoadErrorColor = "pink"; //image的加载次数 OpenLayers.IMAGE_RELOAD_ATTEMPTS = 0; //image加载失败时调用这个函数 OpenLayers.Util.onImageLoadError = function() { this._attempts = (this._attempts) ? (this._attempts + 1) : 1; if (this._attempts <= OpenLayers.IMAGE_RELOAD_ATTEMPTS) { var urls = this.urls; if (urls && urls instanceof Array && urls.length > 1){ var src = this.src.toString(); var current_url, k; for (k = 0; current_url = urls[k]; k++){ if(src.indexOf(current_url) != -1){ break; } } var guess = Math.floor(urls.length * Math.random()); var new_url = urls[guess]; k = 0; while(new_url == current_url && k++ < 4){ guess = Math.floor(urls.length * Math.random()); new_url = urls[guess]; } this.src = src.replace(current_url, new_url); } else { this.src = this.src; } } else { this.style.backgroundColor = OpenLayers.Util.onImageLoadErrorColor; } this.style.display = ""; };
出处:http://blog.csdn.net/baozhifei/archive/2009/08/13/4444777.aspx
相关推荐
ol-util 一组与OpenLayers一起使用的帮助程序类 安装 npm i @ terrestris / ol - util API文档 最新的: : 其他版本的文档可通过以下格式获得: v3.0.0
OpenLayers 支持各种类型的图层,如TileLayer(瓦片图层)、VectorLayer(矢量图层)和ImageLayer(图像图层)。每个图层都有自己的属性和方法,如透明度设置、可见性控制等。 **2. Map(地图)** `map.html` 关注...
2. **Camera HAL (Hardware Abstraction Layer)**:Camera HAL是Android系统中一个重要的组件,它作为操作系统与相机硬件之间的桥梁,定义了一系列接口,供上层应用和系统服务调用。"mm-camera"中的"HAL"通常指的是...
解决方案二:使用Apache Commons IO库实现,利用该库提供的自定义LineIterator。该方案由于整个文件不是全部存放在内存中,这也就导致相当保守的内存消耗。 LineIterator it = FileUtils.lineIterator(theFile, ...
- **OSI(Open System Interconnection)模型**是由国际标准化组织(ISO)制定的一个网络体系结构模型,它将网络通信功能划分为七层。 - **物理层**(Physical Layer)作为OSI模型的最低层,主要负责通过物理媒介...
这个压缩包包含了Bouncy Castle库的不同组件,如X509证书处理、JCE(Java Cryptography Extension)、Crypto加密算法、Util工具类以及TLS(Transport Layer Security)协议支持。下面将详细阐述这些组件及其在IT领域...
bitbake-layers add-layer ../fsl-i.mx-yocto ``` #### 映像构建 完成环境配置后,可以开始构建映像。在构建过程中,可以选择不同的目标配置文件来匹配 i.MX 系列的不同型号。例如,对于 i.MX 6 系列处理器,可以...
WMS(Web Map Service)是一种OGC(Open Geospatial Consortium)标准,它允许用户从远程服务器请求地图数据。在World Wind Java中配置WMS服务器,可以让我们利用这些服务器提供的地图服务,展示丰富的地理信息。 ...
使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议可以加密通信,保护数据不被窃听。Java提供了内置的支持,通过添加`com.sun.net.ssl.internal.ssl.Provider`作为安全提供者,并设置相应的SSL...
例如,可以通过`layui.util.tabAdd()`或`layui.layer.open()`这样的layui方法来动态添加新的Tab或弹窗,显示对应URL的内容。 `layui.util.tabAdd()`函数接收的参数包括新Tab的标题、URL和类型(是否新开Tab)。在这...
然而,这样的调用方式不够便捷,我们希望能像 `layer.js` 那样全局调用。为了实现这个目标,我们需要将 `popup` 组件改造成一个 Vue 插件。 首先,创建一个全局单例的弹窗实例 `popupVm.js`: ```javascript ...
- **Update消息**:用于通告或撤销路由,包括路径属性、NLRI(Network Layer Reachability Information)和 withdrawn routes。 - **Keepalive消息**:定期发送,以确认会话仍然活跃,没有丢失。 - **Notification...
在Java中,`java.util.Map`接口是存储键值对的核心容器。在my_app_maps项目中,可能会广泛使用到`HashMap`、`TreeMap`或`LinkedHashMap`等具体实现,它们分别提供了不同的性能特性和排序规则。例如,`HashMap`适用...
Application-Layer Protocol Negotiation Support Other Changes sqlite3 subprocess sys sysconfig tarfile threading time timeit tkinter traceback types unicodedata unittest unittest.mock ...