第一篇博客,簡單的開個頭吧。但願本身能堅持記錄。通常什麼狀況什麼人須要這樣的需求呢,伐木的光頭強大哥說咱們在深山老林裏,沒網的啊,地圖就手機本地duang的加載一下吧。那麼Server啊就要丟掉丟掉。丟掉手錶丟掉外套,丟掉揹包再丟掉嘮叨,咳咳,跑題了。來看看具體步驟吧,很是簡單但詳細。javascript
1. 製做切片的數據基本信息以下:css
圖層數據信息:html
地理座標系: GCS_WGS_1984java
基準面: D_WGS_1984緩存
本初子午線: Greenwich測試
角度單位: Degreegoogle
數據框信息:spa
GCS_WGS_1984調試
WKID: 4326 權限: EPSGcode
2.設置的緩存方式以下:(緩存切片方案ArcGIS online/Bing/google),緩存級別10-16;高級設置:切片原點默認,存儲格式鬆散型EXPLODED。
3.發佈切片服務前先分析一下結果:(無錯誤)
4.發佈完成後能夠登陸ArcGIS server查看緩存的相關信息或者在本地的緩存文件夾arcgiscache中查看緩存的信息:
5.緩存好的本地文件,文件命名方式是16進制:
6.測試代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ol加載ArcGIS本地切片</title> <link rel="stylesheet" href="ol.css"> <script src="ol.js"></script> </head> <body> <div id="map"></div> <script type="text/javascript"> // 設置尋甸縣爲地圖中心,此處進行座標轉換, 把EPSG:4326的座標,轉換爲EPSG:3857座標,由於ol默認使用的是EPSG:3857座標 pos = ol.proj.transform([103.25, 25.56], 'EPSG:4326', 'EPSG:3857'); //alert(pos); //建立地圖 var map = new ol.Map({ view: new ol.View({ center:pos, zoom: 10 }), //添加open street map圖層 layers:[ new ol.layer.Tile({ source:new ol.source.OSM() }) ], //將地圖添加到的map容器中 target: 'map' }); //給8位字符串文件名補0 function zeroPad(num, len, radix) { var str = num.toString(radix || 10); while (str.length < len) { str = "0" + str; } return str; } // ol.source.XYZ添加瓦片地圖的層 var tileLayer = new ol.layer.Tile({ source: new ol.source.XYZ({ tileUrlFunction: function (tileCoord) { //alert(tileCoord[0] + " X= " + tileCoord[1] + " Y= " + tileCoord[2]); var x = 'C' + zeroPad(tileCoord[1], 8, 16); var y = 'R' + zeroPad(-tileCoord[2] - 1, 8, 16); var z = 'L' + zeroPad(tileCoord[0], 2, 10); return '_alllayers/' + z + '/' + y + '/' + x + '.png'; }, projection: 'EPSG:3857' }) }); map.addLayer(tileLayer); </script> </body> </html>
7.調試的結果: