Python将地名转换为经纬度

很多时候,我们有一系列的地名,我们需要在地图中标注出来。如果数量比较少,可以使用百度提供的坐标拾取工具来获得
http://api.map.baidu.com/lbsapi/getpoint/
但是如果数量很多,一个一个点就很难受了,如何使用Python来自动化做这样一个工作呢?
废话不多说,直接贴代码:

from urllib.request import urlopen,quote
import requests,csv
import pandas as pd
import json

def getlnglat(adress):
    url = 'http://api.map.baidu.com/geocoder/v2/?address='
    output = 'json'
    ak = '百度秘钥'
    add = quote(adress)#使用quote进行编码 为了防止中文乱码
    url2 = url + add + '&output=' + output + '&ak=' + ak
    req = urlopen(url2)
    res = req.read().decode()
    temp = json.loads(res)
    return temp

getlnglat("上海")

output:

{'status': 0,
 'result': {'location': {'lng': 121.48053886017651, 'lat': 31.235929042252014},
  'precise': 0,
  'confidence': 20,
  'comprehension': 100,
  'level': '城市'}}

注意:
这里面的“百度秘钥”是需要自己到百度地图开放平台申请的,申请方法不复杂。
由地名搜经纬度,由于重名等原因,很可能会有误,需要进一步核实哦。
这个从百度获得的经纬度,是百度坐标系。而如果需要转换为火星坐标系、WGS84坐标系,可以参考我的下一篇文章。

你可能感兴趣的:(Python将地名转换为经纬度)