`
zscomehuyue
  • 浏览: 411794 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

2009-11-25 Ext.Panel 集成OpenLayers.Map

阅读更多
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各个插件

    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

    Openlayers扩展插件ol-ext ,2022年4月版本v3.2.23

    8. **兼容性和API**:ol-ext与OpenLayers保持良好的兼容性,开发者可以轻松地将现有的OpenLayers代码集成到ol-ext中。其API设计友好,方便开发者理解和使用。 9. **文档和示例**:ol-ext通常会提供详尽的文档和丰富...

    PyPI 官网下载 | tw.openlayers-0.1a0-r265.tar.gz

    标题中的"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

    总之,“geoserver-2.13.0-vectortiles-plugin.zip”为GIS开发者提供了一个强大的工具,通过集成矢量切片技术,提升了地图服务的性能和用户体验。理解和掌握这个插件的使用,对于提升GIS项目的技术水平和用户体验...

    geoserver-2.15.1-vectortiles-plugin.zip

    在客户端,我们可以利用OpenLayers、Leaflet等JavaScript库来解析和渲染这些矢量切片,实现交互式地图的展示。由于矢量切片只传输必要的几何信息和属性,而非预渲染的图像,因此在移动设备上,即使在网络条件较差的...

    postgis-3.2.2dev.tar.gz

    - 也可以通过 GeoJSON、KML 等格式与Web应用程序(如 Leaflet、OpenLayers)进行数据交换。 9. **开发和维护**: - PostGIS 由一个活跃的社区维护,持续优化和改进。 - 通过参与社区,你可以获取技术支持,报告...

    openlayers : ol.js、ol.css 下载

    它支持多种数据源,包括WMS、WMTS、TMS、GeoJSON等,使得开发者能够轻松地将地理信息集成到网页中。`ol.js`是OpenLayers的核心JavaScript库,包含了所有的地图渲染、图层管理、交互操作等功能;而`ol.css`则是配套的...

    OpenLayers JS文件下载

    OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件、

    US-LEMIS-maps-源码.rar

    如果你打算深入研究,你需要熟悉至少一种编程语言,了解GIS概念,熟悉数据库操作,并可能需要掌握如Leaflet、OpenLayers等开源地图库,或者是如Mapbox、Google Maps等商业地图API的使用。此外,对执法部门的数据管理...

    openlayers-release-2.13增加了轨迹demo.zip

    在`openlayers-release-2.13`这个压缩包中,包含的是OpenLayers 2.13的源代码及其示例。开发者可以通过解压文件并查看`examples`目录下的`map.html`来了解如何实现轨迹功能。这个示例文件展示了如何在地图上动态加载...

    2015-OpenLayers-3-入门教程详细版.docx

    通过以上介绍,我们可以看到OpenLayers 3 在设计和功能上都有了很大的提升,使得开发者能够更轻松地集成地图功能到自己的项目中。无论是初学者还是有经验的开发者,都可以通过这份详尽的入门教程开始学习并应用...

    Geoserver/OpenLayers-世上最详细配置资料

    《Geoserver/OpenLayers-世上最详细配置资料》是针对WebGIS开发领域的一份宝贵资源,它集合了关于Geoserver和OpenLayers的丰富知识,旨在为初学者和经验丰富的开发者提供全面的指导。这两款工具在地理信息系统(GIS...

    geoserver-2.13.1 windows.exe.zip

    3. 集成其他系统:GeoServer可以与OpenLayers、Leaflet等JavaScript库配合,构建交互式地图应用;也可与ArcGIS、QGIS等桌面GIS软件协同工作。 六、拓展与维护 1. 插件系统:GeoServer拥有丰富的插件库,可以扩展其...

    PyPI 官网下载 | collective.geo.openlayers-0.2.tar.gz

    今天我们将聚焦于一个特定的包——`collective.geo.openlayers-0.2.tar.gz`,这是一个在PyPI上可下载的资源,主要用于集成OpenLayers地图库到Zope和Plone内容管理系统中的Python项目。 `collective.geo.openlayers`...

    最全最新的中文openLayers_api

    11. **地图交互控件(Interacting with the Map)** - 缩放滑块、导航工具、全屏控制、测量工具等。 通过学习这些知识点,开发者可以熟练地使用OpenLayers API构建各种复杂的地图应用,无论是在Web开发、地理信息...

    openlayers v6.3.1-dist.zip

    OpenLayers可以轻松地在任何网页中放置动态地图。它可以显示从任何来源加载的...此压缩包系openlayers v6.3.1 dist,包括完整的库(ol.js),源地图(ol.js.map)和库CSS(ol.css带有源地图ol.css.map)的完整版本。

    openLayers-API中文版.zip

    这个"openLayers-API中文版.zip"压缩包很可能是OpenLayers API的中文文档或教程资源,对于学习和使用OpenLayers进行WebGIS开发的人来说非常有帮助。 OpenLayers 的主要特点包括: 1. **跨平台兼容性**:OpenLayers...

    ol-ext:Openlayers的很酷的扩展(ol)-动画集群,CSS弹出窗口,真棒字体渲染器,统计图图表(piebar),层切换器,维基百科层,动画,画布过滤器

    ol-ext (ol)的很酷的扩展。 是一组用于Openlayers的扩展,控件,交互,弹出窗口。 或。 关键字:故事图,时间轴控件,CSS弹出窗口,真棒字体,统计图图表(饼图/栏... npm install openlayers-ext 该库将在node_m

    前端开源库-osrm-client-js.zip

    8. **回调函数**: 通过回调函数提供路径计算结果,便于与地图库(如Leaflet、OpenLayers)集成。 **集成osrm-client-js** 要在项目中使用`osrm-client-js`,首先需要在HTML文件中引入库的JavaScript文件,然后初始...

    openlayers中文api.zip

    OpenLayers 是一个强大的开源JavaScript库,专用于在Web上创建交互式地图应用。这个"openlayers中文api.zip"文件包含了OpenLayers中文版的API文档,为开发者提供了详细且易懂的指南,帮助他们更好地理解和使用这个库...

Global site tag (gtag.js) - Google Analytics