arcgis如何把map改成featurelayer

arcgis如何把map改成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

//清除原有标注

m_GeoFeatureLayer.AnnotationProperties.Clear()

if (this.chkIsLabel.Checked == true)

{

//设置线标注位置

ILineLabelPosition pLineLabelPosition = new LineLabelPositionClass()

pLineLabelPosition.Above = false

pLineLabelPosition.AtEnd = false

pLineLabelPosition.Below = false

pLineLabelPosition.Horizontal = false

pLineLabelPosition.InLine = true

pLineLabelPosition.OnTop = true

pLineLabelPosition.Parallel = true

(1)你试试用AxTOCControl.Updata()

(2)//如果pRenderer是IUniqueValueRenderer

pRenderer.AddValue(pValue, pHeading, pSymbol)

pRenderer.set_Label(pValue, pLabel)//这里的pLabel可以就是符号旁边的标注

//如果pRenderer是ISimpleRenderer,看你的问题描述应该是这种类型的渲染

pRenderer.Label = pLabel;//这里的pLabel可以就是符号旁边的标注


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11390377.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存