本文目的:

python通过百度地图API,获取所给地址的经纬度,并且在百度地图上进行撒点。

另:百度地图API功能强大,如:
GPS功能(单个点沿线运动)、
信息窗口示例(添加纯文字的信息窗口)、
JavaScript API GL v.10(轨迹视角动画)
这些后续都能够用到。

进入正题

项目整体思路:

成功后
申请AK
放入代码中,获得经纬度
生成HTML适配的格式
写入本地csv文件 官方demo中复制代码 更改ak和其他配置

第一步:申请百度地图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复制下来,然后修改配置,如下修改了两处:

  1. ak;
  2. 将第二步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>

后记:
根据需求有三点需要改进:

  1. 地图上画饼图;
  2. 地图上的“标注”的颜色、格式、多重格式并存;
  3. 点击“标注”显示详细信息。

【python】python利用百度地图API:获取经纬度、地图撒点相关推荐

  1. 调用百度地图API获取经纬度(详细步骤)

    前端调用百度地图API获取经纬度(详细操作) 1. 浏览器搜索百度地图开放平台 2. 创建应用 点击控制台 --> 应用管理 --> 我的应用 --> 注册账号(如果没有注册过) - ...

  2. qichacha/知乎/国家统计局最新4级地区划/百度地图API获取经纬度/Google play app评论等分数据爬取

    1.企查查数据抓取 1.1 关键公司LOGO # -*-coding:utf-8-*-import pandas as pd import requests import json import ra ...

  3. 使用python调用高德地图API获取经纬度地理信息

    高德地图API简介 1.进入"地理/逆地理编码API"界面 1)登录高德地图API网站-高德API,界面如图所示. 鼠标移至"开发支持-Web服务API",点击 ...

  4. 【百度地图】——百度地图API获取经纬度、地址及周边兴趣点

    在做一个电商项目过程中,需要获取设备地理信息,包括经纬度定位,附近地址等,于是写了一个工具类方便使用. 1.在使用百度地图API使,首先要获取官方授权,在http://lbsyun.baidu.com ...

  5. php 百度地图api获取经纬度,调用百度地图API接口获取地铁站的经纬度信息

    今天我们来看一下,如何通过百地图API来获取地点的经纬度.首先百度地图提供了强大的API接口,我们可以通过调用它来实现目的.这是网址:https://lbsyun.baidu.com/.首先想要调用A ...

  6. 如何将百度地图API获取经纬度写成公有方法?

    原问题来自于CSDN问答社区:http://ask.csdn.net/questions/636 问题描述: 我使用的是百度地图API来获取经纬度坐标.但是我的程序里面有多个地方用到了经纬度. 所以我 ...

  7. C# 调用高德地图API获取经纬度以及定位,JS获取定位【万字详解附完整代码】

    最近有个需求,需要用到定位,本来打算用百度地图API定位,但是发现百度地图定位申请AppKey太麻烦了.因为是写的web端,百度地图定位API申请的Appkey需要网址过滤.索性就用高德定位了(有一说 ...

  8. 把通过高德静态地图API获取的地图图片,拼接成一张大地图图片

    默认采用: zoom=17&size=1024*1024&scale=2 高德地图api参数.获取的是2048*2048大小的图片,修改参数之后需要调整图片截取和拼接的偏移量 程序中部 ...

  9. Android 使用 Retrofit 保存 高德 静态地图API 获取的地图图片

    1.导入包 api 'com.squareup.retrofit2:retrofit:2.3.0' // 必要retrofit依赖 api 'com.squareup.retrofit2:adapte ...

  10. java获取经纬度_java调用高德地图api获取某个位置的经纬度

    java调用高德地图api获取经纬度的方法,废话少说,直接上代码: import com.fasterxml.jackson.databind.JsonNode; import com.ning.ht ...

最新文章

  1. java jlist 更新_java – 更新JList
  2. 任务的定义、任务切换的原理及实现
  3. 为什么从1970年1月1日开始
  4. jsf集成spring_Spring和JSF集成:导航
  5. 关于.netMVC 出现@ViewBag 出现错误(波浪红线)的解决方法
  6. vue axios的路由拦截器
  7. C语言大作业学生选课系统,C语言学生选课管理系统
  8. 投票统计器用单片机c语言编写,基于51单片机的投票器毕业论文.doc
  9. 什么是事件流? 什么是事件冒泡? 什么是事件捕获?
  10. 我是怎么打开车库门的:ASK/OOK手动解码及重放
  11. 计算机组成原理实验箱D7,计算机组成原理与系统结构实验仪教学设备,上海求育...
  12. Android 64位变32位
  13. 如何在iPhone和iPad上隐藏IP地址,保护个人隐私信息
  14. 常用测试用例设计方法总结
  15. 光伏清扫机器人控制软件
  16. 台湾、香港、澳门的城市三级联动json
  17. Unity 3D 刚体(Rigidbody)|| Unity 3D 刚体实践案例
  18. 两个数组合并成一个数组
  19. 网络编程主机号和网络号转化
  20. 七夕种草“盐系妆”,get到重点了吗?

热门文章

  1. vue3 基于faceapi.js实现人脸识别
  2. 谈谈我对PMP的一点点感受
  3. 深入浅出理解索引结构[zt]
  4. mysql 查询最近24小时,mysql中怎么查询最近24小时、昨天、最近7天、下周、最近30天、下月的数据...
  5. FIL WORLD算力众筹助推Filecoin生态落地
  6. 百度算法整理,SEO工作者抓紧收藏了!(超详细)
  7. Android初级到高级视频教程全套 百度网盘下载
  8. Python自动从邮箱批量下载附件未读信息并按发件人名分类存放
  9. 海底猫开展抖音推广业务,助力企业开拓营销新渠道
  10. 青狐云网盘搭建-支持会员功能-支持对接阿里云存储