里以湖北省荊州市為例說明如何用ArcGIS API發布離線谷歌衛星地圖。
在萬能地圖下載器中選擇湖北省荊州市的行政區劃,然后點擊“下載”按鈕新建下載任務。
在新建任務對話框中選擇需要下載的級別,一般是從當前行政區劃顯示的級別開始選擇(這里是第9級),一直接選擇到第19級(國內19級清晰度效果最佳,19級以上基于19級放大),由于數據量非常大,這里只為了說明如何用ArcGIS API發布離線衛星地圖的方法,因此這里以選擇到第14級為例。
在“新建任務”對話框中,點擊“導出設置”可以設置相關導出參數,我們可以選擇導出大圖、導出瓦片和導出離線包等三種方式。由于這里我們用ArcGIS API發布離線衛星地圖需要用的是瓦片格式,因此這里選擇“導出瓦片”選項。
新建任務詳細參數說明,請參閱:
新建地圖下載任務參數說明
在“導出瓦片”選項的相關參數中,我們選擇瓦片格式為“TMS瓦片”、文件格式為PNG,坐標坐標投影為墨認的“WGS84 Web 墨卡托投影”,選擇“邊界范圍裁剪”,背景顏色為“透明”背景。
導出瓦片詳細參數說明,請參閱:
導出瓦片參數說明
分別點擊“確定”按鈕開始下載任務,下載并自動導出后可以看到導出的瓦片目錄為8到13級而不是我們選擇的9到14級,這是因為軟件中的級別編號是從1開始,而標準的TMS瓦片命名規則都是從0開始,因此該情況屬于正常情況,瓦片的行列號編號規則同理。
在ArcGIS API發布離線衛星地圖的源碼示例中,將“arcgis_js_v321_api.zip”解壓到當前文件夾。
打開解壓后文件夾中的“install.html”可以查看ArcGIS API的安裝布署說明。
ArcGIS API可以在Windows和Linux系統中安裝布署,這里我們以Windows為例,點擊“Windows”查看布署方法。
從ArcGIS API的安裝布署說明中可以看到,需要將“\arcgis_js_api\library”文件復制到IIS默認站點下,該操作的目的是要將ArcGIS API放在Web站點中,說明它需要Web服務器支持。
另外,文檔中說明了ArcGIS API有兩個版本,一個是普通版,一個是精簡版。
現在,我們需要布署一個Web服務器,用于布署ArcGIS API源碼。
一般來講,常用的Web服務器軟件工具有IIS、Apache和Tomcat,這里我們以Windows自帶的IIS為例。
如何開啟IIS 功能,請參閱:
如何在Win10中開啟IIS功能
IIS功能開啟后,在電腦圖標的右鍵菜單中選擇“管理”菜單項。
在“計算機管理”的功能樹列表中點擊“服務和應用程序\Internet Information”項,然后在“網站”節點的右鍵菜單中選擇“添加網站”項。
在顯示的“添加網站”對話框中,可以為當前站點指定名稱(這里為“WebGIS”),將物理路徑設置為ArcGIS API解壓后的目錄,這里將端口號設置為“8080”,這樣不會與訪問Web頁面的80端口沖突,如果沒有布署過80端口的網站則不會有沖突。
點擊新建的Web站點“WebGIS”后,再點擊“內容視圖”可以查看站點文件。
Web站點布署好之后,我們再回過頭來看ArcGIS API的布署說明文檔,文檔中分別說明了普通版和精簡版中都需要對相關文件作修改編輯,這里我們以普通版本為例。
根據ArcGIS API布署說明文檔中的說明,在指定的源碼路徑中找到init.js文件,并在右鍵菜單中選擇用記事本打開它。
按文檔中的說明,將“https:/[HOSTNAME_AND_PATH_TO_JSAP]dojo”字符串修改為“https://<myserver>/arcgis_js_api/library/3.21/3.21/dojo”字符串。
其中的<myserver>表示服務器地址,由于我們這里是以在本機上布署為例,因此它要相應的改為本機地址,即127.0.0.1或localhost,同時需要加上端口號,即最后的替換結果為:
http://127.0.0.1:8080/arcgis_js_api/library/3.21/3.21/dojo
注意:文檔中的Web地址頭為“https”,如果你的服務器不支持安全加密訪問,只需要將地址頭改為“http”即可。
編輯修改成完成后,需要測試init.js文件是否可以通過Web地址正常訪問。
在瀏覽器中如果打開以下地址顯示init.js文件內容,說明布署正確。
http://127.0.0.1:8080/arcgis_js_api/library/3.21/3.21/init.js
ArcGIS API安裝布署完成后,將ArcGIS API離線地圖發布源碼示例中的“extlayers”文件夾復制到“arcgis_js_v321_api\arcgis_js_api\library.21.21”路徑下。
將下載的地圖瓦片目錄復制到ArcGIS API發布離線地圖的源碼示例中。
用專業的WebGIS開發工具Visual Studio Code打開“arcgis_js_v321_api\arcgis_js_api\library.21.21\extlayers\gaodelayer.js”文件,將第133行中的“gaodeTiles”字符串修改為當前的瓦片目錄名稱,即“荊州市谷歌地圖TMS瓦片”。
Visual Studio Code下載安裝教程,請參閱:
如何安裝WebGIS開發工具Visual Studio Code
雙擊ArcGIS API離線地圖發布源碼中的“map.html”文件,可以在瀏覽器中打開ArcGIS API發布的離線地圖結果。
在瀏覽器中打開離線地圖發布結果如下圖所示。
在該源碼示例中,除了能離線顯示谷歌衛星地圖外,還包括了基本的地圖標注等相關GIS功能。
ArcGIS API for JavaScript在線實例請參閱:
http://api.rivermap.cn/ArcGIS/map.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no" />
<title>Intro to MapView - Create a 2D map</title>
<!--<script src="/js/jsapi_vsdoc10_v38.js"></script>-->
<link rel="stylesheet" type="text/css" href="http://localhost:8080/epf-arcgis/3.16/esri/css/esri.css" />
<script type="application/javascript" src="http://localhost:8080/epf-arcgis/3.16/init.js"></script>
</head>
<body class="tundra">
<div id="mapDiv" style="width: 900px;height: 600px;border: 1px solid #000" >
</div>
<input type="button" onclick="setLayer()" value="篩選" />
<script type="application/javascript" >
var dyLayer;
require(["esri/map", "esri/layers/ArcGISDynamicMapServiceLayer"], function(Map,ArcGISDynamicMapServiceLayer) {
var map = new Map("mapDiv");
dyLayer =ArcGISDynamicMapServiceLayer("http://localhost:6080/arcgis/rest/services/EPF/居民收入空間分布/MapServer");
map.addLayer(dyLayer);
});
function setLayer(){
var layerDefinitions = [];
//layerDefinitions[0] = "GiZScore < -2.58";
layerDefinitions[0] = "GiZScore > 2.58";
dyLayer.setLayerDefinitions(layerDefinitions);
alert("ok");
}
</script>
</body>
</html>
1
估計是ESRI官方都看不下去我們用個天地圖這么費勁,所以官方于4月27日在ArcGIS Online上更新了四個地圖,真是太棒了。這次的升級可加載天地圖矢量切片,告別了放大就模糊的困擾!
02
1、首先在瀏覽器輸入以下網址:
https://www.arcgisonline.cn/arcgis/home/search.html?t=content&q=tags%3A%22%E5%A4%A9%E5%9C%B0%E5%9B%BE%22&start=1&num=20
2、點擊上圖中想要加載的地圖
這里我選擇的是第一欄:【切片服務】天地圖-地形(含注記)(球面墨卡托投影)
3、下載item.pkinfo文件
選擇下拉框在arcmap中打開,就直接進行文件下載。(示例:各個類型底圖下載方法一致)
4、打開item.pkinfo文件
鼠標雙擊已經下載的item.pkinfo文件,arcmap就會自動打開文件,(我個人使用的版本為10.2.2)就會看到如下圖所示的情況,內容列表已經添加了圖層,但是交互窗口一片空白。
5、圖層顯現
首先右鍵單擊底圖,彈出對話框,選擇取消分組,彈出如下圖一片黑的底圖,這是標注顯示有問題,需要進行調整。
6、圖層屬性調整
右鍵單擊地形注記圖層,彈出對話框,單擊屬性,彈出圖層屬性對話框,選擇高級選項卡,將圖層透明度調整成為1%,應用-確定后就能正常顯示底圖啦!
戴爾基公眾號
微信號 : dailiang1106
******************
點我打印二維碼
*請認真填寫需求信息,我們會在24小時內與您取得聯系。