`
soswane
  • 浏览: 21574 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

openlayers(五)Class.js

阅读更多
//创建一个类,相当于java中的class定义一个类   
OpenLayers.Class = function() {   
    //这个Class作为一个匿名函数返回,其构造函数中会调用initalize()函数   
    var Class = function() {   
        if (arguments && arguments[0] != OpenLayers.Class.isPrototype) {   
            this.initialize.apply(this, arguments);   
        }   
    };   
    //这个是Class的prototype所指向的对象   
    var extended = {};   
    //parent是父类,initialize是父类的initialize方法   
    var parent, initialize;   
    //循环参数列表   
    for(var i=0, len=arguments.length; i<len; ++i) {   
        if(typeof arguments[i] == "function") {   
            //如果第一参数是function类型,则说明第一参数是父类   
            if(i == 0 && len > 1) {   
                //下面几行代码挺绕的,其实就是子类在继承父类的时候不想调用父类的initialize方法。因为只要继承父类的其他属性就行了,至于initialize方法自己可以覆盖,然后调用父类的initialize方法。   
                initialize = arguments[i].prototype.initialize;   
                arguments[i].prototype.initialize = function() {};   
                extended = new arguments[i];   
                if(initialize === undefined) {   
                    delete arguments[i].prototype.initialize;   
                } else {   
                    arguments[i].prototype.initialize = initialize;   
                }   
            }   
            //如果是函数类型,但不是第一个参数,则把函数的prototype所指向的对象赋给parent   
            parent = arguments[i].prototype;   
        } else {   
            //这个是对象啦,直接赋值就行了   
            parent = arguments[i];   
        }   
        //来个浅拷贝,齐活!   
        OpenLayers.Util.extend(extended, parent);   
    }   
    //把Class函数对象的prototype指向这个extended对象,这样在以后谁new这个Class函数对象的时候,其原型自动指向extended对象。   
    Class.prototype = extended;   
    //返回这个Class函数对象,这样这个函数名就不叫Class了,你起的是啥名字就叫啥。自此一个类就定义出来了!   
    return Class;   
};   
//下面的这些函数都过时了,3.0删除   
OpenLayers.Class.isPrototype = function () {};   
OpenLayers.Class.create = function() {   
    return function() {   
        if (arguments && arguments[0] != OpenLayers.Class.isPrototype) {   
            this.initialize.apply(this, arguments);   
        }   
    };   
};   
OpenLayers.Class.inherit = function () {   
    var superClass = arguments[0];   
    var proto = new superClass(OpenLayers.Class.isPrototype);   
    for (var i=1, len=arguments.length; i<len; i++) {   
        if (typeof arguments[i] == "function") {   
            var mixin = arguments[i];   
            arguments[i] = new mixin(OpenLayers.Class.isPrototype);   
        }   
        OpenLayers.Util.extend(proto, arguments[i]);   
    }   
    return proto;   
};  




出处:http://blog.csdn.net/baozhifei/archive/2009/08/15/4450571.aspx
分享到:
评论

相关推荐

    openlayers : ol.js、ol.css 下载

    `ol.js`是OpenLayers的核心JavaScript库,包含了所有的地图渲染、图层管理、交互操作等功能;而`ol.css`则是配套的样式表文件,提供了默认的用户界面样式和地图元素的布局。 1. **OpenLayers 概述** OpenLayers ...

    openlayers : ol.css ol.js

    `ol.js` 文件则是OpenLayers的核心JavaScript库,包含了所有地图操作、图层管理、事件处理等功能的实现。通过这个文件,开发者可以创建地图实例、加载不同类型的图层、添加交互功能、处理用户事件等。它提供了一套...

    openlayersAPI研究文档

    OpenLayers 是一个基于 JavaScript 的开源地图库,提供了丰富的 API 用于开发基于 Web 的地图应用程序。本文档将对 OpenLayers 的一些重要 API 进行研究,包括控件、方法、类和事件处理等。 控件是 OpenLayers 中的...

    openlayers5加载天地图影像.zip

    2. **创建地图实例**:在JavaScript文件(如app.js)中,初始化OpenLayers地图实例,设置地图容器、视图和投影。 ```javascript var map = new ol.Map({ target: 'map', view: new ol.View({ center: [116.404, ...

    openlayers5T弹窗.zip

    OpenLayers 是一个强大的开源JavaScript库,用于在网页上创建交互式的地图应用。它支持多种地图服务,包括WMS、WMTS等,并且可以轻松地与各种数据源集成。在这个"openlayers5T弹窗.zip"压缩包中,重点探讨的是...

    OpenLayers地图重点属性摘录

    - **OpenLayers** 是一个开源JavaScript库,用于在Web浏览器中显示交互式地图。它提供了丰富的API来构建复杂的地理信息系统(GIS)应用。 - **version_number**:OpenLayers通过`version_number`这个常量来标识其...

    openLayers修改button图标样式

    在GIS应用开发中,OpenLayers是一个非常流行的JavaScript库,用于创建交互式的地图。在构建用户界面时,按钮和面板组件是不可或缺的元素,它们能够触发特定的功能或操作。然而,OpenLayers默认的按钮样式可能不符合...

    JavaScript比例尺控制条添加省市路图片

    OpenLayers.Control.ScaleLineWithProvinces = OpenLayers.Class(OpenLayers.Control.ScaleLine, { ... draw: function() { var zoom = map.getZoom(); var provinceImage = this.getImageForZoom(zoom); // ...

    openlayers加载在线天地图.zip

    &lt;script src="https://openlayers.org/en/v6.5.1/build/ol.js"&gt; ``` 2. 创建地图容器:在HTML页面中创建一个div元素作为地图容器。 ```html &lt;div id="map" class="map"&gt; ``` 3. 初始化地图对象:使用OpenLayers的...

    openlayers 手册

    OpenLayers 是一个功能强大的开源 JavaScript 库,用于创建交互式地图应用程序。本手册涵盖了 OpenLayers 的所有类的介绍说明,及其简单实例。 OpenLayers 对象 OpenLayers 对象提供了一切事物,包括命名空间常量 ...

    基于openlayers3生成专题图

    此外,还需要加载必要的外部库,例如OpenLayers、jQuery、Chroma.js和GeoStats.js。 ##### 6. 总结 通过结合OpenLayers 3和GeoStats库,我们可以轻松地在Web应用中生成高质量的专题图。这种方法不仅提供了丰富的...

    GeoServer学习——OpenLayers3加载KML地图实现框选

    在本主题中,我们将深入探讨如何使用OpenLayers3,一个流行的JavaScript库,来加载KML(Keyhole Markup Language)地图,并实现地图上的框选功能。KML是一种用于存储地理标记数据的XML格式,常用于Google Earth和...

    openlayers 调用百度地图

    OpenLayers是一个开源JavaScript库,用于创建交互式的地图应用,而百度地图是中国领先的在线地图服务提供商,提供丰富的地图数据和API。 要实现OpenLayers调用百度地图,我们需要做以下几步: 1. **理解OpenLayers...

    【JavaScript源代码】Vue + OpenLayers 快速入门学习教程.docx

    Vue.js 和 OpenLayers 的结合使得在 Web 应用中创建交互式地图变得简单高效。OpenLayers 是一个强大的JavaScript库,专为WebGIS设计,能够显示地图、矢量数据和标记,支持从各种来源加载数据。它具有模块化设计,高...

    openlayers加载瓦片地图并手动标记坐标点

    OpenLayers 是一个强大的开源JavaScript库,用于在Web浏览器中创建交互式地图应用。它支持多种数据源,包括瓦片地图,使得开发者可以轻松地将地理信息集成到网站中。本教程将详细介绍如何使用OpenLayers加载瓦片地图...

    OpenLayers4案例

    OpenLayers 是一个强大的开源JavaScript库,用于在网页上创建交互式的地图应用。它支持多种地图数据源,包括WMS、WMTS、GeoJSON等,能够轻松地将地图集成到Web项目中。OpenLayers 4是该库的一个较新版本,引入了许多...

    使用openlayers加载离线地图实例

    在IT行业中,前端开发是构建Web应用程序的关键部分,而OpenLayers是一个流行的JavaScript库,用于创建交互式的、基于Web的地图应用。本实例将详细介绍如何利用OpenLayers加载离线地图,并通过mui将其打包成移动应用...

    openlayers5加载geooserver发布线图层.zip

    2. **创建地图实例**:在JavaScript文件(如app.js)中,创建OpenLayers地图实例,设置视图和地图容器。 ```javascript var map = new ol.Map({ target: 'map', view: new ol.View({ center: [0, 0], zoom: 2 ...

    map map openlayers例子

    &lt;script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers@6.5.1/dist/ol.js"&gt; ``` 创建一个基本的地图需要以下步骤: 1. **创建地图容器**:在HTML中定义一个div元素,作为地图的容器。 ```html ...

    The class diagram of Openlayers

    OpenLayers是一个开源JavaScript库,用于在Web浏览器中显示交互式地图。其强大的功能与灵活性使得开发者能够轻松地集成多种地图服务(如OSM、Bing Maps等),同时提供丰富的API来定制地图的外观与行为。 根据提供的...

Global site tag (gtag.js) - Google Analytics