ArcGisTiledMapServiceLayer 和 ArcGisDynamicServiceLayer 在ArcGIS server for Java的區別

前言:

   我在使用ArcGIS for server 成功發佈地圖服務以後,使用ArcGIS server for Java 的API 中試圖調用該地圖服務,但是發現始終不能顯示,最後發現是API 調用的圖層名有問題。

首先成功發佈了地圖服務


注意,然後寫了一段很簡單的代碼,試圖調用自己發佈的服務

<html>
<head>
<script type="text/javascript" src="library\3.9\3.9/init.js"></script>


<script type="text/javascript">
	
	dojo.require("dijit.layout.BorderContainer");
    dojo.require("dijit.layout.ContentPane");
    dojo.require("esri.map");

   var MyMap
	function init()
	{
		 MyMap = new esri.Map("MyMapDiv");
		var layer = new esri.layers.ArcGISTiledMapServiceLayer("http://coi3ruhgnp8g6fg:8399/arcgis/rest/services/map/MapServer");
		MyMap.addLayer(layer);
	}
	dojo.addOnLoad(init);

</script>

</head>
<body>

<div id="MyMapDiv" dojotype="dijit.layout.ContentPane" region="center"></div>
</body>
</html>

但是發現並不能調用地圖服務,打開chrome的調試工具,發現N多的錯誤,大致意思就是說,找不到需要的切片地圖。


這個問題糾結了我兩天,沒有發現究竟是在哪裏出現了問題,一開始我認爲是我發佈的地圖有問題,但是打開rest/service/map發現地圖是可以使用的。


並且我們在ArcGIS JavaScript中查看發佈的地圖服務。

於是我將該網頁的源代碼copy下來,與我自己的代碼一句句比較,最後發現是因爲圖層名的問題。我發佈的是2D動態地圖服務,所以在API中調用的圖層應該是ArcGISDynamicMapServiceLayer。最後將此處修改以後,就可以成功調用地圖服務了。


學習心得:

 1、  ArcGIS server 發佈的地圖服務,我們必須按照正確的圖層名來調用

2、 如果你能夠在rest/server查看你發佈的地圖,說明地圖發佈是成功的。不能調用服務的原因並不在這。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章