<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久久婷婷免费国产综合精品| 日韩精品成人无码专区免费| 亚洲视频一区在线观看| 久久免费视频99| 亚洲黄色在线电影| 国产精品1024永久免费视频| 亚洲欧洲国产成人精品| 精品香蕉在线观看免费| 亚洲欧美日韩一区二区三区在线| 思思99re66在线精品免费观看| 亚洲乱码在线卡一卡二卡新区| 成人au免费视频影院| 亚洲欧洲无码一区二区三区| 国产免费变态视频网址网站| 人人爽人人爽人人片A免费| 中文字幕亚洲无线码| 免费看搞黄视频网站| 亚洲综合在线成人一区| 毛色毛片免费观看| 黄色一级毛片免费| 亚洲VA中文字幕无码一二三区| 99久久国产免费中文无字幕| 亚洲天堂2016| 免费国产成人高清视频网站| 成人网站免费大全日韩国产| 亚洲精品中文字幕无乱码| 麻豆成人精品国产免费| 本道天堂成在人线av无码免费 | 亚洲人成黄网在线观看| 青青青国产免费一夜七次郎| 国产精品高清免费网站| 久久精品亚洲精品国产色婷| 青草草在线视频永久免费| 成人免费观看男女羞羞视频| 久久亚洲sm情趣捆绑调教| 国内精品免费视频自在线| 中文字幕免费在线视频| 久久乐国产综合亚洲精品| 在线A亚洲老鸭窝天堂| 噼里啪啦免费观看高清动漫4|