【可视化大屏开发】18. 加餐-ECharts+百度地图API实现热力图

ECharts结合百度地图API能获得更好的使用体验。

效果展示

放大后的效果

切换卫星地图模式

实现步骤

1. 通过Python实现GPS数据模拟

2. 通过IDEA开发地图

通过Python实现GPS数据模拟

import random
from math import cos, sin, radians, sqrt
import jsondef generate_random_coordinates(center_lat, center_lon, radius, num_points):"""该方法生成的结果是,以中心点为中心,半径为 radius 的圆形区域内,num_points 个随机点的经纬度坐标。其中,中心点的经纬度坐标为 center_lat, center_lon,半径为 radius 米。该方法使用了球面坐标系,将经纬度转换为球面坐标,然后在球面坐标系中生成随机点。"""points = []# 将经纬度转换为弧度center_lat_rad = radians(center_lat)center_lon_rad = radians(center_lon)# 循环生成 num_points 个随机点for _ in range(num_points):# 生成随机的极径和方位角r = radius * sqrt(random.random())theta = random.uniform(0, 2 * 3.141592653589793)  # 方位角范围在 [0, 2π) 内# 计算偏移的直角坐标delta_x = r * cos(theta)delta_y = r * sin(theta)# 将直角坐标转换为经纬度new_lat = center_lat + (delta_y / 111111)new_lon = center_lon + (delta_x / (111111 * cos(center_lat_rad)))# 添加新的经纬度坐标到列表中points.append((new_lat, new_lon))return points# 给定的经纬度坐标和半径,center_latitude = 26.389193
center_longitude = 106.642337
radius_meters = 10000   # 10000 米# 生成 50 个随机经纬度坐标点random_coordinates = generate_random_coordinates(center_latitude, center_longitude, radius_meters, 30000)# # 打印生成的坐标点# for idx, coord in enumerate(random_coordinates, start=1):#     print(f"Point {idx}: Latitude={coord[0]}, Longitude={coord[1]}")# print(f"{coord[1]},{coord[0]}")f = []for idx, coord in enumerate(random_coordinates, start=1):adir = {}adir["elevation"] = 3000 * random.random()  # 随机给定海拔高度adir["coord"] = [coord[1], coord[0]]  # 坐标点f.append(adir)resoult = [f]# 将随机生成的数据保存到json文件中with open('Guiyangrandom_coordinates.json', 'w') as f:json.dump(resoult, f)

样例数据展示

通过IDEA开发地图

<!DOCTYPE html>  
<html>  
<head>  <meta charset="utf-8">  <title>贵阳市热力图-与百度地图API结合</title><!-- 引入 ECharts -->  <script src="https://cdn.staticfile.net/jquery/3.7.1/jquery.min.js"></script>  <script src="https://registry.npmmirror.com/echarts/5.5.0/files/dist/echarts.min.js"></script>  <script src="https://api.map.baidu.com/api?v=3.0&ak=这里换成你的百度地图key"></script>  <script src="https://registry.npmmirror.com/echarts/5.5.0/files/dist/extension/bmap.min.js"></script>  
</head>  
<body>  
<!-- 为ECharts准备一个具备大小(宽高)的DOM -->  
<div id="main" style="width: 100%;height:600px;"></div>  
<script type="text/javascript">  // 获取图表容器元素,并初始化ECharts实例  var chartDom = document.getElementById('main');  var myChart = echarts.init(chartDom);  var option;  // 从JSON文件中异步加载数据  $.get('jsons/Guiyangrandom_coordinates.json', function (data) {  // 处理数据,转换为ECharts要求的格式  var points = [].concat.apply(  [],  data.map(function (track) {  // 对每条轨迹进行处理,将坐标点转换为ECharts可识别的格式  return track.map(function (seg) {  // 每个坐标点加上一个维度值1  return seg.coord.concat([1]);  });  })  );  // 定制配置项  // 配置项对象,用于设置地图可视化效果  option = {  animation: true, // 是否开启动画效果  bmap: { // 地图配置项  center: [106.642337,26.389193],  // 设置地图中心点坐标为贵州师范大学的位置  zoom: 14, // 地图缩放级别  roam: true // 是否开启地图漫游功能  },  visualMap: { // 可视化映射配置项  show: true, // 是否显示可视化控件  top: 'top', // 控件位置,置顶  min: 0, // 映射范围最小值  max: 5, // 映射范围最大值  seriesIndex: 0, // 关联的系列索引  calculable: true, // 是否支持计算  inRange: { // 映射范围内颜色设置  color: ['blue', 'blue', 'green', 'yellow', 'red'] // 设置不同范围的颜色  }  },  series: [ // 系列配置,用于设置热力图  {  type: 'heatmap', // 热力图类型  coordinateSystem: 'bmap', // 使用bmap坐标系  data: points, // 热力图数据点  pointSize: 5, // 点大小  blurSize: 6 // 模糊半径  }  ]  };  myChart.setOption(option);  // 添加百度地图插件  var bmap = myChart.getModel().getComponent('bmap').getBMap();  bmap.addControl(new BMap.MapTypeControl());  });  // 如果option存在,则再次设置图表选项  option && myChart.setOption(option);  </script>  
</body>  
</html>

每个具体位置的经纬度,可以通过百度地图API接口的拾取坐标系统 (baidu.com),实现GPS获取

效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/306032.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记13:RTC实时时钟

系列文章目录 嵌入式|蓝桥杯STM32G431&#xff08;HAL库开发&#xff09;——CT117E学习笔记01&#xff1a;赛事介绍与硬件平台 嵌入式|蓝桥杯STM32G431&#xff08;HAL库开发&#xff09;——CT117E学习笔记02&#xff1a;开发环境安装 嵌入式|蓝桥杯STM32G431&#xff08;…

春游江淮 请来池州 | “香隅”有约 向春而行

伴随着天气逐渐回暖,香隅镇各景点人气持续高涨,迎来了春节后的第一波客流高峰,游客们到香隅赏春光、闻花香、游景区,欣赏“香隅”有约的独特魅力。 淡黄、橙色、紫色、粉色……在香隅镇休闲农业观光园景区内,100多亩七彩油菜迎风招摇,煞是好看,不少周边游客被景区的春花绕树、绿…

Linux下记一次系统日志中大量出现Started Session * of user root 查找和解决办法

安装的纯净版centos 系统日志中大量出现出现 Started Session * of user root。系统启动会话 很多用户在会在centos服务器日志中中发现大量系统启动会话&#xff0c;有频率的出现系统日志&#xff0c;这个信息并不是报错信息&#xff0c;但是大量这个又不方便你分析日志&#…

git push报错remote: Please remove the file from history and try again

原因&#xff1a;上传文件超过100M&#xff0c;找到此文件删除即可。 1、查看是哪个文件过大&#xff0c;此处对用红框里面的 a6de1336c67c3bac77757c5eff8c8001823f7c92&#xff0c;得到具体的文件名称 git rev-list --objects --all | grep a6de1336c67c3bac77757c5eff8c80…

2024Mathorcup(妈妈杯)数学建模C题python代码+数据教学

2024Mathorcup数学建模挑战赛&#xff08;妈妈杯&#xff09;C题保姆级分析完整思路代码数据教学 C题题目&#xff1a;物流网络分拣中心货量预测及人员排班 因为一些不可抗力&#xff0c;下面仅展示部分代码&#xff08;很少部分部分&#xff09;和部分分析过程&#xff0c;其…

【opencv】示例-detect_blob.cpp

// 导入所需的OpenCV头文件 #include <opencv2/core.hpp> #include <opencv2/imgproc.hpp> #include <opencv2/highgui.hpp> #include <opencv2/features2d.hpp> // 导入向量和映射容器 #include <vector> #include <map> // 导入输入输出…

【RV1106的ISP使用记录之二】设备树的构建

基于MIPI接口的两种摄像头接入方式&#xff0c;理清楚各链路关系&#xff0c;方便后续的开发调试工作&#xff0c;先上一张图&#xff0c;后面再补充解释。

Parameter-Efficient Fine-Tuning for Large Models: A Comprehensive Survey

Parameter-Efficient Fine-Tuning for Large Models: A Comprehensive Survey PDF: https://arxiv.org/pdf/2403.14608.pdf 1 概述 大型模型在多个领域取得了显著进展&#xff0c;但它们的大规模参数带来了高昂的计算成本。这些模型需要大量资源来执行&#xff0c;尤其是在针…

强化学习基础概念入门

文章目录 1. 什么是强化学习&#xff1f;2. 强化学习的基本元素3. 相关衍生元素3.1 策略(Policy)3.2 状态转移(State Transition)3.3 回报(Return)3.4 价值函数(Value Function) 4. 算法分类4.1 按环境是否已知划分4.2 按学习方式划分4.3 按学习目标划分 参考资料 1. 什么是强化…

农业小型气象站解析

TH-NQ12农业小型气象站&#xff0c;作为现代智慧农业体系的重要组成部分&#xff0c;以其独特的优势在农业生产中发挥着不可或缺的作用。这种专为农业领域设计的小型气象站&#xff0c;不仅具备高度自动化和智能化的特点&#xff0c;而且能够实时监测和记录农田环境中的多种气象…

QT:QMainWindow、ui界面、资源文件的添加、信号和槽

1.练习&#xff1a;使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(…

[python] Numpy库用法(持续更新)

先导入一下 import numpy as np 一、np.random用法 生成随机整数&#xff1a;np.random.randint(low, high, size) low: 最小值high: 最大值size: 生成的数组大小&#xff08;可以是多维&#xff0c;下面同理&#xff09; 生成随机浮点数&#xff1a;np.random.uniform(low, …

Ubuntu 22.04进行远程桌面连接

文心一言 Ubuntu 22.04进行远程桌面连接&#xff0c;无论是连接到Windows 10还是另一个Ubuntu 22.04&#xff0c;都可以通过不同的方式实现。以下是具体的步骤&#xff1a; 连接到Windows 10 在Windows 10上开启远程桌面功能&#xff1a;首先&#xff0c;需要在Windows 10上…

ViT:拉开Trasnformer在图像领域正式挑战CNN的序幕 | ICLR 2021

论文直接将纯Trasnformer应用于图像识别&#xff0c;是Trasnformer在图像领域正式挑战CNN的开山之作。这种简单的可扩展结构在与大型数据集的预训练相结合时&#xff0c;效果出奇的好。在许多图像分类数据集上都符合或超过了SOTA&#xff0c;同时预训练的成本也相对较低   来源…

深入理解MD5算法:原理、应用与安全

title: 深入理解MD5算法&#xff1a;原理、应用与安全 date: 2024/4/11 20:55:57 updated: 2024/4/11 20:55:57 tags: MD5算法数据安全哈希函数摘要算法安全漏洞SHA算法密码学 第一章&#xff1a;引言 导言 在当今数字化时代&#xff0c;数据安全和完整性变得至关重要。消息…

【学习路径】AI入门路线分享

近期整理飞书文档&#xff0c;一些权限被关掉了。看好多人在申请访问这个飞书文档&#xff0c;于是把它单独拿出来放在CSDN上&#xff0c;供大家参考~ 原视频地址&#xff1a;AI&#xff1a;从小白到入门&#xff0c;超详细人工智能成长路径分享_哔哩哔哩_bilibili 文章目录 1.…

HarmonyOS实战开发-证书管理、如何实现对签名数据进行校验功能。

介绍 本示例使用了ohos.security.certManager相关接口实现了对签名数据进行校验的功能。 实现场景如下&#xff1a; 1&#xff09;使用正确的原始数据和签名数据进行签名校验场景&#xff1a;模拟服务端对签名数据进行校验&#xff0c;验证客户端身份和原始数据完整性。 2&…

【安装部署】国产数据库OpenGauss的安装部署以及问题排查解决(全网唯一一个解决的!含源码分析)

国产数据库OpenGauss的安装部署以及问题排查解决(含源码分析) 💖点赞超100,将取消VIP文章,免费公开 前面都是一些排除得方式,如果想知道最终的问题,可以直接切换到3.3章节 💖如果您需要这篇文章可以扫描下方的公众号二维码,私信我们,我们将帮您解答 目录 国产数…

CentOS7安装MySQL8.0教程

环境介绍 操作系统&#xff1a;Centos7.6 MySQL版本&#xff1a; 8.0.27 只要是8.0.*版本&#xff0c;那就可以按照本文说明安装 一、安装前准备 1、卸载MariaDB 安装MySQL的话会和MariaDB的文件冲突&#xff0c;所以需要先卸载掉MariaDB。 1.1、查看是否安装mariadb rpm -…

AI大模型探索之路-应用篇10:Langchain框架-架构核心洞察

目录 前言 一、LangChain设计目标 二、LangChain设计之道 三、LangChain典型应用 1、简单的问答Q&A over SQL CSV: 2、聊天机器人Chatbots: 3、总结摘要Summarization: 4、网页爬虫Web scraping: 5、本地知识库&#xff08;Q&A with RAG): 三、LangChain架构…