<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>



    聯系博主          博客地圖
               

    Map Objects2.1 創建shape文件

    Posted on 2007-10-24 10:37 怎么羨慕天空的飛鳥 閱讀(1246) 評論(0)  編輯  收藏 所屬分類: WebGis
            近來一直修改一個由Map Objects2.1和vs2005 開發的一個桌面gis,設計到了doc文檔格式控制和動態生成點或面屬性的shape格式的文件。
            生成shape文件的思路是先通過AddGeoDataset方法生成文件,然后添加屬性數據,下面會在代碼中詳細解釋個參數的含義。
            
     //創建Isoseis
            private void createIsoseis(MapObjects2.DataConnection dcIso,SeismEClass.SeismEClass tmpse)
            
    {
                
                
    try
                
    {
                    
    //blw:::attribute parameters
                    
                    
    string iso_id = TM.ToString("yyyyMMddHHmmss");
                    
    string iso_name = "Isoseis" + iso_id;
                    
    double iso_longitude = Math.Round(PCenter.X,2);
                    
    double iso_latitude = Math.Round(PCenter.Y,2);
                    
    float iso_magnitude = magnitude;
                    
    string iso_location = poly_pos;
                    
    string iso_date = TM.Year + "-" + TM.Month + "-" + TM.Day;
                    
    string iso_depth = angle;

                    
    int j = 0
                    
    for (int i = 6; i < elli.Length;i++ )
                    
    {
                        
    if(elli[i]!=null)
                        
    {
                            j
    ++;
                        }

                    }

                    
                    
    //blw:::add shp files
                    MapObjects2.MapLayer temp_iso = getLayer(BasePath + "\\DataLayer\\SDE_Isoseis20070618165431.shp");
                    MapObjects2.Recordset temp_isorec 
    = temp_iso.Records;
                    MapObjects2.TableDesc temp_isodesc 
    = temp_isorec.TableDesc;
                    MapObjects2.GeoDataset temp_isogeo 
    = dcIso.AddGeoDataset(iso_name ,temp_iso.shapeType ,temp_isodesc , false ,false);
                    MapObjects2.MapLayer temp_iso1 
    = new MapObjects2.MapLayer();
                    temp_iso1.GeoDataset 
    = temp_isogeo;
                    MapObjects2.Recordset temp_isorec2
    =temp_iso1.Records;

                    
    //blw:::add attributes
                   

                  
                    
    for (int k = 0; k < j;k++ )
                    
    {
                        temp_isorec2.AddNew();
                        temp_isorec2.Fields.Item(
    "ID").Value = iso_id;
                        temp_isorec2.Fields.Item(
    "LATITUDE").Value = iso_latitude;
                        temp_isorec2.Fields.Item(
    "LONGITUDE").Value = iso_longitude;
                        temp_isorec2.Fields.Item(
    "MAGNITUDE").Value = iso_magnitude;
                        temp_isorec2.Fields.Item(
    "LOCATION").Value = iso_location;
                        temp_isorec2.Fields.Item(
    "DATE_").Value = iso_date;
                        temp_isorec2.Fields.Item(
    "DEPTH").Value = iso_depth;
                        temp_isorec2.Fields.Item(
    "Shape").Value = elli[k+6];
                        
    if (k == 0)
                        
    { temp_isorec2.Fields.Item("AREA_").Value = tmpse.AreaSQVI;
                        temp_isorec2.Fields.Item(
    "IDX").Value = "VI";
                        }

                        
    else if (k == 1
                        
    { temp_isorec2.Fields.Item("AREA_").Value = tmpse.AreaSQVII;
                           temp_isorec2.Fields.Item(
    "IDX").Value="VII";                    
                        }

                        
    else if (k == 2
                        
    { temp_isorec2.Fields.Item("AREA_").Value = tmpse.AreaSQVIII;
                        temp_isorec2.Fields.Item(
    "IDX").Value="VIII";
                        }

                        
    else if (k == 3
                        
    { temp_isorec2.Fields.Item("AREA_").Value = tmpse.AreaSQIX;
                        temp_isorec2.Fields.Item(
    "IDX").Value = "IX";
                        }


                        temp_isorec2.Update();
                    }

                    
                }

                
    catch(Exception ex)
                
    {
                    MessageBox.Show(ex.Message);
                }

            
            }

             下面是從網絡上搜集的一端比較精簡的代碼,很有代表性。
    private void createshapefile()

            
    {
                
    int i;
                MapObjects2.DataConnection mapdc
    =new MapObjects2.DataConnection();
                mapdc.Database 
    = "D:\\test";
                mapdc.Connect();

                MapObjects2.TableDesc mapdes 
    = new MapObjects2.TableDesc();
                mapdes.FieldCount 
    = 2;
                mapdes.set_FieldName(
    0,"Name");
                mapdes.set_FieldType(
    0, MapObjects2.FieldTypeConstants.moString);
                mapdes.set_FieldName(
    1,"Length");
                mapdes.set_FieldType(
    1, MapObjects2.FieldTypeConstants.moDouble);

                MapObjects2.GeoDataset mapgeo;
                
    object zm=false;
                mapgeo 
    = mapdc.AddGeoDataset("hi",   MapObjects2.ShapeTypeConstants.moShapeTypePolygon, mapdes,zm,zm);

                MapObjects2.MapLayer maplayer
    =new MapObjects2.MapLayer();
                maplayer.GeoDataset 
    = mapgeo;

                MapObjects2.Recordset maprs
    =maplayer.Records;

                
    for (i = 0; i < 10; i++)
                
    {
                    MapObjects2.Polygon mappolygon 
    = new MapObjects2.Polygon();
                    MapObjects2.Points mappoints 
    = new MapObjects2.Points();
                    MapObjects2.Point mappoint 
    = new MapObjects2.Point();

                    mappoint.X 
    = i*100;
                    mappoint.Y 
    = 0;
                    mappoints.Add(mappoint);
                    mappoint.X 
    = (i+1)*100;
                    mappoint.Y 
    = 0;
                    mappoints.Add(mappoint);
                    mappoint.X 
    = (i+1)*100;
                    mappoint.Y 
    = 100;
                    mappoints.Add(mappoint);
                    
                    mappolygon.Parts.Add(mappoints);

                    maprs.AddNew();
                    maprs.Fields.Item(
    "Shape").Value = mappolygon;
                    maprs.Fields.Item(
    "Name").Value = "hi";
                    maprs.Fields.Item(
    "Length").Value = 341.4;
                    maprs.Update();
                    mappolygon 
    = null;
                    mappoints 
    = null;
                    mappoint 
    = null;
                }

            }



        核心: 勇敢進取年輕的心

     

    Copyright © 怎么羨慕天空的飛鳥

    主站蜘蛛池模板: 国产精品入口麻豆免费观看| 一区二区三区免费精品视频| 99在线观看视频免费| 精品国产日韩亚洲一区| 免费无码国产在线观国内自拍中文字幕| 大陆一级毛片免费视频观看i| 亚洲乱码一二三四五六区| 18禁免费无码无遮挡不卡网站| 亚洲导航深夜福利| 日日麻批免费40分钟日本的| 亚洲综合色区中文字幕| 成人免费网站在线观看| 亚洲av无码专区亚洲av不卡| 免费va人成视频网站全| 一级做受视频免费是看美女| 亚洲乱色熟女一区二区三区丝袜| 国产亚洲精品免费视频播放| 97久久精品亚洲中文字幕无码| 可以免费看的卡一卡二| 亚洲乱码无人区卡1卡2卡3| 国产精品免费综合一区视频| 免费看美女午夜大片| 国产成A人亚洲精V品无码| 最近在线2018视频免费观看| 亚洲日韩精品国产一区二区三区 | 麻豆安全免费网址入口| 亚洲精品tv久久久久| a级毛片100部免费观看| 亚洲欧洲日产国码在线观看| 色吊丝永久在线观看最新免费| 黄色网页免费观看| 亚洲AV无码乱码国产麻豆| 久草视频免费在线| 日韩大片在线永久免费观看网站 | 亚洲日韩乱码中文无码蜜桃臀| 在线a毛片免费视频观看| 免费无码又爽又黄又刺激网站| 亚洲国产精品久久久久婷婷老年| 成人性生交大片免费看午夜a| 又黄又大的激情视频在线观看免费视频社区在线 | 久久精品免费大片国产大片 |