python创建ArcGIS shape文件的实现
工作中遇到了一个需求,需要把一段json文本转化成ArcGISshape文件,想来想去,还是考虑用python来实现。
直接上代码
importshapefile importjson importos #shapefile="polygon.shp"; #jsonfile="社区网格.json"; defrun(): 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','C','40') file.field('url','C','40') file.field('photo','C','40') file.field('netGrnereNum','C','40') file.field('color','C','40') file.field('num','C','40') file.field('lat','C','40') file.field('lon','C','40') file.field('togriga','C','40') file.field('gudumji','C','40') file.field('memo','C','40') #写入数据 foritemindatalist: 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文件 defreadJSON(): 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') returndata; #print(data) #数据解析 defparsing(text): data=[] strs=text.split(","); forlineinstrs: 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创建ArcGISshape文件的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。