chaimin1400
路人甲
路人甲
  • 注册日期2003-10-11
  • 发帖数315
  • QQ
  • 铜币533枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2556回复:7

请问MO中是否可以创建新的图层?

楼主#
更多 发布于:2004-11-17 22:30
<P>      我知道MapX中是可以通过map1.layers.createlayer(),可以创建一个新的临时或永久图层,对于永久图层通过编辑后是可以以.tab等文件的形式存在的。  </P>
<P>      不知道MO中是否有?我只发现有map1.drawshape.</P>
喜欢0 评分0
forainwu
路人甲
路人甲
  • 注册日期2004-11-15
  • 发帖数20
  • QQ
  • 铜币192枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-11-18 09:55
<P>可以的,下面是一个增加line层的例子</P><P>Private Sub CmdAddShape_Click()
Dim gd As MapObjects2.GeoDataset
Dim dc As New MapObjects2.DataConnection
Dim name As String
Dim ShapeName As String
Dim tDesc As New MapObjects2.TableDesc</P><P>    '设置保存的shp文件名</P><P>    Me.DlgAddShape.Filter = "ESRI Shapefiles(*.shp)|*.shp"
    Me.DlgAddShape.DefaultExt = ".shp"
    Me.DlgAddShape.ShowSave
    If Len(Me.DlgAddShape.FileName) = 0 Then Exit Sub
    dc.Database = CurDir
    If Not dc.Connect Then Exit Sub
    name = Left(Me.DlgAddShape.FileTitle, Len(Me.DlgAddShape.FileTitle) - 4)
    '编辑字段</P><P>    tDesc.FieldCount = 4
    tDesc.FieldName(0) = "Name"
    tDesc.FieldName(1) = "Length"
    tDesc.FieldName(2) = "Start"
    tDesc.FieldName(3) = "End"
    
    tDesc.FieldType(0) = moString
    tDesc.FieldType(1) = moDouble
    tDesc.FieldType(2) = moDouble
    tDesc.FieldType(3) = moDouble
    
    tDesc.FieldLength(0) = 16
    tDesc.FieldPrecision(1) = 15
    tDesc.FieldPrecision(2) = 15
    tDesc.FieldPrecision(3) = 15
    
    tDesc.FieldScale(1) = 3
    tDesc.FieldScale(2) = 3
    tDesc.FieldScale(3) = 3
    
    
    Set gd = dc.AddGeoDataset(name, moLine, tDesc)
    If gd Is Nothing Then Exit Sub
    Dim lyr As New MapObjects2.MapLayer
    Set lyr.GeoDataset = gd
    FrmTest.MpTest.Layers.Add lyr
    FrmTest.MpTest.Refresh
    
    '保存数据  
    Dim lngCt As Long
    For lngCt = 1 To colLines.Count
        With lyr.Records
            .AddNew
            .Fields("Shape").Value = colLines(lngCt)
            .Fields("Name").Value = "Name" ; lngCt
            .Fields("Length").Value = colLines(lngCt).Length
            .Fields("Start").Value = colLines(lngCt)
            .Fields("End").Value = colLines(lngCt)
            .Update
        End With
    Next lngCt
    FrmTest.MpTest.Layers.Clear
    FrmTest.MpTest.Refresh
End Sub
</P>
举报 回复(0) 喜欢(0)     评分
forainwu
路人甲
路人甲
  • 注册日期2004-11-15
  • 发帖数20
  • QQ
  • 铜币192枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-11-18 09:57
其中colLines是一个collection,保存绘制的线
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
3楼#
发布于:2004-11-19 09:40
<P>支持楼上</P><P>已经给你评了精华</P><img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
bei-di
路人甲
路人甲
  • 注册日期2004-11-17
  • 发帖数67
  • QQ
  • 铜币247枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2004-11-21 09:13
<P>顶!!!!</P>
举报 回复(0) 喜欢(0)     评分
lixaokui
路人甲
路人甲
  • 注册日期2003-12-25
  • 发帖数768
  • QQ28796446
  • 铜币27枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2004-11-22 09:37
可以呀,MO帮助里有的
西门吹血,有了鼓风机,就不用吹啦!
举报 回复(0) 喜欢(0)     评分
kmxl
路人甲
路人甲
  • 注册日期2004-10-30
  • 发帖数94
  • QQ
  • 铜币294枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2004-11-22 20:25
<img src="images/post/smile/dvbbs/em01.gif" />
举报 回复(0) 喜欢(0)     评分
fa18
路人甲
路人甲
  • 注册日期2004-06-19
  • 发帖数30
  • QQ
  • 铜币222枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2004-11-23 09:41

<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
游客

返回顶部