日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

扩展 OpenLayers.Layer.WMS 为自定义的瓦片浏览服务

發布時間:2025/4/16 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 扩展 OpenLayers.Layer.WMS 为自定义的瓦片浏览服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WMS 是OGC制定的標準 WEB GIS 協議,現在眾多的圖形提供商都提供了自己的WEB圖形服務,例如:ArcIMS、GoogleMaps、KaMap等等、要使用這些服務并制作自己的WEB客戶端,使用 OpenLayers 是很方便的事情,其中 WMS 是比較通用的協議,尤其適合服務器端矢量圖形的生成,但是在我們自己的項目中發現由于WMS每次發送給服務器的都是幾何坐標的格式化字符串來表達視野,這導致服務器端在提供瓦片時無法很好的進行高效的服務,幾乎總是需要對瓦片進行拼接和剪裁,通過分析 GOOGLE 和 TMS 協議,發現很多服務都不采用幾何坐標的字符串來表達視野,而是直接提供瓦片的行列號,這樣服務器端甚至可以直接使用一個簡單的HTTP服務器就可以了,基于以上考慮決定擴展OpenLayers來提供一個自己的瓦片服務的客戶端;

原理很簡單,就是在構造 WMS請求的URL時,采用自己的方式進行構造,代碼如下:

?

1 /**
2 * Class: ShineEnergy.Layer.TileImage
3 *
4 * Inherits from:
5 * - <OpenLayers.Layer.WMS>
6 */
7 ShineEnergy.Layer.TileImage = OpenLayers.Class(OpenLayers.Layer.WMS, {
8
9 /**
10 * Constructor: ShineEnergy.Layer.TileImage
11 *
12 * Parameters:
13 * name - {String} A name for the layer
14 * url - {String} Base url for the TileImage
15 * params - {Object} An object with key/value pairs representing the
16 * GetMap query string parameters and parameter values.
17 * options - {Object} Hashtable of extra options to tag onto the layer
18 */
19 initialize: function(name, url, params, options) {
20 OpenLayers.Layer.WMS.prototype.initialize.apply(this, arguments);
21 },
22
23 /**
24 * APIMethod:destroy
25 */
26 destroy: function() {
27 // for now, nothing special to do here.
28 ? OpenLayers.Layer.WMS.prototype.destroy.apply(this, arguments);
29 },
30
31 /**
32 * APIMethod: clone
33 *
34 * Parameters:
35 * obj - {Object}
36 *
37 * Returns:
38 * {<ShineEnergy.Layer.TileImage>} An exact clone of this <ShineEnergy.Layer.TileImage>
39 */
40 clone: function (obj) {
41
42 if (obj == null) {
43 obj = new ShineEnergy.Layer.TileImage(this.name,
44 this.url,
45 this.options);
46 }
47
48 //get all additions from superclasses
49 ? obj = OpenLayers.Layer.WMS.prototype.clone.apply(this, [obj]);
50
51 // copy/set any non-init, non-simple values here
52 ?
53 return obj;
54 },
55
56 /**
57 * Method: getURL
58 *
59 * Parameters:
60 * bounds - {<OpenLayers.Bounds>}
61 *
62 * Returns:
63 * {String} A string with the layer's url and parameters and also the
64 * passed-in bounds and appropriate tile size specified as
65 * parameters
66 */
67 getURL: function (bounds) {
68 bounds = this.adjustBounds(bounds);
69 var res = this.map.getResolution();
70 var tileOriginY = this.options.maxExtent.top;
71 var tileOriginX = this.options.maxExtent.left;
72 var x = Math.round((bounds.left - tileOriginX) / (res * this.tileSize.w));
73 var y = Math.round((tileOriginY - bounds.bottom) / (res * this.tileSize.h));
74 var z = this.map.getZoom();
75 var path = "?LAYER=" + this.params.LAYERS + "&X=" + x + "&Y=" + y + "&Z=" + z + "&S=Map";
76 var url = this.url;
77 if (url instanceof Array) {
78 url = this.selectUrl(path, url);
79 }
80 return url + path;
81 },
82
83 CLASS_NAME: "ShineEnergy.Layer.TileImage"
84 });
85 ?

?經過如上簡單的進行擴展,就可以使用實現自定義的 WEB GIS 協議,服務器端只需要根據 LAYER/X/Y/Z參數可以確定唯一的一張瓦片圖片,返回給客戶端就可以了,同時也方便服務器端采用緩存優化處理;

在上面的例子中還有一個參數“S”,這個參數是備用參數,你也可以當做是一個展示如何增加自定義參數的例子來修改,例如增加控制客戶端的緩存行為的功能就可以根據時間產生不同的參數來實現;

最后補充一點,WMS協議在根據視野填充瓦片的時候,是根據左下角的地理坐標開始進行填充的,而ARCGIS等工具則是根據左上角進行行列號進行編排的,所以要想能夠和其他的圖層完全配準,那么必須根據DPI和比例尺計算出一個確定的視野高度,這個高度要求能夠正好在最大的視野情況下正好有整數個瓦片進行平鋪;

轉載于:https://www.cnblogs.com/WonKerr/archive/2010/01/22/OpenLayers_Layer_TileImage.html

總結

以上是生活随笔為你收集整理的扩展 OpenLayers.Layer.WMS 为自定义的瓦片浏览服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av有声小说一区二区三区 | av美国 | 亚洲av无码精品色午夜 | 19禁大尺度做爰无遮挡电影 | 欧美黄网站 | 日本免费a级片 | 蜜芽在线视频 | 中文字幕无线码一区 | 亚洲在线日韩 | 亚洲最新中文字幕 | 91蝌蚪91九色白浆 | 99在线视频精品 | 狠狠干网站 | 精品动漫av| 好看的中文字幕 | 中文字幕久热 | 先锋资源av网 | 亚洲国产成人精品一区二区三区 | 国产一区二区影院 | 亚洲综合视频网站 | 超碰在线图片 | www.激情.com| 中文在线字幕观看 | 99视频一区二区 | 婷婷色基地| 欧美亚洲色综久久精品国产 | 亚洲欧美另类视频 | www黄色在线观看 | 青青草国产精品视频 | 成年网站免费在线观看 | 九月婷婷综合 | 亲切的金子片段 | 亚洲欧美激情精品一区二区 | 久久精品中文字幕 | 日本黄色美女网站 | 国内毛片毛片 | 成人爱爱网站 | av免费片 | 欧美午夜激情影院 | 亚洲最大福利视频 | 日韩五码在线 | 国产精品久久久亚洲 | 欧美性动态图 | 极品人妻一区二区三区 | 国产精品精品久久久 | 免费se99se| 日韩亚洲在线 | 青青色在线视频 | 日韩精品一区二区在线视频 | 福利视频精品 | 亚洲一线在线观看 | 国产欧美日韩专区 | 岛国av一区二区三区 | xxxx在线视频 | 97人妻精品一区二区三区动漫 | 极品国产白皙 | 一级欧美一级日韩片 | 亚洲一区视频 | 国产一区网站 | 成人一区二区视频 | 99re6在线 | 国产又大又粗又硬 | 日本在线高清 | av专区在线 | 两根大肉大捧一进一出好爽视频 | 日韩中文一区二区 | 男人添女人下部高潮全视频 | 国产成人av无码精品 | 九色视频国产 | 欧美变态网站 | 色欲久久久天天天综合网精品 | 亚洲av无码专区在线电影 | 亚洲一级片免费 | 少妇视频网站 | 亚洲国产精品一区二区尤物区 | 中文字幕第10页 | 欧美一区高清 | 天天天天天天干 | 成人刺激视频 | 日韩黄色一区 | 日本一级理论片在线大全 | 国产乱人伦精品一区二区 | 免费成人小视频 | 亚州综合网 | 国产精品成人99一区无码 | 麻豆黄色一级片 | 亚洲av无码专区首页 | 探花视频在线观看 | 伊人成长网 | 毛茸茸成熟亚洲人 | 亚洲精品中文字幕在线播放 | 亚洲精品入口 | 中国女人特级毛片 | 日本一区二区三区免费在线观看 | 国产精品尤物 | 性欧美videos高清hd4k | 国产稀缺真实呦乱在线 | 热久久久久久 | 一本一道久久a久久精品综合 |