IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python folium 地图热力图,画标记点 -> 正文阅读

[Python知识库]python folium 地图热力图,画标记点

import folium

from folium.plugins import HeatMap, MarkerCluster, FastMarkerCluster

import webbrowser


?

def createMap(arrayPoint, msgList, saveFile):

? ? """msgList :[{"msg":"","type":1},...]"""

? ? centrPoint = [32.0, 118.845]

? ? map_osm = getMapBaseSource(centrPoint, 1)

? ? HeatMap(arrayPoint).add_to(map_osm) ?# 将热力图添加到前面建立的map里

? ? if len(msgList) > 0:

? ? ? ? draw_MarkerCluster(map_osm, arrayPoint, msgList)

? ? map_osm.save(saveFile) ? ? # 保存为html文件

? ? return map_osm


?

def getMapBaseSource(centerPoint, baseSource):

? ? """

? ? 设置地图源

? ? return ?map: 默认是openstreetmap

? ? baseSource: ?1-高德地图

? ? """

? ? map = folium.Map(location=centerPoint, zoom_start=10)

? ? if (baseSource == 1):

? ? ? ? folium.TileLayer(tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',

? ? ? ? ? ? ? ? ? ? ? ? ?attr="&copy; <a href=http://ditu.amap.com/>高德地图</a>",

? ? ? ? ? ? ? ? ? ? ? ? ?min_zoom=0,

? ? ? ? ? ? ? ? ? ? ? ? ?max_zoom=18,

? ? ? ? ? ? ? ? ? ? ? ? ?control=False,

? ? ? ? ? ? ? ? ? ? ? ? ?zoom_start=10,

? ? ? ? ? ? ? ? ? ? ? ? ?show=False,

? ? ? ? ? ? ? ? ? ? ? ? ?overlay=False,

? ? ? ? ? ? ? ? ? ? ? ? ?).add_to(map)

? ? return map


?

def createMapWithMark(punitList, saveFile):

? ? arrayPoint = []

? ? msgList = []

? ? centrPoint = [32.0, 118.845]

? ? for item in punitList:

? ? ? ? arrayPoint.append([item["lat"], item["lng"]])

? ? ? ? tmp = "{} 经纬度{},{},id={}".format(

? ? ? ? ? ? item["name"], item["lng"], item["lat"], item["id"])

? ? ? ? msgList.append({"msg": tmp, "type": item["type"]})

? ? map_osm = getMapBaseSource(centrPoint, 1)

? ? HeatMap(arrayPoint).add_to(map_osm)

? ? if len(msgList) > 0:

? ? ? ? draw_MarkerCluster(map_osm, arrayPoint, msgList)

? ? map_osm.save(saveFile)


?

def draw_MarkerCluster(map, arrayPoint, msgList):

? ? """

? ? 绘制可缩放的标记物数字指示

? ? msgList :[{"msg":"","type":1},...]

? ? """

? ? marker_cluster = MarkerCluster().add_to(map)

? ? for i in range(len(arrayPoint)):

? ? ? ? msg = msgList[i]["msg"]

? ? ? ? uType = msgList[i]["type"]

? ? ? ? if (uType == 1):

? ? ? ? ? ? folium.Marker(location=arrayPoint[i], popup=msg,

? ? ? ? ? ? ? ? ? ? ? ? ? icon=None).add_to(marker_cluster)

? ? ? ? elif (uType == 2):

? ? ? ? ? ? folium.Marker(location=arrayPoint[i], popup=msg,

? ? ? ? ? ? ? ? ? ? ? ? ? icon=folium.Icon(color="red", icon=None)).add_to(marker_cluster)

? ? ? ? else:

? ? ? ? ? ? folium.Marker(location=arrayPoint[i], popup=msg,

? ? ? ? ? ? ? ? ? ? ? ? ? icon=folium.Icon(color="black", icon=None)).add_to(marker_cluster)

? ? # folium.Marker(

? ? # ? ? location=loc,

? ? # ? ? popup=msg,

? ? # ? ? icon=folium.Icon(color="green", icon="ok-sign"),

? ? # ).add_to(marker_cluster)

? ? # folium.Marker(

? ? # ? ? location=loc,

? ? # ? ? popup=msg,

? ? # ? ? icon=folium.Icon(color="red", icon="remove-sign"),

? ? # ).add_to(marker_cluster)


?

def readFilePointToMap(file, saveFile):

? ? arrayPoint = []

? ? msgList = []

? ? with open(file, 'r', encoding='utf-8') as f:

? ? ? ? lines = f.readlines()

? ? ? ? for line in lines:

? ? ? ? ? ? strs = line.split()

? ? ? ? ? ? if (len(strs) > 3):

? ? ? ? ? ? ? ? lng = (float(strs[2]))

? ? ? ? ? ? ? ? lat = (float(strs[3]))

? ? ? ? ? ? ? ? arrayPoint.append([lat, lng])

? ? ? ? ? ? ? ? tmp = "{} 经纬度{},{},id={}".format(

? ? ? ? ? ? ? ? ? ? strs[1], lng, lat, strs[0])

? ? ? ? ? ? ? ? msgList.append({"msg": tmp, "type": 1})

? ? f.close()

? ? createMap(arrayPoint, msgList, saveFile)


?

def readFilePointToMap2(file1, file2, saveFile):

? ? arrayPoint = []

? ? msgList = []

? ? with open(file1, 'r', encoding='utf-8') as f:

? ? ? ? lines = f.readlines()

? ? ? ? for line in lines:

? ? ? ? ? ? strs = line.split()

? ? ? ? ? ? if (len(strs) > 3):

? ? ? ? ? ? ? ? lng = (float(strs[2]))

? ? ? ? ? ? ? ? lat = (float(strs[3]))

? ? ? ? ? ? ? ? arrayPoint.append([lat, lng])

? ? ? ? ? ? ? ? tmp = "{} 经纬度{},{},id={}".format(

? ? ? ? ? ? ? ? ? ? strs[1], lng, lat, strs[0])

? ? ? ? ? ? ? ? msgList.append({"msg": tmp, "type": 1})

? ? f.close()

? ? with open(file2, 'r', encoding='utf-8') as f:

? ? ? ? lines = f.readlines()

? ? ? ? for line in lines:

? ? ? ? ? ? strs = line.split()

? ? ? ? ? ? if (len(strs) > 3):

? ? ? ? ? ? ? ? lng = (float(strs[2]))

? ? ? ? ? ? ? ? lat = (float(strs[3]))

? ? ? ? ? ? ? ? arrayPoint.append([lat, lng])

? ? ? ? ? ? ? ? tmp = "{} 经纬度{},{},id={}".format(

? ? ? ? ? ? ? ? ? ? strs[1], lng, lat, strs[0])

? ? ? ? ? ? ? ? msgList.append({"msg": tmp, "type": 2})

? ? f.close()

? ? createMap(arrayPoint, msgList, saveFile)


?

if __name__ == "__main__":

? ? fileJZ = "E:\\1.txt"

? ? saveFile = "E:\\hotmap\\所有A点.html"

? ? # readFilePointToMap(fileJZ, saveFile)

? ? fileXF = "E:\\2.txt"

? ? saveFile = "E:\\hotmap\\所有B点.html"

? ? # readFilePointToMap(fileXF, saveFile)

? ? # webbrowser.open(saveFile) ?# 默认浏览器打开

? ? readFilePointToMap2(fileJZ, fileXF, "E:\\hotmap\\所有点.html")

? ? webbrowser.open(saveFile)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:53:29  更:2022-09-24 20:54:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:29:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码