//创建一个类,相当于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
分享到:
相关推荐
`ol.js`是OpenLayers的核心JavaScript库,包含了所有的地图渲染、图层管理、交互操作等功能;而`ol.css`则是配套的样式表文件,提供了默认的用户界面样式和地图元素的布局。 1. **OpenLayers 概述** OpenLayers ...
`ol.js` 文件则是OpenLayers的核心JavaScript库,包含了所有地图操作、图层管理、事件处理等功能的实现。通过这个文件,开发者可以创建地图实例、加载不同类型的图层、添加交互功能、处理用户事件等。它提供了一套...
OpenLayers 是一个基于 JavaScript 的开源地图库,提供了丰富的 API 用于开发基于 Web 的地图应用程序。本文档将对 OpenLayers 的一些重要 API 进行研究,包括控件、方法、类和事件处理等。 控件是 OpenLayers 中的...
2. **创建地图实例**:在JavaScript文件(如app.js)中,初始化OpenLayers地图实例,设置地图容器、视图和投影。 ```javascript var map = new ol.Map({ target: 'map', view: new ol.View({ center: [116.404, ...
OpenLayers 是一个强大的开源JavaScript库,用于在网页上创建交互式的地图应用。它支持多种地图服务,包括WMS、WMTS等,并且可以轻松地与各种数据源集成。在这个"openlayers5T弹窗.zip"压缩包中,重点探讨的是...
- **OpenLayers** 是一个开源JavaScript库,用于在Web浏览器中显示交互式地图。它提供了丰富的API来构建复杂的地理信息系统(GIS)应用。 - **version_number**:OpenLayers通过`version_number`这个常量来标识其...
在GIS应用开发中,OpenLayers是一个非常流行的JavaScript库,用于创建交互式的地图。在构建用户界面时,按钮和面板组件是不可或缺的元素,它们能够触发特定的功能或操作。然而,OpenLayers默认的按钮样式可能不符合...
OpenLayers.Control.ScaleLineWithProvinces = OpenLayers.Class(OpenLayers.Control.ScaleLine, { ... draw: function() { var zoom = map.getZoom(); var provinceImage = this.getImageForZoom(zoom); // ...
<script src="https://openlayers.org/en/v6.5.1/build/ol.js"> ``` 2. 创建地图容器:在HTML页面中创建一个div元素作为地图容器。 ```html <div id="map" class="map"> ``` 3. 初始化地图对象:使用OpenLayers的...
OpenLayers 是一个功能强大的开源 JavaScript 库,用于创建交互式地图应用程序。本手册涵盖了 OpenLayers 的所有类的介绍说明,及其简单实例。 OpenLayers 对象 OpenLayers 对象提供了一切事物,包括命名空间常量 ...
此外,还需要加载必要的外部库,例如OpenLayers、jQuery、Chroma.js和GeoStats.js。 ##### 6. 总结 通过结合OpenLayers 3和GeoStats库,我们可以轻松地在Web应用中生成高质量的专题图。这种方法不仅提供了丰富的...
在本主题中,我们将深入探讨如何使用OpenLayers3,一个流行的JavaScript库,来加载KML(Keyhole Markup Language)地图,并实现地图上的框选功能。KML是一种用于存储地理标记数据的XML格式,常用于Google Earth和...
OpenLayers是一个开源JavaScript库,用于创建交互式的地图应用,而百度地图是中国领先的在线地图服务提供商,提供丰富的地图数据和API。 要实现OpenLayers调用百度地图,我们需要做以下几步: 1. **理解OpenLayers...
Vue.js 和 OpenLayers 的结合使得在 Web 应用中创建交互式地图变得简单高效。OpenLayers 是一个强大的JavaScript库,专为WebGIS设计,能够显示地图、矢量数据和标记,支持从各种来源加载数据。它具有模块化设计,高...
OpenLayers 是一个强大的开源JavaScript库,用于在Web浏览器中创建交互式地图应用。它支持多种数据源,包括瓦片地图,使得开发者可以轻松地将地理信息集成到网站中。本教程将详细介绍如何使用OpenLayers加载瓦片地图...
OpenLayers 是一个强大的开源JavaScript库,用于在网页上创建交互式的地图应用。它支持多种地图数据源,包括WMS、WMTS、GeoJSON等,能够轻松地将地图集成到Web项目中。OpenLayers 4是该库的一个较新版本,引入了许多...
在IT行业中,前端开发是构建Web应用程序的关键部分,而OpenLayers是一个流行的JavaScript库,用于创建交互式的、基于Web的地图应用。本实例将详细介绍如何利用OpenLayers加载离线地图,并通过mui将其打包成移动应用...
2. **创建地图实例**:在JavaScript文件(如app.js)中,创建OpenLayers地图实例,设置视图和地图容器。 ```javascript var map = new ol.Map({ target: 'map', view: new ol.View({ center: [0, 0], zoom: 2 ...
<script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers@6.5.1/dist/ol.js"> ``` 创建一个基本的地图需要以下步骤: 1. **创建地图容器**:在HTML中定义一个div元素,作为地图的容器。 ```html ...
OpenLayers是一个开源JavaScript库,用于在Web浏览器中显示交互式地图。其强大的功能与灵活性使得开发者能够轻松地集成多种地图服务(如OSM、Bing Maps等),同时提供丰富的API来定制地图的外观与行为。 根据提供的...