使用 gmplot 在 Python 中创建动态地图可视化

ops/2024/12/26 21:23:28/

使用 gmplot 在 Python 中创建动态地图可视化

什么是 gmplot?

gmplot 是一个 Python 库,用于基于 Google Maps 的静态地图生成可视化。它提供简单的 API 来绘制标记、路径、热力图等地理信息数据。

通过 gmplot,用户可以轻松地在 Google Maps 上生成并保存 HTML 格式的静态地图,并在浏览器中查看。


gmplot 的安装

要安装 gmplot,可以使用以下命令:

pip install gmplot

创建一个基本地图

以下是绘制基本地图的简单示例:

python">from gmplot import gmplot# 初始化地图,设置中心坐标和缩放级别
gmap = gmplot.GoogleMapPlotter(37.7749, -122.4194, 13)  # 旧金山# 保存为 HTML 文件
gmap.draw("basic_map.html")

打开 basic_map.html 文件即可在浏览器中查看生成的地图。


添加标记和图层

1. 在地图上添加标记点

可以在地图上绘制多个标记点,例如城市、地点等。

python"># 初始化地图
gmap = gmplot.GoogleMapPlotter(37.7749, -122.4194, 13)# 添加标记点
latitude_list = [37.7749, 37.7849, 37.7649]
longitude_list = [-122.4194, -122.4294, -122.4094]
gmap.scatter(latitude_list, longitude_list, color='red', size=40, marker=True)# 保存地图
gmap.draw("scatter_map.html")
2. 绘制路径

可以绘制两点之间的路径,例如步行路线、车行路线等。

python"># 经纬度列表
path_latitudes = [37.7749, 37.7849, 37.7649]
path_longitudes = [-122.4194, -122.4294, -122.4094]# 绘制路径
gmap.plot(path_latitudes, path_longitudes, 'blue', edge_width=2.5)# 保存地图
gmap.draw("path_map.html")
3. 添加多边形

绘制多边形可以用于标记区域。

python"># 多边形的坐标
polygon_latitudes = [37.7749, 37.7849, 37.7649, 37.7749]
polygon_longitudes = [-122.4194, -122.4294, -122.4094, -122.4194]# 绘制多边形
gmap.polygon(polygon_latitudes, polygon_longitudes, color='green')# 保存地图
gmap.draw("polygon_map.html")

添加热力图

热力图是数据密度可视化的一种方式,gmplot 提供了非常简单的 API。

python"># 数据点(通常用于热力图)
heatmap_latitudes = [37.7749, 37.7849, 37.7649, 37.7549, 37.7449]
heatmap_longitudes = [-122.4194, -122.4294, -122.4094, -122.3994, -122.3894]# 添加热力图
gmap.heatmap(heatmap_latitudes, heatmap_longitudes)# 保存地图
gmap.draw("heatmap.html")

使用 Google Maps API 密钥

从 Google Cloud Platform 获取 Google Maps API 密钥后,可以将其添加到 gmplot 中。这样可以支持高级地图功能。

python">from gmplot import gmplot# 使用 API 密钥初始化地图
gmap = gmplot.GoogleMapPlotter(37.7749, -122.4194, 13, apikey="YOUR_API_KEY")# 绘制散点
latitude_list = [37.7749, 37.7849, 37.7649]
longitude_list = [-122.4194, -122.4294, -122.4094]
gmap.scatter(latitude_list, longitude_list, color='red', size=40, marker=True)# 保存地图
gmap.draw("map_with_apikey.html")

自定义地图样式

gmplot 提供了一些自定义选项,允许用户调整地图的样式。

python"># 自定义地图样式
gmap.coloricon = "http://www.googlemapsmarkers.com/v1/%s/"
gmap.scatter([37.7749], [-122.4194], color='purple', marker=True)# 保存地图
gmap.draw("custom_style_map.html")

一个完整的示例

以下是结合多个功能的完整代码示例:

python">from gmplot import gmplot# 初始化地图
gmap = gmplot.GoogleMapPlotter(37.7749, -122.4194, 13)# 添加散点
latitude_list = [37.7749, 37.7849, 37.7649]
longitude_list = [-122.4194, -122.4294, -122.4094]
gmap.scatter(latitude_list, longitude_list, color='red', size=40, marker=True)# 添加路径
path_latitudes = [37.7749, 37.7849, 37.7649]
path_longitudes = [-122.4194, -122.4294, -122.4094]
gmap.plot(path_latitudes, path_longitudes, 'blue', edge_width=2.5)# 添加热力图
heatmap_latitudes = [37.7749, 37.7849, 37.7649, 37.7549, 37.7449]
heatmap_longitudes = [-122.4194, -122.4294, -122.4094, -122.3994, -122.3894]
gmap.heatmap(heatmap_latitudes, heatmap_longitudes)# 保存地图
gmap.draw("complete_map.html")

gmplot 的优势和限制

优势:
  1. 简单易用,适合快速生成地图可视化。
  2. 支持多种功能,如热力图、路径、多边形等。
  3. 无需专业 GIS 知识即可上手。
限制:
  1. 生成的地图是静态的,交互性较差。
  2. 对大数据集支持有限,处理大量数据时可能会遇到性能问题。
  3. 依赖 Google Maps API,如果需要高级功能,需获取并设置 API 密钥。

总结

gmplot 是一个轻量级的地理数据可视化工具,适合快速生成基于 Google Maps 的静态地图。如果你需要处理更复杂的地理数据或实现动态交互,可以结合其他库(如 Folium 或 Plotly)使用。希望这篇文章能帮助你快速掌握 gmplot 的使用方法!


http://www.ppmy.cn/ops/145213.html

相关文章

Day13 苍穹外卖项目 工作台功能实现、Apache POI、导出数据到Excel表格

目录 1.工作台 1.1 需求分析和设计 1.1.1 产品原型 1.1.2 接口设计 1.2 代码导入 1.2.1 Controller层 1.2.2 Service层接口 1.2.3 Service层实现类 1.2.4 Mapper层 1.3 功能测试 1.4 代码提交 2.Apache POI 2.1 介绍 2.2 入门案例 2.2.1 将数据写入Excel文件 2.2.2 读取Excel文…

Leetcode经典题17--两数之和

两数之和 题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺…

百度智能云千帆大模型平台引领企业创新增长

本文整理自百度世界大会 2024——「智能跃迁 产业加速」论坛的同名演讲。 更多大会演讲内容,请访问: https://baiduworld.baidu.com 首先,跟大家分享一张图,这个是我们目前大模型应用落地的场景分布。可以看到,大模型…

基于PXE与NFS共享的Ubuntu安装配置过程

假设存在服务器A、B、C 其中A为待装系统的服务器,DHCP(IP池:192.168.0.150~192.168.0.160),假设需要安装的系统为Ubuntu 22.04 Desktop 其中B为PXE服务端服务器,IP: 192.168.0.100,这里将以Cent…

Docker Compose 配置指南

目录 1. Docker Compose 配置1.1 基本配置结构1.2 docker-compose.yml 的各部分1.3 常用配置选项 2. Docker Compose 使用方法2.1 创建 Docker Compose 配置文件2.2 启动服务2.3 查看容器状态2.4 查看服务日志2.5 停止服务2.6 重新构建服务 3. Docker Compose 常用命令3.1 dock…

git merge 冲突 解决 show case

废话不多说,上 case!!! 1. 更新master分支 package org.example;public class Main {public static void main(String[] args) {System.out.println("--------Git冲突测试代码开始---------");System.out.println(&qu…

【硬件接口】MCU的IO模式

本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时,也能帮助其他需要参考的朋友。如有谬误,欢迎大家进行指正。 一、基本分类 IO口分为GPIO(通用输入输出端口)口和专用IO口。其中,GPIO口具有高度的灵活…

Nginx性能优化全方案:打造一个高效服务器

提到前面:一个热衷技术,反对八股的资深研发,不卖课不引流,专注分享高质量教学博客。 如果觉得文章还不错的话,可以点赞收藏关注 支持一下,持续分享高质量技术博客。 如果有什么需要改进的地方还请大佬指出❌…