欢迎您来到GIS动力

加入收藏 免费注册 用户登陆 帮助中心
首页 新闻动态 技术专栏 银杏树下 学习考研 软件下载 求职招聘 许愿瓶 节日祝福 用户中心 精彩推荐 资源搜索 地图
专栏导航: AO开发 | SO开发 | ArcGIS桌面 | 超图桌面 | 开发语言 | 数据库 | WebGIS | 银杏文学 | 研究生考题 | FreeMap 谈天说地
   您现在位于: 首页技术专栏SuperMap应用与开发SO开发 → 正文
自定义编辑弧段
07-11-05 09:41:38 作者: 出处:超图

功能简介:

    示范supermap Objects 中在跟踪层上用三点画弧。点击"三点弧"按钮,在地图窗口中用鼠标进行点击,选定三点可以确定一个圆弧

数据来源:..\Data\World目录下的World.sdb和World.sdd两个文件

    所用SuperMap Objects 组件、对象的主要属性和方法:

控 件 及 对 象 属  性 方  法
SuperWorkspace Datasource OpenDatasource
SuperMap  TrackedGeometry   Layers  
soTrackingLayer    Addevents
soGeoArc   Makewith3p

功能实现:

  • 加入点对象过程:

 Dim objStyle As New soStyle
objStyle.PenColor = RGB(255, 0, 0)
objStyle.SymbolSize = 20
Dim objPoint As soGeoPoint
Select Case myPoints.Count
         Case 0
                     sm.TrackingLayer.ClearEvents
                    sm.TrackingLayer.AddEvent sm.TrackedGeometry, objStyle, "Point1"

                    Set objPoint = sm.TrackedGeometry
                    myPoints.Add2 objPoint.x, objPoint.y
                    sm.TrackingLayer.Refresh
          Case 1
                      Set objPoint = sm.TrackedGeometry
                     myPoints.Add2 objPoint.x, objPoint.y


'在trackinglayer上面显示第一点和第二点之间的连线
            
        sm.TrackingLayer.RemoveEvent "Line"
                    Dim objPoints1 As New soPoints
                    Dim objLine1 As New soGeoLine
                    objPoints1.Add myPoints.Item(1)
                     objPoints1.Add myPoints.Item(2)
                     objLine1.AddPart objPoints1
                     objStyle.PenStyle = 2
                     objStyle.PenColor = RGB(196, 196, 196)
                    sm.TrackingLayer.AddEvent objLine1, objStyle, "Line1"

                     objStyle.PenColor = RGB(255, 0, 0)
                     sm.TrackingLayer.AddEvent sm.TrackedGeometry, objStyle, "Point2"

                     sm.TrackingLayer.Refresh
            Case 2
                     Set objPoint = sm.TrackedGeometry
                    myPoints.Add2 objPoint.x, objPoint.y

                    Dim objArc As New soGeoArc
                     objArc.MakeWith3P myPoints.Item(1), myPoints.Item(2), myPoints.Item(3)
                     Set objArc.Style = objStyle
                     Dim objRSet As soRecordset
                     Set objRSet = sm.Layers(1).Dataset.Query("SmID<0", True)
                     objRSet.AddNew objArc
                     objRSet.Update

                    sm.TrackingLayer.ClearEvents
                    myPoints.RemoveAll

                   sm.Refresh
End Select

  • 三点画弧示意图


(本文已被浏览 次)
发布人:admin
推荐给好友:发送给好友
上篇新闻:
下篇新闻:
相关评论
发表我的评论
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  •   相关文章  
    无相关新闻

    关于我们 友情链接 ┋ 与我在线 ┋ 管理 ┋ TOP
    网站当前版本:GisPower CMS V3.0
    『GIS 动力』- http://www.gispower.org/
    联系我们:webmaster#gispower.org
    Copyright (c) 2003-2007 GisPOwer.Org. All Rights Reserved.

                   滇ICP备05006901号