【python】python利用百度地图API:获取经纬度、地图撒点
本文目的:
python通过百度地图API,获取所给地址的经纬度,并且在百度地图上进行撒点。
另:百度地图API功能强大,如:
GPS功能(单个点沿线运动)、
信息窗口示例(添加纯文字的信息窗口)、
JavaScript API GL v.10(轨迹视角动画)
这些后续都能够用到。
进入正题
项目整体思路:
第一步:申请百度地图AK
地址:http://lbsyun.baidu.com/apiconsole/key
如图:
第二步:获取经纬度等
import pandas as pd
import json
import requests#获取经纬度
def getlnglat(address): #从本地的xlsx文件中获取商圈名称,作为此函数的实参output = 'json'ak = '您的秘钥' # 百度地图密钥ak,“控制台”-“应用管理”-“我的应用”-“创建应用”-“命名、*”提交后会生成AKurl = 'http://api.map.baidu.com/geocoding/v3/?address={0}&output={1}&ak={2}'.format(address,output,ak)print(url)html = requests.get(url=url)html = html.texttemp = json.loads(html, strict=False)lat = temp['result']['location']['lat']lng = temp['result']['location']['lng']return lat, lng #纬度 latitude,经度 longitudedef re_html(data): #生成HTML适配的格式data_html = pd.DataFrame(columns=['content']) #建立一个列名为content的dataframe对象for indexs in data.index: #重新整理成html里适配的格式data_html.loc[indexs, 'content'] = '{' + \'"lat":' + str(data.loc[indexs, '纬度']) + ',' + \'"lng":' + str(data.loc[indexs, '经度']) + ',' + \'"address":' + '"' + str(data.loc[indexs, 'MC']) + '"' + \'}' + ','data_html.to_csv("data_html.csv", encoding="gbk") #相对路径,生成了该csv文件if __name__ == '__main__':data = pd.read_excel('address.xlsx')for index in data.index: #index为data的序号,从0开始get_location = getlnglat(data.loc[index, 'MC']) #通过序号进行索引,获得MC列下对应的地址名称lat = get_location[0]lng = get_location[1]data.loc[index, '纬度'] = latdata.loc[index, '经度'] = lngprint(data)re_html(data)
第三步:找到“加载海量点”
地址:http://lbsyun.baidu.com/jsdemo.htm#c1_19
如图:
将官网的demo复制下来,然后修改配置,如下修改了两处:
- ak;
- 将第二步csv文件中的内容复制到points中
详细代码:
<!DOCTYPE HTML>
<html>
<head><title>加载海量点</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"><style type="text/css">html,body{margin:0;width:100%;height:100%;background:#ffffff;}#map{width:100%;height:100%;}#panel {position: absolute;top:30px;left:10px;z-index: 999;color: #fff;}#login{position:absolute;width:300px;height:40px;left:50%;top:50%;margin:-40px 0 0 -150px;}#login input[type=password]{width:200px;height:30px;padding:3px;line-height:30px;border:1px solid #000;}#login input[type=submit]{width:80px;height:38px;display:inline-block;line-height:38px;}</style><script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=您的密钥"></script><script type="text/javascript" src="/jsdemo/data/points-sample-data.js"></script>
</head>
<body><div id="map"></div><script type="text/javascript">var map = new BMap.Map("map", {}); // 创建Map实例map.centerAndZoom(new BMap.Point(120.725285, 31.303446), 10); // 初始化地图,设置中心点坐标和地图级别【中心点的值设置为苏州。地图级别值设置越大,地图就放大】map.enableScrollWheelZoom(); //启用滚轮放大缩小if (document.createElement('canvas').getContext) { // 判断当前浏览器是否支持绘制海量点var points = [{"lat":31.322265852172226,"lng":120.68438002906036,"address":"苏州中心"},{"lat":31.323270951670413,"lng":120.66351733274388,"address":"苏州市工业园区印象城"},{"lat":23.072928527383194,"lng":113.28558235115376,"address":"美罗百货(观前店)"},{"lat":31.326145447116968,"lng":120.72068765133209,"address":"苏州市工业园区圆融时代广场"},{"lat":31.303446751329332,"lng":120.7252852687627,"address":"苏州市工业园区邻瑞广场"},{"lat":31.63212125680224,"lng":120.74279593806872,"address":"诚品生活苏州"},{"lat":31.296203055436283,"lng":120.63059731038081,"address":"苏州市泰华商城"},{"lat":31.288771019970895,"lng":120.67844016353672,"address":"苏州市工业园区双湖广场"},{"lat":31.324684997959398,"lng":120.72068459709335,"address":"苏州市工业园区圆融星座"},{"lat":31.310377509583137,"lng":120.65955077493402,"address":"苏州市万科美好广场"},{"lat":31.32171806722683,"lng":120.67155581959992,"address":"苏州市工业园区天虹(金鸡湖店)"}]; // 添加海量点数据<!--for (var i = 0; i < data.data.length; i++) {--><!--points.push(new BMap.Point(data.data[i][0], data.data[i][1]));--><!--}-->var options = {size: BMAP_POINT_SIZE_SMALL,shape: BMAP_POINT_SHAPE_STAR,color: '#d340c3'}var pointCollection = new BMap.PointCollection(points, options); // 初始化PointCollectionpointCollection.addEventListener('click', function (e) {alert('单击点的坐标为:' + e.point.lng + ',' + e.point.lat); // 监听点击事件});map.addOverlay(pointCollection); // 添加Overlay} else {alert('请在chrome、safari、IE8+以上浏览器查看本示例');}</script>
</body>
</html>
后记:
根据需求有三点需要改进:
- 地图上画饼图;
- 地图上的“标注”的颜色、格式、多重格式并存;
- 点击“标注”显示详细信息。
【python】python利用百度地图API:获取经纬度、地图撒点相关推荐
- 调用百度地图API获取经纬度(详细步骤)
前端调用百度地图API获取经纬度(详细操作) 1. 浏览器搜索百度地图开放平台 2. 创建应用 点击控制台 --> 应用管理 --> 我的应用 --> 注册账号(如果没有注册过) - ...
- qichacha/知乎/国家统计局最新4级地区划/百度地图API获取经纬度/Google play app评论等分数据爬取
1.企查查数据抓取 1.1 关键公司LOGO # -*-coding:utf-8-*-import pandas as pd import requests import json import ra ...
- 使用python调用高德地图API获取经纬度地理信息
高德地图API简介 1.进入"地理/逆地理编码API"界面 1)登录高德地图API网站-高德API,界面如图所示. 鼠标移至"开发支持-Web服务API",点击 ...
- 【百度地图】——百度地图API获取经纬度、地址及周边兴趣点
在做一个电商项目过程中,需要获取设备地理信息,包括经纬度定位,附近地址等,于是写了一个工具类方便使用. 1.在使用百度地图API使,首先要获取官方授权,在http://lbsyun.baidu.com ...
- php 百度地图api获取经纬度,调用百度地图API接口获取地铁站的经纬度信息
今天我们来看一下,如何通过百地图API来获取地点的经纬度.首先百度地图提供了强大的API接口,我们可以通过调用它来实现目的.这是网址:https://lbsyun.baidu.com/.首先想要调用A ...
- 如何将百度地图API获取经纬度写成公有方法?
原问题来自于CSDN问答社区:http://ask.csdn.net/questions/636 问题描述: 我使用的是百度地图API来获取经纬度坐标.但是我的程序里面有多个地方用到了经纬度. 所以我 ...
- C# 调用高德地图API获取经纬度以及定位,JS获取定位【万字详解附完整代码】
最近有个需求,需要用到定位,本来打算用百度地图API定位,但是发现百度地图定位申请AppKey太麻烦了.因为是写的web端,百度地图定位API申请的Appkey需要网址过滤.索性就用高德定位了(有一说 ...
- 把通过高德静态地图API获取的地图图片,拼接成一张大地图图片
默认采用: zoom=17&size=1024*1024&scale=2 高德地图api参数.获取的是2048*2048大小的图片,修改参数之后需要调整图片截取和拼接的偏移量 程序中部 ...
- Android 使用 Retrofit 保存 高德 静态地图API 获取的地图图片
1.导入包 api 'com.squareup.retrofit2:retrofit:2.3.0' // 必要retrofit依赖 api 'com.squareup.retrofit2:adapte ...
- java获取经纬度_java调用高德地图api获取某个位置的经纬度
java调用高德地图api获取经纬度的方法,废话少说,直接上代码: import com.fasterxml.jackson.databind.JsonNode; import com.ning.ht ...
最新文章
- java jlist 更新_java – 更新JList
- 任务的定义、任务切换的原理及实现
- 为什么从1970年1月1日开始
- jsf集成spring_Spring和JSF集成:导航
- 关于.netMVC 出现@ViewBag 出现错误(波浪红线)的解决方法
- vue axios的路由拦截器
- C语言大作业学生选课系统,C语言学生选课管理系统
- 投票统计器用单片机c语言编写,基于51单片机的投票器毕业论文.doc
- 什么是事件流? 什么是事件冒泡? 什么是事件捕获?
- 我是怎么打开车库门的:ASK/OOK手动解码及重放
- 计算机组成原理实验箱D7,计算机组成原理与系统结构实验仪教学设备,上海求育...
- Android 64位变32位
- 如何在iPhone和iPad上隐藏IP地址,保护个人隐私信息
- 常用测试用例设计方法总结
- 光伏清扫机器人控制软件
- 台湾、香港、澳门的城市三级联动json
- Unity 3D 刚体(Rigidbody)|| Unity 3D 刚体实践案例
- 两个数组合并成一个数组
- 网络编程主机号和网络号转化
- 七夕种草“盐系妆”,get到重点了吗?
热门文章
- vue3 基于faceapi.js实现人脸识别
- 谈谈我对PMP的一点点感受
- 深入浅出理解索引结构[zt]
- mysql 查询最近24小时,mysql中怎么查询最近24小时、昨天、最近7天、下周、最近30天、下月的数据...
- FIL WORLD算力众筹助推Filecoin生态落地
- 百度算法整理,SEO工作者抓紧收藏了!(超详细)
- Android初级到高级视频教程全套 百度网盘下载
- Python自动从邮箱批量下载附件未读信息并按发件人名分类存放
- 海底猫开展抖音推广业务,助力企业开拓营销新渠道
- 青狐云网盘搭建-支持会员功能-支持对接阿里云存储