如题,先上效果图:

主要分为两大步骤

使用python语句,通过百度地图API,对已知的地名抓取经纬度

使用百度地图API官网的html例程,修改数据部分,实现呈现效果

一、使用python语句,通过百度地图API,获取经纬度读取文件信息

import pandas as pd

data = pd.read_excel('test_baidu.xlsx')

data

图中可以看出,原始数据并没有经纬度。

2. 构建抓取经纬度函数

import json

from urllib.request import urlopen, quote

import requests

def getlnglat(address):

url = 'http://api.map.baidu.com/geocoder/v2/'

output = 'json'

ak = '你的百度地图ak' # 百度地图ak,具体申请自行百度,提醒需要在“控制台”-“设置”-“启动服务”-“正逆地理编码”,启动

address = quote(address) # 由于本文地址变量为中文,为防止乱码,先用quote进行编码

uri = url + '?' + 'address=' + address + '&output=' + output + '&ak=' + ak

req = urlopen(uri)

res = req.read().decode()

temp = json.loads(res)

lat = temp['result']['location']['lat']

lng = temp['result']['location']['lng']

return lat,lng # 纬度 latitude , 经度 longitude ,

3. 抓取经纬度

for indexs in data.index:

get_location = getlnglat(data.loc[indexs,'圈定区域'])

get_lat = get_location[0]

get_lng = get_location[1]

data.loc[indexs,'纬度'] = get_lat

data.loc[indexs,'经度'] = get_lng

data

已经自动查找到对应的经纬度(不排除部分搜索不准,但是大概看过,还是挺准的。)

4. 生成HTML适配的格式

data_html = pd.DataFrame(columns=['content'])

for indexs in data.index:

data_html.loc[indexs,'content'] = '{' + \

'"lat":' + str(data.loc[indexs,'纬度']) + ',' + \

'"lng":' + str(data.loc[indexs,'经度']) + ',' + \

'"quyu":' + '"' + str(data.loc[indexs,'圈定区域']) +'"' + \

'}' + ','

data_html.to_csv ("data_html.csv",encoding="gbk")

data_html

生成对应的格式,然后就copy出来了。

二、使用百度地图API官网的html例程,修改数据部分,实现呈现效果1. copy百度地图API官网的HTML例程

地址:http://developer.baidu.com/map/jsdemo.htm#c1_19

2. 修改部分内容

放上自己的百度地图AK

修改一下地图初始化显示的中心和缩放的系数

放上自己需要显示的信息,记得把数据中最后一个的逗号删除

修改前:

修改后:

题外:

其实一开始是使用folium进行尝试的,因为可以直接生成html文件,只需要Python就行了,不需要再写HTML,但是遇到两个暂时无法解决的问题:

1、marker不能正常显示,官网的marker都不行

2、openstreetmap的细致程度,比不上百度地图,这个有点致命。

以上所述是小编给大家介绍的利用python和百度地图API实现数据地图标注的方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!

python调用百度地图画轨迹图_[宜配屋]听图阁相关推荐

  1. python运行结果图_[宜配屋]听图阁

    首先使用内置模块os. >>> import os >>> code = os.system("pwd && sleep 2") ...

  2. python画平行坐标图_[宜配屋]听图阁

    平行坐标图,一种数据可视化的方式.以多个垂直平行的坐标轴表示多个维度,以维度上的刻度表示在该属性上对应值,相连而得的一个折线表示一个样本,以不同颜色区分类别. 但是很可惜,才疏学浅,没办法在Pytho ...

  3. python字典一键多值如何遍历_[宜配屋]听图阁

    循环写入字典key.value.删除指定的键值对: 原文本'jp_url.txt'每行元素以逗号分隔: host_key,product_id,product_name,cont_start,cont ...

  4. python整型图_[宜配屋]听图阁

    Python3支持三种不同的数值类型: 整型(int)--通常被称为是整型或整数,可以是正整数或负整数,不带小数点.Python3整型是没有限制大小的,可以当做long类型使用, 但实际上由于机器内存 ...

  5. python京东自动签到领金豆_[宜配屋]听图阁 - 利用python Selenium实现自动登陆京东签到领金币功能...

    如何自动登陆京东? 我们先来看一下京东的登陆页面,如下图所示: [插入图片,登陆页面] 登陆框就是右面这一个框框了,但是目前我们遇到一个困呐,默认的登陆方式是扫码登陆,如果我们想要以用户民个.密码的形 ...

  6. python条形图的动画显示水能时钟_[宜配屋]听图阁

    语言:Python IDE:Python.IDE 1.编写时钟程序,要求根据时间动态更新 2.代码思路 需求:5个Turtle对象, 1个绘制外表盘+3个模拟表上针+1个输出文字 Step1:建立Tu ...

  7. python开发一个彩票系统_[宜配屋]听图阁

    本文为大家分享了python实现彩票系统的具体代码,供大家参考,具体内容如下 功能:1.注册  2.登录  3.充钱   4.提现  5.下注  6.开奖  7.退出 简述:彩民需要用身份证号码开户注 ...

  8. python上下文管理关键字_[宜配屋]听图阁

    前言 如果你有阅读源码的习惯,可能会看到一些优秀的代码经常出现带有 "with" 关键字的语句,它通常用在什么场景呢?今天就来说说 with 和 上下文管理器. 对于系统资源如文件 ...

  9. python连接oracle详细教程_[宜配屋]听图阁

    1. 连接对象 操作数据库之前,首先要建立数据库连接. 有下面几个方法进行连接. >>>import cx_Oracle >>>db = cx_Oracle.con ...

最新文章

  1. MIT自动驾驶船下水!可乘坐5人,阿姆斯特丹运河航行3小时误差不到0.17米
  2. Qlik与百度开放云建立战略联盟,让中国企业通过强大的可视化分析看到数据背后的整个故事...
  3. 第三周总结CoreIDRAW
  4. 第二章:2.6 LTI系统特性与单位冲击信号的关系
  5. Java文件操作大全(绝对的经典,值得收藏!)
  6. 如何在面试中有条理的回答用户体验方面的问题
  7. 前端JavaScripts
  8. 【Elasticsearch】es 别名可写 索引可写 傻傻分不清
  9. emacs org-mode 常用命令
  10. 数据挖掘概念与技术(原书第三版)范明 孟小峰译-----第六章课后习题答案
  11. Win32 改变鼠标的光标图片
  12. PLC MODBUS RTU读写IC卡操作
  13. 如何把视频转换成mp3格式
  14. 世硕科技推荐:Shockman 最新音译 登峰侠
  15. android 发音乐通知到通知栏
  16. TensorFlow2.0-GPU加速
  17. 限制输入框输入(数字、小数点、负号)
  18. Python正面硬刚C语言,结果会怎样?
  19. 带你开发个转盘抽奖小游戏【附源码】
  20. HTML5第十课时,会员卡号返利练习

热门文章

  1. Leetcode--442. 数组中重复的数据
  2. python成绩转换、百分制到五分制_设计一个程序,将从键盘上输入的百分制成绩转换成对应的五分制成绩并输出。90分以上为A,80~90分为B,...
  3. 屏幕中间显示已停用缩放_有关标签打印软件缩放工具的介绍
  4. centos8安装MySQL依赖_centos8安装mysql8
  5. linux suse 共享目录_SUSE环境下YAST源(连接共享目录)
  6. BP神经网络识别手写数字项目解析及matlab实现
  7. CrawlSpider 详解
  8. Struts2源码阅读(一)_Struts2框架流程概述
  9. scrapy读取mysql数据库_python3实战scrapy获取数据保存至MySQL数据库
  10. pythonasyncio并发编程实战_python异步编程之asyncio(百万并发)