阅读:2104回复:2
如何对选择的要素进行属性修改?
<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> |
|
|
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" />
|
|
|
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> |
|
|