`
soswane
  • 浏览: 21133 次
  • 性别: 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 geoserver常见问题

    openLayers 在地图上添加一个点并保存 39 openLayers 各个参数的意义 42 geoserver能搞出这种风格的图来吗? 43 关于SLD的线切割后的设置 43 GEOSERVE 标注铁路,使用 SLD 44 geoserver 发布.shp 中文乱码问题 怎么...

    openlayers中文.rar

    关于openlayers开发的一个中文手册,供大家学习。

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

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

    webgis之openlayers全面解析pdf

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

    OpenLayers教程下载 OpenLayers教程第一讲概述

    OpenLayers是一个用于开发WebGIS客户端的JavaScript包,用到技术有地理轨迹动画、基站转经纬度等。

    vue3+vite+openlayers6实现绘制扇形及环形组件代码

    内容概要:通过带着读者手写...阅读建议:此资源以开发绘制扇形及环形学习其原理地图容器,不仅是代码编写实现也更注重内容上的需求分析和方案设计,所以在学习的过程要结合这些内容一起来实践,并调试对应的代码。

    openlayers 态势箭头、进击箭头等

    openlayers 态势箭头、进击箭头等

    vue+openlayers简单示例

    一个Vue与Openlayers结合的应用示例,以组件的方式在Vue中使用openlayers地图,以及可以进行简单的地图配置

    WebGIS之OpenLayers全面解析

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

    OpenLayers 2.12

    OpenLayers是一个用于开发WebGIS客户端的JavaScript包。OpenLayers 支持的地图来源包括Google Maps、Yahoo、 Map、微软Virtual Earth 等,用户还可以用简单的图片地图作为背景图,与其他的图层在OpenLayers 中进行...

    微信小程序-针对Openlayers3写的一套快速调用的小程序

    OpenLayers3 Toolkit 针对Openlayers3写的一套工具包,基于v3.15.1版本。 开发计划 目前主要计划完成的功能模块: 快速构建地图 地图大小自适应 常用功能集成 简便画点线面 使用说明 在加载ol3toolkit.js前先加载...

    openlayers5.zip

    该代码为openlayers5的第一个简单实例,可供初学者使用。

    OpenLayers实战教程第一讲

    OpenLayers是一个用于开发WebGIS客户端的JavaScript包,结合地理信息系统展示的特点使用OpenLayers实战解决实际问题。

    Openlayers实例详解视频教程

    给大家分享一套Openlayers实例详解视频教程,希望对大家学习Openlayers有帮助。记得给五星好评哦。

    OpenLayers3Primer-master.zip

    这是一个关于OpenLayers 3使用的入门教程。帮助初学者逐步认识OpenLayers 3,理解地图组成,以及各个组成部分的作用。在此基础上,逐个突破,结合大量的实例,指导大家应用OpenLayers 3开发出符合业务的地图。在这个...

    OpenLayers_6.1.0.zip

    OpenLayers 是一个专为WebGIS 客户端开发的JavaScript 类库包,用于实现对相关地图的操作展示,目前最新版本为Openlayers6,本文的版本为Openlayers6.11版本;

    openlayers加载静态图片地图

    openlayers加载静态图片作为底图,操作图片流畅,可控显示范围和等级

    openlayers图层控制加入group layer功能

    开发时,有时候图层很多,需要有同时打开关闭多个图层的功能,但是正式版的layerSwitcher不支持group layer功能. 从网上搜到layerSwitcher的...对layerSwitcher.js进行修改后,需要重新build一下,生成新的openlayers.js

    vue集成openlayers加载geojson并实现点击弹窗教程

    第一步:安装vue-cli cnpm install -g @vue/cli 第二步:新建一个项目 1.新建项目 (vue-openlayers为项目名),并选择default模版 vue create vue-openlayers 2.安装openlayers cnpm i -S ol 第三步:写业务代码 ...

Global site tag (gtag.js) - Google Analytics