一:首先对于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);
即可在图层上进行简单的添加