1. 程式人生 > >ArcGIS JS Map新增FeatureLayer

ArcGIS JS Map新增FeatureLayer

一:首先對於featureLayer的簡單載入與顯示貼上程式碼:

	var bounds = new Extent({
            "xmin":3549.3971895076734,
	    "ymin":7873.237334191428,
	    "xmax":5448.834060766321,
	    "ymax":8847.30752458048,
            "spatialReference":{"wkid":4214}
          });

          var map = new Map("map", {
            extent: bounds
          });
          
    var dynamicLayer=new ArcGISDynamicMapServiceLayer("http://localhost:6080/arcgis/rest/services//不動產/MapServer");
		map.addLayer(dynamicLayer,0);
		
    var featureLayer = new FeatureLayer("http://localhost:6080/arcgis/rest/services/%E4%B8%8D%E5%8A%A8%E4%BA%A7/MapServer/0",{
    	mode:FeatureLayer.MODE_SNAPSHOT,
    	outFields:["*"]
    });

		
		map.addLayer(featureLayer,1);
對於上述程式碼的講解:

1.新增featureLayer之前需要對於map中新增底圖,底圖可以是由esri提供的內建底圖,即設定map的basemap 屬性。

官方就basemap 設計了17種底圖,其中只有8種可以使用,分別是:

topo,streets,satellite,osm,oceans,hybirds,gray,national-geographic

至於具體的底圖描述的什麼地理情況及位置各位需要自己去具體瞭解

對於自己釋出的圖層服務,我採用的是自己的底圖,自己的底圖可以是一個圖層集,也可以是單個的圖層


2.新增featureLayer,構造方法種,兩種方法建立featureLayer,方法一是匯入json字元描述的feature,方法二是匯入連結圖層的url,以及對於featureLayer的option 設定

需要注意的是:

1.url指向的一定是可以編輯的單一圖層,是具有drawing info資訊的,並且顯示範圍存在與底圖之中

2.option設定基本的兩個屬性要有:mode,outFields.

1)mode

featureLayer具有三種mode,分別是:

快照模式mode_snapshot
選擇模式mode_selection
按需模式mode_ondemand

至於何種模式應用於何種情況下,需要自己詳細去了解,但一般情況下都採用快照模式

2)outFields

屬性outFields設定為*或者為其他指定返回的屬性,*代表返回所有

到此基本的顯示新增已經完成!

之後根據需要可以對不同的featureLayer設定不同的渲染

渲染類SimpleRenderer

根據layer的向量資料的型別,構造符號,此處以面符號舉例:

/*
		 * SimpleFillSymbol構造  style-outline-color
		 * SimpleLineSymbol構造  style-color-width
		 */
		var symbol=new SimpleFillSymbol(
			SimpleFillSymbol.STYLE_SOLID,
			new SimpleLineSymbol(SimpleLineSymbol.STYLE_DASHDOT,new Color([255,0,0]),2),
			new Color([255,255,0,0.25])
		);

進行簡單的渲染:
	//提供簡單的渲染
		var renderer=new SimpleRenderer(symbol);
		featureLayer.setRenderer(renderer);
		
		map.addLayer(featureLayer,1);
即可在圖層上進行簡單的新增