zdmaster
路人甲
路人甲
  • 注册日期2004-06-04
  • 发帖数37
  • QQ
  • 铜币192枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2704回复:9

小弟初学mo,问几个很菜的问题

楼主#
更多 发布于:2004-06-14 09:44
我用vb+mo.新建了个图层,然后画了些点保存为shape文件,那我怎么能选择点,然后删除掉这些点了?
喜欢0 评分0
gisboy
卧底
卧底
  • 注册日期2003-07-26
  • 发帖数162
  • QQ
  • 铜币900枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-07-09 23:13
<P>删除点、线、对象</P><P>private Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Dim P1 As MapObjects2.Point
  Const D1 = 3
  Dim recset As MapObjects2.Recordset
  Dim ans As Variant
  
  Set P1 = Map1.ToMapPoint(X, Y)
   '&frac34;à&Agrave;&euml;&sup2;é&Otilde;&Ograve;&pound;&raquo;
  Set recset = Map1.Layers(0).SearchByDistance(P1, D1, "")  '&Eacute;&frac34;&sup3;&yacute;0&sup2;&atilde;&micro;&Auml;&para;&Ocirc;&Iuml;ó
  If Not recset.EOF Then
    Map1.FlashShape recset.Fields("shape").Value, 3
    ans = MsgBox("&Ograve;&ordf;&Eacute;&frac34;&sup3;&yacute;&Otilde;&acirc;&cedil;&ouml;&Igrave;&Oslash;&Otilde;÷?x=" ; X ; "y=" ; Y, vbYesNo, "MO&Ecirc;&frac34;&Agrave;&yacute;")
    If ans = vbYes Then
      If recset.Updatable Then
        recset.Edit
        recset.StartTransaction
                recset.Delete
        recset.MoveNext
        recset.StopEditing
        Map1.Refresh
      Else
        MsgBox "&frac14;&Ccedil;&Acirc;&frac14;&frac14;&macr;&sup2;&raquo;&iquest;&Eacute;&ETH;&THORN;&cedil;&Auml;&iexcl;&pound;"
      End If
    End If
  Else
    MsgBox "&Atilde;&raquo;&Oacute;&ETH;&micro;&atilde;&raquo;÷&Igrave;&Oslash;&Otilde;÷&iexcl;&pound;x=" ; X ; "y=" ; Y
  End If
End Sub</P>
Our doing are not really as important as we think. Our successes and failures didn't matter after all.
举报 回复(0) 喜欢(0)     评分
ryx32
路人甲
路人甲
  • 注册日期2003-08-05
  • 发帖数457
  • QQ
  • 铜币4046枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-07-09 13:35
d
举报 回复(0) 喜欢(0)     评分
hechulin
路人甲
路人甲
  • 注册日期2004-06-21
  • 发帖数151
  • QQ
  • 铜币337枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-06-21 21:13
<img src="images/post/smile/dvbbs/em08.gif" />
举报 回复(0) 喜欢(0)     评分
tui312
路人甲
路人甲
  • 注册日期2004-06-12
  • 发帖数25
  • QQ
  • 铜币257枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2004-06-14 21:22
<P>我刚刚仔细看了一下,你的那个方法是通过在地图上点击来增加地物,</P><P>但是我要通过在TRAckinglayer上画点、线、面实现保存,我能实现保存多边形。</P><P>可是点、线、矩形、圆怎么办?我不明白!</P>
举报 回复(0) 喜欢(0)     评分
tui312
路人甲
路人甲
  • 注册日期2004-06-12
  • 发帖数25
  • QQ
  • 铜币257枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2004-06-14 19:30
<P>我待会做一下!</P><P>我现在对mo就算是熟悉不少函数的用法!也真想有个具体的项目作!</P><P>前些天自己用它做了个类似的Cad软件!</P><P>大家可以交流一下嘛!</P>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
6楼#
发布于:2004-06-14 16:40
另存图层就ok了,不过需要判断图层类型
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
zdmaster
路人甲
路人甲
  • 注册日期2004-06-04
  • 发帖数37
  • QQ
  • 铜币192枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2004-06-14 14:29
<P>tui312:</P><P>我想问你一个问题啊-------你怎么实现保存点层的阿?能告诉我吗?我只能保存多边形文件。</P><P>这个问题我前天也跟你一样,很好解决.</P><P>就是你这样定义</P><P>Dim polyTracked As MapObjects2.Point</P><P>Private Sub DrawPoint(x As Single, y As Single)
Dim id As String, manNo As String, manName As String
Dim sql As String
Dim R As String
'Draw a new point...
        Set polyTracked = Map1.ToMapPoint(x, y) '<FONT color=#c43ca9>得到屏幕上的点,这个好像就是你不能得到点图的原因</FONT>
        '...then add the new polygon to the shapefile.
        recsNew.AddNew
        Set recsNew.Fields("Shape").Value = polyTracked
        recsNew.Fields("ID").Value = reno </P><P>   recsNew.Fields("no").Value = manNo
        recsNew.Fields("name").Value = manName
        recno = recno + 1
        recsNew.Update
        recsNew.StopEditing
        Map1.Refresh
        </P><P>End Sub
</P>
举报 回复(0) 喜欢(0)     评分
tui312
路人甲
路人甲
  • 注册日期2004-06-12
  • 发帖数25
  • QQ
  • 铜币257枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2004-06-14 13:58
<P>先判断这个图层是不是点层?如果是点层,就用到以下代码! </P><P> Set Recset = Map1.Layers(legend1.getActiveLayer).SearchByDistance(pdel, D1, "")——得到选择的点,          legend1.getActiveLayer是选择活动图层。
  If Not Recset.EOF Then
    Map1.FlashShape Recset.Fields("shape").Value, 3-------------闪动
    Ans = MsgBox("要删除这个特征?", vbYesNo, "MO示例")
    If Ans = vbYes Then
      If Recset.Updatable Then '特征是否允许被删除
        Recset.edit------------------对数据库表的操作,这是固定格式。
        Recset.Delete
        Recset.MoveNext
        Recset.StopEditing
        Map1.Refresh
      Else
        MsgBox "记录集不可修改。"
      End If
    End If
  Else
    MsgBox "没有点击特征。"
  End If</P><P>我想问你一个问题啊-------你怎么实现保存点层的阿?能告诉我吗?我只能保存多边形文件。</P><P>我的MSN是<a href="mailttui312@21cn.com" target="_blank" >tui312@21cn.com</A>.有空联系!我很想知道那个问题,</P>
举报 回复(0) 喜欢(0)     评分
zdmaster
路人甲
路人甲
  • 注册日期2004-06-04
  • 发帖数37
  • QQ
  • 铜币192枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2004-06-14 10:14
有人关心下吗?
举报 回复(0) 喜欢(0)     评分
游客

返回顶部