python获取人口数据(500m网格)GeoQ智图api

1.注册智图GeoQ,获得api的key

2.分析url

url='http://api.geoq.cn/你的密钥/filterservice/regionfilter'

3.筛选条件

values={
       "codes":"310000",#城市代码
       "extent":[120.9327,30.6014,122.2339,31.8480],#查询空间范围
       "inSR":4326,#坐标系编号,默认3857,返回结果也是3857的
       "grid":"square",#网格形状
       "radius":500,#网格半径,可以更小
       "condition":{"pop":[0,1100000]}#筛选条件,照大的写
    }

 4.关键代码,本次使用python2,因为python3的requests库始终无法识别刷选条件最后一条condition的条件,该条件是GeoQ规定的条件。今个不使用神器pandas,就用自带的numpy来写,数值分别为经纬度,人口数,分组ID

req=urllib2.Request(url,values)
response = urllib2.urlopen(req)
t = response.read()
d = json.loads(t)
d1= d["result"]["features"]
x=[]
for i in range(len(d1)):
    for j in range(len(d1[i]["geometry"]["rings"][0])):
        x.append(你想要的数据)
a=np.array(x)
np.set_printoptions(precision=10)
np.savetxt("a.csv",a,delimiter=",")

5.使用ArcGIS处理结果,出图

13532492.93 3653382.137 6085 0
13531492.93 3653382.137 6085 0
13531492.93 3652382.137 6085 0
13532492.93 3652382.137 6085 0
13532492.93 3653382.137 6085 0
13532492.93 3653382.137 6085 0
13513492.93 3602382.137 145 1
13512492.93 3602382.137 145 1
13512492.93 3601382.137 145 1

猜你喜欢

转载自blog.csdn.net/qq_912917507/article/details/82586528