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

openlayers(一)

阅读更多
//利用匿名函数来封装Openlayers的名字空间   
(function() {   
    //当你直接导入压缩过的Openlayers.js文件时这个singleFile的值为true,如果是导入lib目录下的Openlayers.js文件,这个值就为false   
    var singleFile = (typeof OpenLayers == "object" && OpenLayers.singleFile);   
       
    //名字空间   
    window.OpenLayers = {   
           
        //脚本名字(变量前面带有下划线,在js中一般表示是私有变量,相当于java中的private)   
        _scriptName: (!singleFile) ? "lib/OpenLayers.js" : "OpenLayers.js",   
        //脚本目录   
        _getScriptLocation: function () {   
            var scriptLocation = "";     
            //正则表达式,匹配src中含有脚本名字的script标签             
            var isOL = new RegExp("(^|(.*?\\/))(" + OpenLayers._scriptName + ")(\\?|$)");   
            //获取页面中的所有script标签   
            var scripts = document.getElementsByTagName('script');   
            //循环这个数组,用isOL去匹配,把匹配项的目录值赋给scriptLocation变量   
            for (var i=0, len=scripts.length; i<len; i++) {   
                var src = scripts[i].getAttribute('src');   
                if (src) {   
                    var match = src.match(isOL);   
                    if(match) {   
                        scriptLocation = match[1];   
                        break;   
                    }   
                }   
            }   
            return scriptLocation;   
        }   
    };   
    //这里是动态加载script,用了两种方式一种是W3C的标准DOM模型操作,一种是document.write()直接输出script的html代码。考虑到使用两种方式主要是js文件的加载有先后顺序。如果加载的顺序出错,在Openlayers则不能使用。而IE如果是用W3C的DOM模型来加载js代码,则加载的顺序是按那个js文件先下载回来,就先加载那个。这个应该是IE的一个bug,而Firefox用这两种方法都可以,不会出现顺序混乱的现象。   
    if(!singleFile) {   
        var jsfiles = new Array(   
            "OpenLayers/Util.js",   
            "OpenLayers/BaseTypes.js",   
            "OpenLayers/BaseTypes/Class.js",   
            "OpenLayers/BaseTypes/Bounds.js",   
            "OpenLayers/BaseTypes/Element.js",   
            "OpenLayers/BaseTypes/LonLat.js",   
            "OpenLayers/BaseTypes/Pixel.js",   
            "OpenLayers/BaseTypes/Size.js",   
            "OpenLayers/Console.js",   
            "OpenLayers/Tween.js",   
            "Rico/Corner.js",   
            "Rico/Color.js",   
            "OpenLayers/Ajax.js",   
            "OpenLayers/Events.js",   
            "OpenLayers/Request.js",   
            "OpenLayers/Request/XMLHttpRequest.js",   
            "OpenLayers/Projection.js",   
            "OpenLayers/Map.js",   
            "OpenLayers/Layer.js",   
            "OpenLayers/Icon.js",   
            "OpenLayers/Marker.js",   
            "OpenLayers/Marker/Box.js",   
            "OpenLayers/Popup.js",   
            "OpenLayers/Tile.js",   
            "OpenLayers/Tile/Image.js",   
            "OpenLayers/Tile/WFS.js",   
            "OpenLayers/Layer/Image.js",   
            "OpenLayers/Layer/SphericalMercator.js",   
            "OpenLayers/Layer/EventPane.js",   
            "OpenLayers/Layer/FixedZoomLevels.js",   
            "OpenLayers/Layer/Google.js",   
            "OpenLayers/Layer/VirtualEarth.js",   
            "OpenLayers/Layer/Yahoo.js",   
            "OpenLayers/Layer/HTTPRequest.js",   
            "OpenLayers/Layer/Grid.js",   
            "OpenLayers/Layer/MapGuide.js",   
            "OpenLayers/Layer/MapServer.js",   
            "OpenLayers/Layer/MapServer/Untiled.js",   
            "OpenLayers/Layer/KaMap.js",   
            "OpenLayers/Layer/KaMapCache.js",   
            "OpenLayers/Layer/MultiMap.js",   
            "OpenLayers/Layer/Markers.js",   
            "OpenLayers/Layer/Text.js",   
            "OpenLayers/Layer/WorldWind.js",   
            "OpenLayers/Layer/ArcGIS93Rest.js",   
            "OpenLayers/Layer/WMS.js",   
            "OpenLayers/Layer/WMS/Untiled.js",   
            "OpenLayers/Layer/ArcIMS.js",   
            "OpenLayers/Layer/GeoRSS.js",   
            "OpenLayers/Layer/Boxes.js",   
            "OpenLayers/Layer/XYZ.js",   
            "OpenLayers/Layer/TMS.js",   
            "OpenLayers/Layer/TileCache.js",   
            "OpenLayers/Popup/Anchored.js",   
            "OpenLayers/Popup/AnchoredBubble.js",   
            "OpenLayers/Popup/Framed.js",   
            "OpenLayers/Popup/FramedCloud.js",   
            "OpenLayers/Feature.js",   
            "OpenLayers/Feature/Vector.js",   
            "OpenLayers/Feature/WFS.js",   
            "OpenLayers/Handler.js",   
            "OpenLayers/Handler/Click.js",   
            "OpenLayers/Handler/Hover.js",   
            "OpenLayers/Handler/Point.js",   
            "OpenLayers/Handler/Path.js",   
            "OpenLayers/Handler/Polygon.js",   
            "OpenLayers/Handler/Feature.js",   
            "OpenLayers/Handler/Drag.js",   
            "OpenLayers/Handler/RegularPolygon.js",   
            "OpenLayers/Handler/Box.js",   
            "OpenLayers/Handler/MouseWheel.js",   
            "OpenLayers/Handler/Keyboard.js",   
            "OpenLayers/Control.js",   
            "OpenLayers/Control/Attribution.js",   
            "OpenLayers/Control/Button.js",   
            "OpenLayers/Control/ZoomBox.js",   
            "OpenLayers/Control/ZoomToMaxExtent.js",   
            "OpenLayers/Control/DragPan.js",   
            "OpenLayers/Control/Navigation.js",   
            "OpenLayers/Control/MouseDefaults.js",   
            "OpenLayers/Control/MousePosition.js",   
            "OpenLayers/Control/OverviewMap.js",   
            "OpenLayers/Control/KeyboardDefaults.js",   
            "OpenLayers/Control/PanZoom.js",   
            "OpenLayers/Control/PanZoomBar.js",   
            "OpenLayers/Control/ArgParser.js",   
            "OpenLayers/Control/Permalink.js",   
            "OpenLayers/Control/Scale.js",   
            "OpenLayers/Control/ScaleLine.js",   
            "OpenLayers/Control/Snapping.js",   
            "OpenLayers/Control/Split.js",   
            "OpenLayers/Control/LayerSwitcher.js",   
            "OpenLayers/Control/DrawFeature.js",   
            "OpenLayers/Control/DragFeature.js",   
            "OpenLayers/Control/ModifyFeature.js",   
            "OpenLayers/Control/Panel.js",   
            "OpenLayers/Control/SelectFeature.js",   
            "OpenLayers/Control/NavigationHistory.js",   
            "OpenLayers/Control/Measure.js",   
            "OpenLayers/Control/WMSGetFeatureInfo.js",   
            "OpenLayers/Geometry.js",   
            "OpenLayers/Geometry/Rectangle.js",   
            "OpenLayers/Geometry/Collection.js",   
            "OpenLayers/Geometry/Point.js",   
            "OpenLayers/Geometry/MultiPoint.js",   
            "OpenLayers/Geometry/Curve.js",   
            "OpenLayers/Geometry/LineString.js",   
            "OpenLayers/Geometry/LinearRing.js",           
            "OpenLayers/Geometry/Polygon.js",   
            "OpenLayers/Geometry/MultiLineString.js",   
            "OpenLayers/Geometry/MultiPolygon.js",   
            "OpenLayers/Geometry/Surface.js",   
            "OpenLayers/Renderer.js",   
            "OpenLayers/Renderer/Elements.js",   
            "OpenLayers/Renderer/SVG.js",   
            "OpenLayers/Renderer/Canvas.js",   
            "OpenLayers/Renderer/VML.js",   
            "OpenLayers/Layer/Vector.js",   
            "OpenLayers/Layer/Vector/RootContainer.js",   
            "OpenLayers/Strategy.js",   
            "OpenLayers/Strategy/Fixed.js",   
            "OpenLayers/Strategy/Cluster.js",   
            "OpenLayers/Strategy/Paging.js",   
            "OpenLayers/Strategy/BBOX.js",   
            "OpenLayers/Strategy/Save.js",   
            "OpenLayers/Protocol.js",   
            "OpenLayers/Protocol/HTTP.js",   
            "OpenLayers/Protocol/SQL.js",   
            "OpenLayers/Protocol/SQL/Gears.js",   
            "OpenLayers/Protocol/WFS.js",   
            "OpenLayers/Protocol/WFS/v1.js",   
            "OpenLayers/Protocol/WFS/v1_0_0.js",   
            "OpenLayers/Protocol/WFS/v1_1_0.js",   
            "OpenLayers/Layer/PointTrack.js",   
            "OpenLayers/Layer/GML.js",   
            "OpenLayers/Style.js",   
            "OpenLayers/StyleMap.js",   
            "OpenLayers/Rule.js",   
            "OpenLayers/Filter.js",   
            "OpenLayers/Filter/FeatureId.js",   
            "OpenLayers/Filter/Logical.js",   
            "OpenLayers/Filter/Comparison.js",   
            "OpenLayers/Filter/Spatial.js",   
            "OpenLayers/Format.js",   
            "OpenLayers/Format/XML.js",   
            "OpenLayers/Format/ArcXML.js",   
            "OpenLayers/Format/ArcXML/Features.js",   
            "OpenLayers/Format/GML.js",   
            "OpenLayers/Format/GML/Base.js",   
            "OpenLayers/Format/GML/v2.js",   
            "OpenLayers/Format/GML/v3.js",   
            "OpenLayers/Format/KML.js",   
            "OpenLayers/Format/GeoRSS.js",   
            "OpenLayers/Format/WFS.js",   
            "OpenLayers/Format/WFSCapabilities.js",   
            "OpenLayers/Format/WFSCapabilities/v1.js",   
            "OpenLayers/Format/WFSCapabilities/v1_0_0.js",   
            "OpenLayers/Format/WFSCapabilities/v1_1_0.js",   
            "OpenLayers/Format/WFSDescribeFeatureType.js",   
            "OpenLayers/Format/WMSDescribeLayer.js",   
            "OpenLayers/Format/WMSDescribeLayer/v1_1.js",   
            "OpenLayers/Format/WKT.js",   
            "OpenLayers/Format/OSM.js",   
            "OpenLayers/Format/GPX.js",   
            "OpenLayers/Format/Filter.js",   
            "OpenLayers/Format/Filter/v1.js",   
            "OpenLayers/Format/Filter/v1_0_0.js",   
            "OpenLayers/Format/Filter/v1_1_0.js",   
            "OpenLayers/Format/SLD.js",   
            "OpenLayers/Format/SLD/v1.js",   
            "OpenLayers/Format/SLD/v1_0_0.js",   
            "OpenLayers/Format/SLD/v1.js",   
            "OpenLayers/Format/WFST.js",   
            "OpenLayers/Format/WFST/v1.js",   
            "OpenLayers/Format/WFST/v1_0_0.js",   
            "OpenLayers/Format/WFST/v1_1_0.js",   
            "OpenLayers/Format/Text.js",   
            "OpenLayers/Format/JSON.js",   
            "OpenLayers/Format/GeoJSON.js",   
            "OpenLayers/Format/WMC.js",   
            "OpenLayers/Format/WMC/v1.js",   
            "OpenLayers/Format/WMC/v1_0_0.js",   
            "OpenLayers/Format/WMC/v1_1_0.js",   
            "OpenLayers/Format/WMSCapabilities.js",   
            "OpenLayers/Format/WMSCapabilities/v1_1.js",   
            "OpenLayers/Format/WMSCapabilities/v1_1_0.js",   
            "OpenLayers/Format/WMSCapabilities/v1_1_1.js",   
            "OpenLayers/Format/WMSGetFeatureInfo.js",   
            "OpenLayers/Layer/WFS.js",   
            "OpenLayers/Control/GetFeature.js",   
            "OpenLayers/Control/MouseToolbar.js",   
            "OpenLayers/Control/NavToolbar.js",   
            "OpenLayers/Control/PanPanel.js",   
            "OpenLayers/Control/Pan.js",   
            "OpenLayers/Control/ZoomIn.js",   
            "OpenLayers/Control/ZoomOut.js",   
            "OpenLayers/Control/ZoomPanel.js",   
            "OpenLayers/Control/EditingToolbar.js",   
            "OpenLayers/Lang.js",   
            "OpenLayers/Lang/en.js"  
        ); // etc.   
        var agent = navigator.userAgent;   
        var docWrite = (agent.match("MSIE") || agent.match("Safari"));   
        if(docWrite) {   
            var allScriptTags = new Array(jsfiles.length);   
        }   
        var host = OpenLayers._getScriptLocation() + "lib/";       
        for (var i=0, len=jsfiles.length; i<len; i++) {   
            if (docWrite) {   
                allScriptTags[i] = "<mce:script src="" + host + jsfiles[i] +   
                                   "" mce_src="" + host + jsfiles[i] +   
                                   ""></mce:script>";    
            } else {   
                var s = document.createElement("script");   
                s.src = host + jsfiles[i];   
                var h = document.getElementsByTagName("head").length ?    
                           document.getElementsByTagName("head")[0] :    
                           document.body;   
                h.appendChild(s);   
            }   
        }   
        if (docWrite) {   
            document.write(allScriptTags.join(""));   
        }   
    }   
})();   
//Openlayers的版本号   
OpenLayers.VERSION_NUMBER="OpenLayers 2.8 -- $Revision: 9492 $";  




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

相关推荐

    关于OpenLayers一周研究

    关于OpenLayers一周研究成果,内有OpenLayers2.13、OpenLayers3的源码以及加载百度谷歌地图的源码,如何定位,如何画线,生成多边形等源码,以及OpenLayers2.13的中文接口文档。OpenLayers基础教程。

    OpenLayers动画效果显示路线

    OpenLayers 是一个强大的开源JavaScript库,用于在网页上创建交互式的地图应用。它支持多种数据源,包括WMS、WFS、KML等,并且可以与各种GIS服务器(如Geoserver)无缝集成。在本案例中,我们将讨论如何利用...

    openlayers中文.rar

    OpenLayers 是一个强大的开源JavaScript库,用于在网页上创建交互式的地图应用。它支持多种地图数据源,包括WMS、WMTS、TMS、GeoJSON等,使得开发者能够轻松地将地理信息集成到Web应用中。这个"openlayers中文.rar...

    《WebGIS之OpenLayers全面解析》一书源码

    OpenLayers作为业内使用最为广泛的地图引擎之一,已被各大GIS厂商和广大WebGIS二次开发者采用。借助OpenLayers强大的扩展功能,可以实现与各个不同的WebGIS平台产品相结合,开发出各具特色的WebGIS应用系统。 本书...

    openlayers很多特效demo

    OpenLayers 是一个强大的开源JavaScript库,用于在网页上创建交互式的地图应用。它支持多种地图服务,包括WMS、WMTS等,并且能够处理多种数据格式,如GeoJSON、KML等。"openlayers很多特效demo" 提供了一系列示例,...

    openlayersAPI研究文档

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

    OpenLayers

    OpenLayers 是一个开源的JavaScript库,专门用于在Web浏览器中展示地理信息系统(GIS)数据。这个强大的工具允许开发者创建交互式的地图应用,支持多种地图服务,包括WMS、WFS、KML等。下面将详细介绍OpenLayers的...

    openlayers 编辑geoserver图层

    OpenLayers是一个JavaScript库,用于在Web浏览器中显示地图,而GeoServer则是一个基于Java的服务,它允许用户发布、管理和操作地理空间数据。本资源主要针对初级学习者,介绍如何使用OpenLayers对GeoServer图层进行...

    OpenLayers v5.3.0 release

    OpenLayers 是一个强大的开源JavaScript库,专为在Web上创建交互式地图应用而设计。它支持多种地图数据源,包括WMS、WMTS、TMS等服务,以及GeoJSON和KML等本地格式。OpenLayers v5.3.0是这个库的一个重要版本更新,...

    openlayers5.zip

    OpenLayers 是一个开源JavaScript库,专门用于在Web上创建交互式的地图应用。它支持多种地图服务,包括WMS、WMTS、TMS等,并且兼容各种浏览器和设备。OpenLayers 5是其版本更新中的一项重要升级,带来了许多新特性和...

    openlayers3添加闪烁点

    在OpenLayers 3中添加闪烁点是一项常见的需求,特别是在地理信息系统(GIS)应用中,用于突出显示特定位置或实时更新的数据。OpenLayers 是一个流行的JavaScript库,用于在Web浏览器中展示地图,支持多种数据源和...

    openlayers5.3.0文档高速版

    OpenLayers 是一个开源JavaScript库,专门用于在网页上创建交互式的地图应用。版本5.3.0是其一个重要里程碑,提供了丰富的功能和优化,使得开发者能更高效地构建地理信息系统(GIS)应用。这个“openlayers5.3.0文档...

    openlayers河流动态轨迹.zip

    OpenLayers 是一个开源JavaScript库,专门用于在网页上创建交互式的地图应用。它支持多种地图数据源,包括WMS、WMTS、TMS等服务,以及GeoJSON、KML、GML等地理数据格式。"openlayers河流动态轨迹.zip"这个文件很可能...

    openlayers v4.2.0下载

    OpenLayers 是一个开源JavaScript库,专门用于在网页上创建交互式的地图应用。它支持多种地图服务,包括WMS、WMTS、TMS等,并且兼容各种数据格式,如GeoJSON、KML和GML。OpenLayers v4.2.0是这个库的一个特定版本,...

    openlayers图层开关控件

    OpenLayers 是一个强大的开源JavaScript库,用于在网页上创建交互式的地图应用。它支持多种地图服务,包括WMS、WMTS等,并且兼容多种数据格式。"图层开关控件"是OpenLayers中的一个重要功能,它允许用户方便地切换...

    openLayers的缩放级别

    OpenLayers缩放级别 OpenLayers 的缩放级别是指在不同比例尺或解析度下显示每个 layer 对象的引用, 即 ZoomLevels。OpenLayers 允许每个 layer 自定义自己的缩放级别,使之看起来合适。可以通过在构造函数中设置 ...

    vue+openlayers简单示例

    OpenLayers 是一个开源的JavaScript库,专门用于创建交互式的地图应用。这个“vue+openlayers简单示例”是为了演示如何在Vue项目中集成OpenLayers,以便在Web应用中展示和操作地图。 首先,集成OpenLayers到Vue项目...

    openlayers-官方完整包-v4.6.5

    OpenLayers 是一个强大的开源JavaScript库,用于在Web浏览器中创建交互式地图应用。它支持多种数据源和地图服务,如WMS、WMTS、TMS等,使得开发者能够轻松地将地理信息系统(GIS)集成到网页中。v4.6.5是OpenLayers...

    openlayers 调用百度地图

    在OpenLayers中调用百度地图是一项常见的需求,特别是在构建Web GIS应用时,用户可能希望结合OpenLayers的强大功能和百度地图的丰富数据。OpenLayers是一个开源JavaScript库,用于创建交互式的地图应用,而百度地图...

Global site tag (gtag.js) - Google Analytics