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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。