⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wms.js

📁 用来在地图上做操作GIS,在地图上做标记
💻 JS
字号:
/* Copyright (c) 2006-2007 MetaCarta, Inc., published under the BSD license. * See http://svn.openlayers.org/trunk/openlayers/release-license.txt  * for the full text of the license. *//** * @requires OpenLayers/Layer/Grid.js * @requires OpenLayers/Tile/Image.js *  * Class: OpenLayers.Layer.WMS * Instances of OpenLayers.Layer.WMS are used to display data from OGC Web *     Mapping Services. Create a new WMS layer with the <OpenLayers.Layer.WMS> *     constructor. *  * Inherits from: *  - <OpenLayers.Layer.Grid> */OpenLayers.Layer.WMS = OpenLayers.Class(OpenLayers.Layer.Grid, {    /**     * Constant: DEFAULT_PARAMS     * {Object} Hashtable of default parameter key/value pairs      */    DEFAULT_PARAMS: { service: "WMS",                      version: "1.1.1",                      request: "GetMap",                      styles: "",                      exceptions: "application/vnd.ogc.se_inimage",                      format: "image/jpeg"                     },        /**     * Property: reproject     * *Deprecated*. See http://trac.openlayers.org/wiki/SpatialMercator     * for information on the replacement for this functionality.      * {Boolean} Try to reproject this layer if its coordinate reference system     *           is different than that of the base layer.  Default is true.       *           Set this in the layer options.  Should be set to false in      *           most cases.     */    reproject: false,     /**     * APIProperty: isBaseLayer     * {Boolean} Default is true for WMS layer     */    isBaseLayer: true,        /**     * APIProperty: encodeBBOX     * {Boolean} Should the BBOX commas be encoded? The WMS spec says 'no',      * but some services want it that way. Default false.     */    encodeBBOX: false,     /**     * Constructor: OpenLayers.Layer.WMS     * Create a new WMS layer object     *     * Example:     * (code)     * var wms = new OpenLayers.Layer.WMS("NASA Global Mosaic",     *                                    "http://wms.jpl.nasa.gov/wms.cgi",      *                                    {layers: "modis,global_mosaic"});     * (end)     *     * Parameters:     * name - {String} A name for the layer     * url - {String} Base url for the WMS     *                (e.g. http://wms.jpl.nasa.gov/wms.cgi)     * params - {Object} An object with key/value pairs representing the     *                   GetMap query string parameters and parameter values.     * options - {Ojbect} Hashtable of extra options to tag onto the layer     */    initialize: function(name, url, params, options) {        var newArguments = [];        //uppercase params        params = OpenLayers.Util.upperCaseObject(params);        newArguments.push(name, url, params, options);        OpenLayers.Layer.Grid.prototype.initialize.apply(this, newArguments);        OpenLayers.Util.applyDefaults(                       this.params,                        OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS)                       );        //layer is transparent                if (this.params.TRANSPARENT &&             this.params.TRANSPARENT.toString().toLowerCase() == "true") {                        // unless explicitly set in options, make layer an overlay            if ( (options == null) || (!options.isBaseLayer) ) {                this.isBaseLayer = false;            }                         // jpegs can never be transparent, so intelligently switch the             //  format, depending on teh browser's capabilities            if (this.params.FORMAT == "image/jpeg") {                this.params.FORMAT = OpenLayers.Util.alphaHack() ? "image/gif"                                                                 : "image/png";            }        }    },        /**     * Method: destroy     * Destroy this layer     */    destroy: function() {        // for now, nothing special to do here.         OpenLayers.Layer.Grid.prototype.destroy.apply(this, arguments);      },        /**     * Method: clone     * Create a clone of this layer     *     * Returns:     * {<OpenLayers.Layer.WMS>} An exact clone of this layer     */    clone: function (obj) {                if (obj == null) {            obj = new OpenLayers.Layer.WMS(this.name,                                           this.url,                                           this.params,                                           this.options);        }        //get all additions from superclasses        obj = OpenLayers.Layer.Grid.prototype.clone.apply(this, [obj]);        // copy/set any non-init, non-simple values here        return obj;    },            /**     * Method: getURL     * Return a GetMap query string for this layer     *     * Parameters:     * bounds - {<OpenLayers.Bounds>} A bounds representing the bbox for the     *                                request.     *     * Returns:     * {String} A string with the layer's url and parameters and also the     *          passed-in bounds and appropriate tile size specified as      *          parameters.     */    getURL: function (bounds) {        bounds = this.adjustBounds(bounds);                var imageSize = this.getImageSize();         return this.getFullRequestString(                     {BBOX: this.encodeBBOX ?  bounds.toBBOX() : bounds.toArray(),                      WIDTH:imageSize.w,                      HEIGHT:imageSize.h});    },    /**     * Method: addTile     * addTile creates a tile, initializes it, and adds it to the layer div.      *     * Parameters:     * bounds - {<OpenLayers.Bounds>}     *      * Returns:     * {<OpenLayers.Tile.Image>} The added OpenLayers.Tile.Image     */    addTile:function(bounds,position) {        return new OpenLayers.Tile.Image(this, position, bounds,                                          null, this.tileSize);    },    /**     * APIMethod: mergeNewParams     * Catch changeParams and uppercase the new params to be merged in     *     before calling changeParams on the super class.     *      *     Once params have been changed, we will need to re-init our tiles.     *      * Parameters:     * newParams - {Object} Hashtable of new params to use     */    mergeNewParams:function(newParams) {        var upperParams = OpenLayers.Util.upperCaseObject(newParams);        var newArguments = [upperParams];        OpenLayers.Layer.Grid.prototype.mergeNewParams.apply(this,                                                              newArguments);    },    /**      * Method: getFullRequestString     * Combine the layer's url with its params and these newParams.      *        *     Add the SRS parameter from projection -- this is probably     *     more eloquently done via a setProjection() method, but this      *     works for now and always.     *     * Parameters:     * newParams - {Object}     *      * Returns:     * {String}      */    getFullRequestString:function(newParams) {        var projection = this.map.getProjection();        this.params.SRS = (projection == "none") ? null : projection;        return OpenLayers.Layer.Grid.prototype.getFullRequestString.apply(                                                    this, arguments);    },    CLASS_NAME: "OpenLayers.Layer.WMS"});

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -