700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 利用百度地图API接口自制地图

利用百度地图API接口自制地图

时间:2020-11-07 17:17:29

相关推荐

利用百度地图API接口自制地图

首先注册成为开发者百度地图开放平台 | 百度地图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、利用经纬度画地图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。