使用Folium制作相册地图

folium是JavaScript上著名的交互式地图库leaflet.js为Python提供的接口,通过它,我们可以在Python端调用leaflet的相关功能。

leaflet通过内建的OpenStreetMap或自行获取的osm资源和地图原件来进行地理信息内容的可视化,以及制作优美的可交互地图。其语法格式是通过不断添加图层元素来定义一个Map对象,最后以几种方式将Map对象展现出来。

在定义了所有图层内容之后,folium会生成一个html文件,我们可以在浏览器中打开它,也可以基于jupyter notebook嵌入对应的交互地图。

Folium官网

这里展示一个只有一张图的小示例~
包括图片在内的所有实现内容,包括实现相册地图,都在github上可以看:
https://github.com/MewemeW/folium-album-map
所有代码实现由Chensy Cao大神完成~

准备

# # 科学计算
# !pip install pandas
# # 地理信息可视化
# !pip install folium
# !pip install branca
# # 图像处理
# !pip install pillow
# !pip install opencv-python
# # 交互式环境
# !pip install IPython
import ast
import base64
import osimport branca
import cv2
import folium
import pandas as pd
import requests
from folium.plugins import MarkerCluster
from IPython.display import IFrame
from PIL import Image
from PIL.ExifTags import TAGS

图像定位

# 提取图片信息
img=Image.open('./123/food.jpg')
exifInfo = img._getexif()
# 获取经纬度
for tag, gpsValue in list(exifInfo.items()):decoded = TAGS.get(tag)if decoded == 'GPSInfo':gpsInfo = gpsValue
Npos = sum([(item[0]/item[1])*(1.0/(60**i)) for i, item in enumerate(gpsInfo[2])])
Epos = sum([(item[0]/item[1])*(1.0/(60**i)) for i, item in enumerate(gpsInfo[4])])
location = [Npos, Epos]

图片处理

imagePathName = './mini123/food.jpg'
encoded = base64.b64encode(open(imagePathName, 'rb').read())
height, width = cv2.imread(imagePathName).shape[:2]

建立地图

tile = 'http://wprd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=7'
map = folium.Map(location=[30.24, 120.16],zoom_start=6,tiles=tile[2],attr='高德地图')
# 标记
icon_path = './icon/足迹.png'
icon = folium.features.CustomIcon(icon_image=icon_path, icon_size=(30, 30))
# 图像转为html
HTML = """<center><img src='data:image/jpeg;base64,{}' style='width: {}px'></center>"""
# 定义图像的尺寸
WIDTH = 650html = HTML.format(encoded.decode('UTF-8'), str(WIDTH))
iframe = branca.element.IFrame(html=html, width=WIDTH+10, height=height-20)
# 插件
popup = folium.Popup(iframe, max_width=650)
marker = folium.Marker(location=location, icon=icon,popup=popup).add_to(map)
# 展示
mapName = '123.html'
map.save(mapName)
IFrame(src=mapName, width=980, height=600)

具体实现的效果如下:

如果是相册(多图)地图呢~

分享完毕~

使用Folium制作相册地图相关推荐

  1. 【python绘制地图】使用folium制作地图,可解决多数问题

    Python使用folium制作地图并生成png图片 第一章 folium的方法和类的介绍(思维导图) 第二章 使用folium制作地图 第三章 folium实用功能进阶 第三章 使用Html2Ima ...

  2. python 实现对地图的点击_python使用folium库绘制地图点击框

    python使用folium 库生成地图网页的具体代码,供大家参考,具体内容如下 folium 官网 import folium import pandas as pd def mark_map(da ...

  3. 导数,微积分,牛顿运动学制作创意地图

    导数,微积分,牛顿运动学制作创意地图 转载于:https://www.cnblogs.com/liuys635/p/11180988.html

  4. 中高德地图只显示某一城市_干货 | 如何快速制作数据地图?让你的可视化逼格再高一级!...

    在数据可视化中,地图可视化是高频应用的一种.我们在一些新闻报道和商业杂志上,会经常看到运用地图来分析展示商业现象,这样的利用地图来反映和分析数据的形式叫数据地图. 数据地图可以最直观的表达出数据之间的 ...

  5. python作中国地图背景气泡图_exce表格中怎么制作中国地图背景数据气泡图

    exce表格中怎么制作中国地图背景数据气泡图 exce表格中怎么制作中国地图背景数据气泡图?excel表格中想要在中国地图上显示气泡来看看地区分布情况,该怎么设置中国地图气泡图表呢?下面我们就来看看详 ...

  6. 如何利用自己的数据制作社交地图?只显示可视区域内的标注

    地址:http://www.cnblogs.com/milkmap/archive/2012/02/02/2335989.html [百度地图API]如何利用自己的数据制作社交地图?只显示可视区域内的 ...

  7. 【百度地图API】如何利用自己的数据制作社交地图?只显示可视区域内的标注...

    原文:[百度地图API]如何利用自己的数据制作社交地图?只显示可视区域内的标注 摘要:如果你自己的数据已经超过1万个,如何进行合理的显示?除了聚合marker外,还有一个办法.那就是,只显示可视区域内 ...

  8. 【百度地图API】如何利用自己的数据制作社交地图?只显示可视区域内的标注

    [百度地图API]如何利用自己的数据制作社交地图?只显示可视区域内的标注 摘要:如果你自己的数据已经超过1万个,如何进行合理的显示?除了聚合marker外,还有一个办法.那就是,只显示可视区域内的标注 ...

  9. 如何在SuperMap iDesktop制作卫星地图

    1.要制作卫星地图,首先要把地图图片导进到数据源中 2.然后点击配准,选择新建配准,参考图层的数据集选择比较容易找到该图片位置的. 3. 在参考图层找到地图位置,把道路相关的数据集添加到参考图层.添加 ...

最新文章

  1. 低调的,我们改名字了!
  2. python互相转换组合_Python基本类型的连接组合和互相转换方式(13种)
  3. np.meshgrid
  4. C语言实现队列ADT(Queue ADT)接口COMP2521(附完整源码)
  5. Struts2.3.5+Hibernate3+Spring3.1基于注解实现的多文件上传,下载
  6. php做APP接口开发,接口的安全性
  7. c语言统计字符串中每个字符出现的次数
  8. rslogix5000pide实例_用RSLogix5000梯形图实现一种高级PID运算
  9. 手机python安装教程_Python安装不用愁,Python安装教程来了(2021)
  10. 超分辨 :SRCNN
  11. windows11百度网盘下载,win11iso镜像百度云下载
  12. python学习笔记——取矩阵的上三角或下三角元素
  13. QQ聊天记录生成词云--WordCloud
  14. 汉王手写芯片的触摸屏控制器应用设计
  15. 星界边境机器人升级,星界边境作弊码分享
  16. 安装失败:user ‘system‘ has previously initiated an install for product‘‘
  17. mac chrome 常用插件
  18. python零基础爬虫练习:如何用python爬取高德地图
  19. 学习streamlit-1
  20. 通达信dll接口怎么开发?

热门文章

  1. 最好用的服务器连接管理工具
  2. 简答‘软件报’读者问
  3. TCP SYN ACK RST UTG PSH FIN
  4. BBB学习(二十一):开始把BBB用起来吧
  5. 强化学习(二):Policy Gradient理解
  6. 架构师细说 NGINX 的配置及优化
  7. mysql 编码格式_设置MySQL的字符编码
  8. 阿里云联合易客CRM等发布金盾宣言
  9. 计算机软件保护现状,计算机软件保护问题探讨
  10. windows10系统删除本地git记录的账号密码