-
Notifications
You must be signed in to change notification settings - Fork 0
GeoCode
wzs edited this page Aug 27, 2018
·
1 revision
- 通过高德地图的
http://restapi.amap.com/v3/geocode/geo接口获取省市等地区的详细信息. - 示例:
http://restapi.amap.com/v3/geocode/geo?key=7bb32daa7da4c202280232aeb5606cf9&s=rsv3&address=中关村获取中关村详细信息
- 从文件中读取要查询的地点列表
- 调用高德接口,获取查询到的地点的详细信息
- 解析, 然后保存到Mongo.
- 编码问题(demo使用的 Python2.7)
import urllib2
import json
from pymongo import MongoClient
from urllib import quote_plus
uri = "mongodb://%s:%s@%s" % (quote_plus('root'), quote_plus('aa'), 'aa')
dbClient = MongoClient(uri)
dbname = "national"
db = dbClient[dbname]
coll_point = db["pointInfo"]
def transAmap(point):
cityInfoAmap = {}
try:
url = (u'http://restapi.amap.com/v3/geocode/geo?key=7bb32daa7da4c202280232aeb5606cf9&s=rsv3&address=' + point.decode("utf-8")).encode("utf-8")
request = urllib2.Request(url)
body = urllib2.urlopen(request).read()
cityInfoAmap = json.loads(body)
cityInfoAmap = cityInfoAmap["geocodes"][0]
cityInfo = {}
cityInfo["province"] = cityInfoAmap["province"]
cityInfo["city"] = cityInfoAmap["city"]
cityInfo["district"] = cityInfoAmap["district"]
cityInfo["point"] = cityInfoAmap["formatted_address"]
cityInfo["alias"] = [point]
location = cityInfoAmap["location"].split(",")
cityInfo["lon"] = location[0]
cityInfo["lat"] = location[1]
coll_point.insert(cityInfo)
except BaseException,e :
print point.decode("utf-8")+ " Not insert Mongo: "+repr(e)
if __name__=="__main__":
for line in open('./points.txt','r'):
line = line[:-2]
transAmap(line)