python建立ArcGIS shape檔案的實現
阿新 • • 發佈:2020-01-09
工作中遇到了一個需求,需要把一段json文字轉化成ArcGIS shape檔案,想來想去,還是考慮用python來實現。
直接上程式碼
import shapefile import json import os #shapefile="polygon.shp"; #jsonfile="社群網格.json"; def run(): data=readJSON() datalist=data["list"] file=shapefile.Writer(target="社群網格.shp",shapeType=shapefile.POLYGON,autoBalance=True); #設定屬性資訊 file.field('nere','C','40') #'SECOND_FLD'為欄位名稱,C代表資料型別為字串,長度為40 file.field('fileName','40') file.field('url','40') file.field('photo','40') file.field('netGrnereNum','40') file.field('color','40') file.field('num','40') file.field('lat','40') file.field('lon','40') file.field('togriga','40') file.field('gudumji','40') file.field('memo','40') #寫入資料 for item in datalist: nere=item["nere"] fileName = item["fileName"] url = item["url"] photo = item["photo"] netGrnereNum = item["netGrnereNum"] color = item["color"] num = item["num"] lat = item["lat"] lon = item["lon"] togriga = item["togriga"] gudumji = item["gudumji"] memo = item["memo"] polysStr = item["hotinfo"] polys=parsing(polysStr); #寫入 file.poly(polys=polys) file.record(nere,fileName,url,photo,netGrnereNum,color,num,lat,lon,togriga,gudumji,memo) print("-------寫入成功---------") #儲存檔案 file.save("社群網格.shp") #讀取json檔案 def readJSON(): f = open("社群網格.json","r",encoding="utf-8") # 設定檔案物件 _str = f.read() # 將txt檔案的所有內容讀入到字串str中 f.close() # 關閉檔案 print("讀取json完成") if _str.startswith(u'\ufeff'): _str = _str.encode('utf8')[3:].decode('utf8') data = json.loads(_str,encoding='utf8') return data; #print(data) #資料解析 def parsing(text): data=[] strs=text.split(","); for line in strs: xy=line.split(" "); x_y=[float(xy[0]),float(xy[1])] data.append(x_y) _data=[]; _data.append(data) return _data; if __name__=="__main__": print("執行程式!!!"); run(); print("程式結束!!!");
以上這篇python建立ArcGIS shape檔案的實現就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。