lyw505
卧底
卧底
  • 注册日期2004-12-04
  • 发帖数205
  • QQ52498211
  • 铜币3枚
  • 威望0点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
阅读:1958回复:2

如何对选择的要素进行属性修改?

楼主#
更多 发布于:2007-08-14 22:48
<P>如题,我想用AE实现选择一个要素,然后对该要素进行属性修改!该如何进行呢?</P>
<P>下面的代码是实现选择要素的,但是生成时没有反映,请您们帮忙看看为什么?(通过局部修改在VBA中是实现了的,但在AE中却没反应)</P>
<P>Private Sub AxMapControl1_OnMouseDown(ByVal sender As Object, ByVal e As ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent) Handles AxMapControl1.OnMouseDown</P>
<P><BR>        Dim ppmap As IMap<BR>        ppmap = AxMapControl1.Map</P>
<P><BR>        Dim ppoint As IPoint<BR>        ppoint = New Point<BR>        ppoint.PutCoords(e.mapX, e.mapY)<BR>        Dim x As Integer = e.mapX<BR>        Dim y As Integer = e.mapY<BR>        Dim pixeltol As Integer<BR>        pixeltol = 8<BR>        Dim r As tagRECT<BR>        <BR>        r.left = x - pixeltol <BR>        r.top = y - pixeltol <BR>        r.right = x + pixeltol <BR>        r.bottom = y + pixeltol</P>
<P>       <BR>        Dim pEnvelope As IEnvelope<BR>        pEnvelope = New Envelope<BR>        Dim pActiveView As IActiveView<BR>        pActiveView = ppmap<BR>        Dim pDisplayTrans As IDisplayTransformation<BR>        pDisplayTrans = pActiveView.ScreenDisplay.DisplayTransformation<BR>        pDisplayTrans.TransformRect(pEnvelope, r, 5)</P>
<P>        pEnvelope.SpatialReference = ppmap.SpatialReference</P>
<P>        Dim pSelectionEnvironment As ISelectionEnvironment<BR>        pSelectionEnvironment = New SelectionEnvironment<BR>        pSelectionEnvironment.CombinationMethod = esriSelectionResultEnum.esriSelectionResultNew<BR>        ppmap.SelectByShape(pEnvelope, pSelectionEnvironment, False)<BR>        pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, Nothing, Nothing)</P>
<P>    End Sub</P>
喜欢0 评分0
Y.W.Lau qq:52498211 email:jxgis@126.com msn:lyw505@hotmail.com popo:jxgisrd@163.com
lyw505
卧底
卧底
  • 注册日期2004-12-04
  • 发帖数205
  • QQ52498211
  • 铜币3枚
  • 威望0点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
1楼#
发布于:2007-08-15 23:23
已经实现了!哈哈<img src="images/post/smile/dvbbs/em03.gif" /><img src="images/post/smile/dvbbs/em05.gif" /><img src="images/post/smile/dvbbs/em07.gif" /><img src="images/post/smile/dvbbs/em06.gif" /><img src="images/post/smile/dvbbs/em08.gif" /><img src="images/post/smile/dvbbs/em04.gif" /><img src="images/post/smile/dvbbs/em04.gif" /><img src="images/post/smile/dvbbs/em03.gif" />
Y.W.Lau qq:52498211 email:jxgis@126.com msn:lyw505@hotmail.com popo:jxgisrd@163.com
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于:2007-08-21 13:40
<TABLE width="100%">

<TR>
<TD class=subtitle colSpan=6>内容摘要</TD></TR>
<TR>
<TD class=txt colSpan=6>一般情况下,一次选择的结果是一个选择集,当得到下一次的选择结果的时候,前面一次的选择集就自动消失。但有时候选择的操作要分好几次来完成,并且要把这好几次的选择结果进行累加,而且这个过程中可能涉及到不同的层的数据。这种需求下我们可以使用ISelectionEnviroment这个接口来设置选择模式。</TD></TR>
<TR>
<TD class=subtitle colSpan=6>过程描述</TD></TR>
<TR>
<TD class=txt colSpan=6>Dim pSelEnv As ISelectionEnvironment<BR>Set pSelEnv = New SelectionEnvironment<BR>pSelEnv.CombinationMethod = esriSelectionResultEnum.esriSelectionResultAdd<BR>以上这三句代码您可以放在您要做选择操作之前,这个时候您可以使用IMap的selectFeature,SelectByShape等方法进行选择的操作,操作的结果将会一直进行累加。<BR>最后您可以通过IMap的FeatureSelection来得到选择结果。</TD></TR></TABLE>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部