阅读:2042回复:2
如何实现删除。SHP里面属性相同的点
<P>求助,有一张POINT 的。SHP地图</P>
<P>里面有些重复的POINT </P> <P>ID不一样</P> <P>但某个属性值是一样的比如山名</P> <P>在VB+MO里如何把这些重复的POINT 删除</P> <P>只留下一个</P> <P>谁知道的帮忙一下</P> <P>谢谢了! </P><img src="images/post/smile/dvbbs/em05.gif" /> |
|
1楼#
发布于:2006-12-18 15:22
<P>应该是先创一个数据集,把shp文件赋给它。</P>
<P>然后用sql语句查询相同的,比如where 山名=kk ,再用sql语句删除其中一个。</P> |
|
2楼#
发布于:2007-04-05 01:07
<P>'Xuewei,2003/6/13<BR>'删除特征示例;</P>
<P>Option Explicit</P> <P>Private Sub DrawLayer()<BR> Dim Layer As MapLayer<BR> Dim dc As New DataConnection<BR> <BR> On Error GoTo Err1<BR> dc.Database = App.Path + "\..\" + "Mexico"<BR> Set Layer = New MapLayer<BR> Set Layer.GeoDataset = dc.FindGeoDataset("states")<BR> Layer.Symbol.Color = moLimeGreen<BR> Map1.Layers.Add Layer<BR> <BR> Set Layer = New MapLayer<BR> Set Layer.GeoDataset = dc.FindGeoDataset("CITIES1")<BR> Layer.Symbol.Color = moRed<BR> Map1.Layers.Add Layer<BR> <BR> 'MsgBox "数据连接成功", vbInformation, "MO示例"<BR> Exit Sub<BR> <BR>Err1:<BR> If dc.ConnectError = 0 Then<BR> MsgBox "没找到图层", vbInformation, "MO示例"<BR> Else<BR> MsgBox ConnectErrorMsg(dc.ConnectError), vbInformation, "MO示例"<BR> End If<BR> End<BR>End Sub</P> <P>Private Sub Form_Load()<BR> DrawLayer '加载墨西哥地图的States和Cities图层;<BR>End Sub</P> <P>Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)<BR> Dim P1 As MapObjects2.Point<BR> Const D1 = 0.3<BR> Dim Recset As MapObjects2.Recordset<BR> Dim Ans As Variant<BR> <BR> Set P1 = Map1.ToMapPoint(X, Y)<BR> '距离查找;<BR> Set Recset = Map1.Layers(0).SearchByDistance(P1, D1, "")<BR> If Not Recset.EOF Then<BR> Map1.FlashShape Recset.Fields("shape").Value, 3<BR> Ans = MsgBox("要删除这个特征?", vbYesNo, "MO示例")<BR> If Ans = vbYes Then<BR> If Recset.Updatable Then<BR> Recset.Edit<BR> Recset.Delete<BR> Recset.MoveNext<BR> Recset.StopEditing<BR> Map1.Refresh<BR> Else<BR> MsgBox "记录集不可修改。"<BR> End If<BR> End If<BR> Else<BR> MsgBox "没有点击特征。"<BR> End If<BR>End Sub<BR></P> |
|