2009-11-25
Ext.Panel 集成OpenLayers.Map
在使用Extjs开发的时候,比较喜欢自己扩展一个类,将自己需要做的操作,已经定义等等都放在这一个类里面。那需要集成OpenLayers的地图的话,自然也想扩展一个类来集成地图。那么是做一个Ext.Panel的插件呢?还是就扩展一个Ext.Panel呢?这个主要看以后想怎么用Map对象。怎么做都是无所谓的。
扩展Ext.Panel来自定一个MapPanel试试看。
1.可以由先建立一个OpenLayers.Map对象传给MapPanel来使用,也可以由MapPanel自己来创建一个OpenLayers.Map对象,然后在通过MapPanel来添加图层。
2.建立Map对象之后将Map对象与MapPanel所管理的dom关联。
3.当MapPanel调整大小或状态之后Map对象同样需要进行相应的调整。
Java代码
/**
* 可以通过事先创建一个OpenLayers.Map对象给本类,或者不建立,由iniComponent函数来创建
*/
Vgs.MapPanel = Ext.extend(Ext.Panel, {
map : null,
layers : null,
/**
* 实例化函数,在次判断所需的成员变量是否符合要求
*/
initComponent : function() {
if (this.map == null || !(this.map instanceof OpenLayers.Map))
this.map = new OpenLayers.Map();
Vgs.MapPanel.superclass.initComponent.call(this);
},
/**
* 将Map对象与Panel所依托的dom div 节点相关联。
*/
afterRender : function() {
Vgs.MapPanel.superclass.afterRender.apply(this, arguments);
if (this.map != null) {
this.map.render(this.body.dom);
}
},
// 处理响应Panel的resize事件,然后调整地图的大小
onResize : function() {
Vgs.MapPanel.superclass.onResize.apply(this, arguments);
if (this.map && this.map.updateSize)
this.map.updateSize();
},
// 当Panel关闭或删除的时候需要删除在initComponent 函数中新建的Map对象,避免内存溢出
beforeDestroy : function() {
// 判断Panel成员变量是由配置文件中传入的还是在initComponent
// 函数中新建,如果为后种情况,则需要将map对象delete.
if (!this.initialConfig.map
|| !(this.initialConfig.map instanceof OpenLayers.Map)) {
if (this.map && this.map.destroy) {
this.map.destroy();
}
}
delete this.map;
Vgs.MapPanel.superclass.beforeDestroy.apply(this, arguments);
},
/**向地图中添加地图图层
*
* @param {} lyr 地图图层对象 为OpenLayers.Layer或其子类的实例
*/
addLayer:function(lyr)
{
if(lyr instanceof OpenLayers.Layer && this.map instanceof OpenLayers.Map)
{
this.map.addLayer(lyr);
}
}
});
分享到:
相关推荐
geoserver-2.0.3-app-schema-plugin.zip geoserver-2.0.3-arcsde-plugin.zip geoserver-2.0.3-control-flow-plugin.zip geoserver-2.0.3-db2-plugin.zip geoserver-2.0.3-excel-plugin.zip ...OpenLayers-2.10.zip
8. **兼容性和API**:ol-ext与OpenLayers保持良好的兼容性,开发者可以轻松地将现有的OpenLayers代码集成到ol-ext中。其API设计友好,方便开发者理解和使用。 9. **文档和示例**:ol-ext通常会提供详尽的文档和丰富...
标题中的"PyPI 官网下载 | tw.openlayers-0.1a0-r265.tar.gz"指的是一款名为`tw.openlayers`的Python库,版本为0.1a0-r265,它是通过Python Package Index (PyPI) 官方网站提供的。PyPI是Python社区的主要软件包仓库...
总之,“geoserver-2.13.0-vectortiles-plugin.zip”为GIS开发者提供了一个强大的工具,通过集成矢量切片技术,提升了地图服务的性能和用户体验。理解和掌握这个插件的使用,对于提升GIS项目的技术水平和用户体验...
在客户端,我们可以利用OpenLayers、Leaflet等JavaScript库来解析和渲染这些矢量切片,实现交互式地图的展示。由于矢量切片只传输必要的几何信息和属性,而非预渲染的图像,因此在移动设备上,即使在网络条件较差的...
它支持多种数据源,包括WMS、WMTS、TMS、GeoJSON等,使得开发者能够轻松地将地理信息集成到网页中。`ol.js`是OpenLayers的核心JavaScript库,包含了所有的地图渲染、图层管理、交互操作等功能;而`ol.css`则是配套的...
- 也可以通过 GeoJSON、KML 等格式与Web应用程序(如 Leaflet、OpenLayers)进行数据交换。 9. **开发和维护**: - PostGIS 由一个活跃的社区维护,持续优化和改进。 - 通过参与社区,你可以获取技术支持,报告...
OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件、
如果你打算深入研究,你需要熟悉至少一种编程语言,了解GIS概念,熟悉数据库操作,并可能需要掌握如Leaflet、OpenLayers等开源地图库,或者是如Mapbox、Google Maps等商业地图API的使用。此外,对执法部门的数据管理...
在`openlayers-release-2.13`这个压缩包中,包含的是OpenLayers 2.13的源代码及其示例。开发者可以通过解压文件并查看`examples`目录下的`map.html`来了解如何实现轨迹功能。这个示例文件展示了如何在地图上动态加载...
通过以上介绍,我们可以看到OpenLayers 3 在设计和功能上都有了很大的提升,使得开发者能够更轻松地集成地图功能到自己的项目中。无论是初学者还是有经验的开发者,都可以通过这份详尽的入门教程开始学习并应用...
《Geoserver/OpenLayers-世上最详细配置资料》是针对WebGIS开发领域的一份宝贵资源,它集合了关于Geoserver和OpenLayers的丰富知识,旨在为初学者和经验丰富的开发者提供全面的指导。这两款工具在地理信息系统(GIS...
3. 集成其他系统:GeoServer可以与OpenLayers、Leaflet等JavaScript库配合,构建交互式地图应用;也可与ArcGIS、QGIS等桌面GIS软件协同工作。 六、拓展与维护 1. 插件系统:GeoServer拥有丰富的插件库,可以扩展其...
今天我们将聚焦于一个特定的包——`collective.geo.openlayers-0.2.tar.gz`,这是一个在PyPI上可下载的资源,主要用于集成OpenLayers地图库到Zope和Plone内容管理系统中的Python项目。 `collective.geo.openlayers`...
11. **地图交互控件(Interacting with the Map)** - 缩放滑块、导航工具、全屏控制、测量工具等。 通过学习这些知识点,开发者可以熟练地使用OpenLayers API构建各种复杂的地图应用,无论是在Web开发、地理信息...
OpenLayers可以轻松地在任何网页中放置动态地图。它可以显示从任何来源加载的...此压缩包系openlayers v6.3.1 dist,包括完整的库(ol.js),源地图(ol.js.map)和库CSS(ol.css带有源地图ol.css.map)的完整版本。
这个"openLayers-API中文版.zip"压缩包很可能是OpenLayers API的中文文档或教程资源,对于学习和使用OpenLayers进行WebGIS开发的人来说非常有帮助。 OpenLayers 的主要特点包括: 1. **跨平台兼容性**:OpenLayers...
11. **与其他GIS系统的集成**:GeoServer可以与常见的GIS客户端,如QGIS、ArcGIS、OpenLayers等很好地协同工作,也可以与Geoportal Server、Geonetwork等元数据服务集成。 12. **持续发展**:由于GeoServer是开源...
8. **回调函数**: 通过回调函数提供路径计算结果,便于与地图库(如Leaflet、OpenLayers)集成。 **集成osrm-client-js** 要在项目中使用`osrm-client-js`,首先需要在HTML文件中引入库的JavaScript文件,然后初始...
OpenLayers 是一个强大的开源JavaScript库,专用于在Web上创建交互式地图应用。这个"openlayers中文api.zip"文件包含了OpenLayers中文版的API文档,为开发者提供了详细且易懂的指南,帮助他们更好地理解和使用这个库...