亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? kamap.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 *  * Class: OpenLayers.Layer.KaMap *  * Inherits from: *  - <OpenLayers.Layer.Grid> */OpenLayers.Layer.KaMap = OpenLayers.Class(OpenLayers.Layer.Grid, {    /**      * APIProperty: isBaseLayer     * {Boolean} KaMap Layer is always a base layer      */        isBaseLayer: true,    /**     * APIProperty: units     * {?}     */        units: null,    /**     * APIProperty: resolution     * {Float}     */    resolution: OpenLayers.DOTS_PER_INCH,        /**     * Constant: DEFAULT_PARAMS     * {Object} parameters set by default. The default parameters set      * the format via the 'i' parameter to 'jpeg'.         */    DEFAULT_PARAMS: {        i: 'jpeg',        map: ''    },            /**     * Constructor: OpenLayers.Layer.KaMap     *      * Parameters:     * name - {String}     * url - {String}     * params - {Object} Parameters to be sent to the HTTP server in the     *    query string for the tile. The format can be set via the 'i'     *    parameter (defaults to jpg) , and the map should be set via      *    the 'map' parameter. It has been reported that ka-Map may behave     *    inconsistently if your format parameter does not match the format     *    parameter configured in your config.php. (See ticket #327 for more     *    information.)     * options - {Object} Additional options for the layer. Any of the      *     APIProperties listed on this layer, and any layer types it     *     extends, can be overridden through the options parameter.      */    initialize: function(name, url, params, options) {        var newArguments = [];        newArguments.push(name, url, params, options);        OpenLayers.Layer.Grid.prototype.initialize.apply(this, newArguments);        this.params = (params ? params : {});        if (params) {            OpenLayers.Util.applyDefaults(                           this.params,                            this.DEFAULT_PARAMS                           );        }    },    /**     * Method: getURL     *      * Parameters:     * bounds - {<OpenLayers.Bounds>}      *      * 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 mapRes = this.map.getResolution();        var scale = Math.round((this.map.getScale() * 10000)) / 10000;        var pX = Math.round(bounds.left / mapRes);        var pY = -Math.round(bounds.top / mapRes);        return this.getFullRequestString(                      { t: pY,                         l: pX,                        s: scale                      });    },    /**     * Method: addTile     *      * Parameters:     * bounds - {<OpenLayers.Bounds>}     * position - {<OpenLayers.Pixel>}     *      * Returns:     * {<OpenLayers.Tile.Image>}     */        addTile:function(bounds,position) {        var url = this.getURL(bounds);        return new OpenLayers.Tile.Image(this, position, bounds,                                              url, this.tileSize);    },    /**     * Method: initGriddedTiles     */        initGriddedTiles:function(bounds) {        var viewSize = this.map.getSize();        var minRows = Math.ceil(viewSize.h/this.tileSize.h) + Math.max(1, 2*this.buffer);        var minCols = Math.ceil(viewSize.w/this.tileSize.w) + Math.max(1, 2*this.buffer);                var extent = this.map.getMaxExtent();        var resolution = this.map.getResolution();        var tilelon = resolution*this.tileSize.w;        var tilelat = resolution*this.tileSize.h;                var offsetlon = bounds.left;        var tilecol = Math.floor(offsetlon/tilelon) - this.buffer;        var tilecolremain = offsetlon/tilelon - tilecol;        var tileoffsetx = -tilecolremain * this.tileSize.w;        var tileoffsetlon = tilecol * tilelon;                var offsetlat = bounds.top;          var tilerow = Math.ceil(offsetlat/tilelat) + this.buffer;        var tilerowremain = tilerow - offsetlat/tilelat;        var tileoffsety = -(tilerowremain+1) * this.tileSize.h;        var tileoffsetlat = tilerow * tilelat;                tileoffsetx = Math.round(tileoffsetx); // heaven help us        tileoffsety = Math.round(tileoffsety);        this.origin = new OpenLayers.Pixel(tileoffsetx,tileoffsety);        var startX = tileoffsetx;         var startLon = tileoffsetlon;                var rowidx = 0;                do {            var row = this.grid[rowidx++];            if (!row) {                row = [];                this.grid.push(row);            }            tileoffsetlon = startLon;            tileoffsetx = startX;            var colidx = 0;             do {                var tileBounds =                     new OpenLayers.Bounds(tileoffsetlon,                                           tileoffsetlat,                                           tileoffsetlon + tilelon,                                          tileoffsetlat + tilelat);                var x = tileoffsetx;                x -= parseInt(this.map.layerContainerDiv.style.left);                var y = tileoffsety;                y -= parseInt(this.map.layerContainerDiv.style.top);                var px = new OpenLayers.Pixel(x, y);                var tile = row[colidx++];                if (!tile) {                    tile = this.addTile(tileBounds, px);                    this.addTileMonitoringHooks(tile);                     row.push(tile);                } else {                    tile.moveTo(tileBounds, px, false);                }                     tileoffsetlon += tilelon;                       tileoffsetx += this.tileSize.w;            } while (tileoffsetlon <= bounds.right + tilelon * this.buffer                     || colidx < minCols)                        tileoffsetlat -= tilelat;            tileoffsety += this.tileSize.h;        } while(tileoffsetlat >= bounds.bottom - tilelat * this.buffer                || rowidx < minRows)                //shave off exceess rows and colums        this.removeExcessTiles(rowidx, colidx);                //now actually draw the tiles        this.spiralTileLoad();    },        /**     * APIMethod: clone     *      * Parameters:      * obj - {Object}     *      * Returns:     * {<OpenLayers.Layer.Kamap>} An exact clone of this OpenLayers.Layer.KaMap     */    clone: function (obj) {                if (obj == null) {            obj = new OpenLayers.Layer.KaMap(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        if (this.tileSize != null) {            obj.tileSize = this.tileSize.clone();        }                // we do not want to copy reference to grid, so we make a new array        obj.grid = [];        return obj;    },            /**     * APIMethod: getTileBounds     * Returns The tile bounds for a layer given a pixel location.     *     * Parameters:     * viewPortPx - {<OpenLayers.Pixel>} The location in the viewport.     *     * Returns:     * {<OpenLayers.Bounds>} Bounds of the tile at the given pixel location.     */    getTileBounds: function(viewPortPx) {        var resolution = this.getResolution();        var tileMapWidth = resolution * this.tileSize.w;        var tileMapHeight = resolution * this.tileSize.h;        var mapPoint = this.getLonLatFromViewPortPx(viewPortPx);        var tileLeft = tileMapWidth * Math.floor(mapPoint.lon / tileMapWidth);        var tileBottom = tileMapHeight * Math.floor(mapPoint.lat / tileMapHeight);        return new OpenLayers.Bounds(tileLeft, tileBottom,                                     tileLeft + tileMapWidth,                                     tileBottom + tileMapHeight);    },    CLASS_NAME: "OpenLayers.Layer.KaMap"});

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产清纯白嫩初高生在线观看91| 亚洲超碰97人人做人人爱| 一区二区日韩av| 国产一区二区免费视频| 欧美色综合久久| 国产精品三级在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 成人国产精品免费观看| 精品国产乱码91久久久久久网站| 亚洲精品菠萝久久久久久久| 国产一区日韩二区欧美三区| 欧美美女直播网站| 一区二区三区色| 成人午夜免费视频| 久久久电影一区二区三区| 美女视频黄频大全不卡视频在线播放| 99精品欧美一区| 国产精品嫩草99a| 国产精品69毛片高清亚洲| 日韩精品专区在线影院重磅| 午夜国产精品影院在线观看| 色国产综合视频| 伊人夜夜躁av伊人久久| 99精品在线观看视频| 国产精品久久久久久久久久免费看| 久久99精品国产.久久久久久| 91精品在线麻豆| 婷婷国产v国产偷v亚洲高清| 欧美日韩国产精品成人| 天天色天天爱天天射综合| 欧美色男人天堂| 亚洲一区二区精品久久av| 日本高清不卡一区| 亚洲午夜精品网| 欧美日本不卡视频| 欧美a级理论片| 精品对白一区国产伦| 国内不卡的二区三区中文字幕| 日韩精品一区二区三区在线播放| 国产精品伦一区| 激情成人综合网| 欧美大尺度电影在线| 久久久亚洲精品石原莉奈| 精品一区二区三区免费毛片爱| 欧美一区二区成人6969| 久久99久久久久| 久久精品男人的天堂| 成人av免费在线| 亚洲bdsm女犯bdsm网站| 精品久久一二三区| 成人一区二区三区视频在线观看| 国产精品美女久久久久久| 91久久线看在观草草青青| 午夜欧美电影在线观看| 精品久久久久久久久久久院品网 | 成人午夜激情在线| 1024成人网| 欧美丰满少妇xxxbbb| 一本一道综合狠狠老| 三级一区在线视频先锋| 欧美精品一卡二卡| 国产在线精品一区二区| 亚洲人成精品久久久久| 精品视频1区2区| 久久丁香综合五月国产三级网站| 亚洲国产精品激情在线观看| 在线观看av一区| 久久99最新地址| 亚洲欧美国产毛片在线| 日韩欧美二区三区| 色悠悠久久综合| 国内不卡的二区三区中文字幕| 1024成人网色www| 精品国产成人系列| 91豆麻精品91久久久久久| 九一久久久久久| 一区二区三区免费看视频| 精品国产一区二区三区不卡 | 日韩电影在线免费| 日韩av中文字幕一区二区| 亚洲人成人一区二区在线观看| 久久国产综合精品| 夜夜嗨av一区二区三区网页| 日韩欧美国产电影| 欧美日韩专区在线| 成人黄色av网站在线| 日本欧美一区二区三区乱码| 亚洲欧美日韩国产另类专区| 精品91自产拍在线观看一区| 欧美色手机在线观看| 92精品国产成人观看免费| 精品无人码麻豆乱码1区2区 | 国产女主播视频一区二区| 欧美视频完全免费看| 成人听书哪个软件好| 国产美女主播视频一区| 亚洲成人综合在线| 亚洲美女视频一区| 国产精品你懂的| 久久综合五月天婷婷伊人| 日韩一级大片在线| 欧美人狂配大交3d怪物一区| 97精品国产露脸对白| 亚洲男人天堂一区| 一本大道久久a久久综合| 国产高清无密码一区二区三区| 日韩中文字幕av电影| 亚洲一区二区视频在线| 一区二区三区欧美| 一区二区三区电影在线播| 亚洲欧美成人一区二区三区| 国产精品三级av在线播放| 国产精品欧美久久久久无广告| 久久美女艺术照精彩视频福利播放| 欧美一级精品在线| 欧美xxxx老人做受| 久久精品一区二区三区不卡牛牛| 亚洲精品在线观看网站| 欧美不卡视频一区| 久久久99精品久久| 久久精品欧美一区二区三区麻豆| 精品久久久久久久久久久久久久久久久 | av在线一区二区三区| 成人在线视频一区| 亚洲区小说区图片区qvod| 亚洲天堂成人网| 99国产麻豆精品| www.日韩在线| 在线观看欧美精品| 欧美日韩一区二区三区四区| 欧美日韩国产成人在线91| 日韩欧美色综合| 国产欧美日产一区| 亚洲黄色录像片| 美女爽到高潮91| 国产成人精品免费看| 日本高清不卡在线观看| 91麻豆精品国产91| 国产欧美精品日韩区二区麻豆天美 | 国产精品久久久久久久久久免费看 | 男女视频一区二区| 成人一区在线观看| 欧美午夜片在线观看| 亚洲精品一区在线观看| 国产精品欧美久久久久一区二区| 亚洲人吸女人奶水| 99精品国产热久久91蜜凸| 成人免费视频免费观看| 亚洲午夜精品一区二区三区他趣| 日韩高清不卡一区二区三区| 国内不卡的二区三区中文字幕| 成人精品电影在线观看| 欧美麻豆精品久久久久久| 久久精品人人做人人综合| 香蕉久久一区二区不卡无毒影院| 久久99精品国产| 91福利视频网站| 久久久精品欧美丰满| 一级精品视频在线观看宜春院| 日本不卡一二三| 一本色道a无线码一区v| 26uuu另类欧美| 亚洲一区二区三区在线| 国产精品一级黄| 3atv在线一区二区三区| 亚洲欧洲综合另类| 国产一区在线看| 欧美日韩成人一区二区| 国产精品久久久久婷婷二区次| 日韩av一二三| 欧亚洲嫩模精品一区三区| 欧美韩国一区二区| 黄色日韩三级电影| 51午夜精品国产| 国产精品久久久久久久久晋中 | 国产三级一区二区| 亚洲一区二区免费视频| 大白屁股一区二区视频| 91精品福利在线一区二区三区 | 欧美一级高清片在线观看| 国产欧美日韩视频一区二区| 日韩电影在线看| 在线视频亚洲一区| 亚洲人成网站影音先锋播放| 国产精品一品视频| www国产亚洲精品久久麻豆| 午夜欧美2019年伦理| 91黄色小视频| 亚洲免费av观看| 99视频热这里只有精品免费| 国产精品无遮挡| 国产成人av电影| 久久久久久久久久久久久女国产乱| 日本美女一区二区| 日韩手机在线导航| 午夜精品福利一区二区三区av| 在线观看欧美日本| 一区二区三区免费看视频| 欧美影院一区二区| 五月天国产精品|