首先注册成为开发者百度地图开放平台 | 百度地图API SDK | 地图开发
创建一个服务器端应用,这个应用是为了查询地点的经纬度
把地点存一个csv文件,为了查询准确把市和区补在地点前面,通过python读取地址,像地图API接口请求经纬度信息,通过正则表达式解析出经纬度(也可以用json解析)
# -*- coding: utf-8 -*-# 第一行必须有,否则报中文字符非ascii码错误import reimport timefrom urllib.request import urlopen, quoteimport pandas as pddef getlnglat(address):queryStr = 'https://api./geocoding/v3/?address=' + address + '&output=json&ak=这里填写你创建的应用的AK码'# 对queryStr进行转码,safe内的保留字符不转换encodedStr = quote(queryStr, safe="/:=&?#+!$,;'@()*[]")req = urlopen(encodedStr)res = req.read().decode("utf-8")pattern_lng = pile(r'"lng":\d+.\d+')try:lng = re.findall(pattern_lng, res)[0][6:]except:lng = re.findall(pattern_lng, res)print(address, "err:", lng)pattern_lat = pile(r'"lat":\d+.\d+')try:lat = re.findall(pattern_lat, res)[0][6:]print(address, lat, lng)except:lat = re.findall(pattern_lat, res)print(address, "err:", lat)return lat, lng # 纬度 latitude , 经度 longitude ,addrName = pd.read_csv('addr.csv')lst = []for i in range(addrName.shape[0]):name = addrName.iloc[i, 0]lat, lng = getlnglat(name)lst.append([name, lng, lat])time.sleep(0.1)df = pd.DataFrame(lst)df.to_csv('addr_lonlat.csv', encoding='utf_8_sig')print("done")# lat, lng = getlnglat("上海市浦东新区东昌新村")
把经纬度信息存成一个csv文件。
/jsdemo.htm#c1_15
打开百度地图热力图示例,把你的经纬度复制到这里
var point = new BMap.Point(116.418261, 39.921984);
map.centerAndZoom(point, 15); // 初始化地图,设置中心点坐标和地图级别
这里是地图初始显示的中心。下面的points是你自己的经纬度点,即可查看。
再创建一个浏览器应用,把这段代码复制下来存成html文件,ak写上你的浏览器应用ak码,方便查看。
总结:1、统计地址;2、查询经纬度;3、利用经纬度画地图