• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            socketref,再見!高德

            https://github.com/adoggie

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(54)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜


            OGR1.6 above
            python2.4 above

            只需要定義fields,roads數(shù)據(jù)調(diào)用serial_shpdata_road()即可一次輸出到shp文件
            不適合大批量坐標(biāo)一次生成shp
            ogr的問題在于python代碼中初始化layer之后傳遞到其他函數(shù)使用將會導(dǎo)致莫名錯誤,應(yīng)該是個bug

             1    #bin.zhang@sw2us.com
             2     fields=[
             3         {'name':'roadname','type':FIELD_STRING,'width':30}
             4     ]
             5     roads=[
             6         {
             7             'geom':[(121.1,31.1),(121.101,31.102),(121.101,31.2)],
             8             'attrs':('xscott.test',)
             9         }
            10     ]
            11     serial_shpdata_road('d:/temp3/aa.shp',fields,roads)
            12 '''
            13 def serial_shpdata_road(file,fields,roads):
            14     '''
            15         fields: [{name,type,width},]
            16         roads - [{'geom':[(x,y),..],'wkt':'','attrs':[name,type,len,]},..]
            17     '''
            18     layer = None
            19     
            20     if os.path.exists(file):
            21         os.remove(file)
            22         
            23     makePrjFile(file)
            24     ds = driver.CreateDataSource(file)
            25     layer = ds.CreateLayer("road",geom_type=ogr.wkbMultiLineString)
            26     for f in fields:
            27         fld = ogr.FieldDefn(f['name'],f['type'])
            28         
            29         if f['type'] == FIELD_STRING :
            30             w = 30
            31             if f.has_key('width'):
            32                 w = f['width']
            33             fld.SetWidth(w)
            34         layer.CreateField(fld)
            35     ftrdfn = layer.GetLayerDefn()
            36     
            37     for r in roads:
            38         g = None
            39         if r.has_key('wkt'):
            40             g = ogr.CreateGeometryFromWkt(r['wkt'])
            41         if r.has_key('geom'):
            42             pts = r['geom']
            43             pts = map(lambda pt: '%s %s'%(pt[0],pt[1]),pts)
            44             txt = string.join(pts,',')
            45             wkt = "MULTILINESTRING((%s))"%txt
            46             g = ogr.CreateGeometryFromWkt(wkt)
            47         
            48         ftr = ogr.Feature(ftrdfn)
            49         ftr.SetGeometry(g)
            50         for n in range(len(r['attrs'])):
            51             at = r['attrs'][n]
            52             ftr.SetField(n,at)
            53         layer.CreateFeature(ftr)
            54     layer.SyncToDisk()
            55    
            posted on 2012-03-02 01:04 放屁阿狗 閱讀(1509) 評論(1)  編輯 收藏 引用 所屬分類: perl/python/php/lua/tcl

            Feedback

            # re: Ogr::簡化LineString輸出到shp文件 2012-03-02 09:00 tb
            寫得不錯   回復(fù)  更多評論
              

            国产精品一区二区久久精品涩爱| 国产精品久久国产精品99盘| 日韩久久久久中文字幕人妻| 精品九九久久国内精品| 久久香蕉国产线看观看99 | 亚洲国产成人精品91久久久| 蜜桃麻豆WWW久久囤产精品| 99精品国产在热久久| 久久精品免费全国观看国产| 国内精品久久久久伊人av| 久久人人爽人人澡人人高潮AV | 久久精品无码一区二区无码| 久久久久久久久久免免费精品| 亚洲精品蜜桃久久久久久| 久久精品成人免费国产片小草| 中文字幕热久久久久久久| 久久久久国产一级毛片高清板 | 亚洲中文字幕无码一久久区| 久久se精品一区二区影院| 国产精品久久毛片完整版| 久久精品免费一区二区| 亚洲?V乱码久久精品蜜桃| 丁香久久婷婷国产午夜视频| 国产精品久久毛片完整版| 久久久久亚洲精品天堂| 午夜精品久久久久久中宇| 久久亚洲日韩看片无码| 色狠狠久久综合网| 久久婷婷五月综合成人D啪| 91久久精品电影| 久久成人18免费网站| 久久国产视屏| 欧美粉嫩小泬久久久久久久| 久久久久久亚洲精品无码| 国产精品嫩草影院久久| 久久99精品九九九久久婷婷| 久久精品成人| 波多野结衣久久| 久久综合狠狠综合久久综合88 | 伊人久久久AV老熟妇色| 少妇内射兰兰久久|