红心向阳 百鸟朝凤
背景
最近在玩 folium 模块,基于使用过程中的一些个人体验,对 folium 进行了二次封装,开源在 GpsAndMap.在使用的过程中,发现在地图上打图标是可以进行旋转的。遇到就发现了一些有意思的玩法。
隔海的相望
下面的代码在地图 厦门市 和 台北市 位置添加了箭头的图标。
# -*- coding:UTF-8 -*-# region 引入必要依赖
from GpsAndMap.MapModule import *# endregion地图 = 地图类().添加瓦片.高德地图().地图图层 = 地图.添加图层('我有红心向太阳')地图.添加标记(图层, 图标标记类(位置=常用坐标.厦门市, 图标='glyphicon-arrow-right'))
地图.添加标记(图层, 图标标记类(位置=常用坐标.台北市, 图标='glyphicon-arrow-right'))地图.保存html(目标路径='.').打开()
👆上图中,我们可以看到在厦门和台北的两个图标,其箭头都是朝东的,如何让他们相望呢?
👇下面的代码在图标样式中加了旋转参数,将台北的图标旋转180度,看下效果。
# -*- coding:UTF-8 -*-# region 引入必要依赖
from GpsAndMap.MapModule import *# endregion地图 = 地图类().添加瓦片.高德地图().地图图层 = 地图.添加图层('我有红心向太阳')地图.添加标记(图层, 图标标记类(位置=常用坐标.厦门市, 图标='glyphicon-arrow-right'))
地图.添加标记(图层, 图标标记类(位置=常用坐标.台北市, 图标=图标样式类(名称='glyphicon-arrow-right', 角度_度=180)))地图.保存html(目标路径='.').打开()
👆上图中,台北市的图标的箭头,指向了大陆,但是没有指向厦门方向。
👇下面的代码,我们在厦门和台北之间连一条线,做为参考线。
# -*- coding:UTF-8 -*-# region 引入必要依赖
from GpsAndMap.MapModule import *# endregion地图 = 地图类().添加瓦片.高德地图().地图图层 = 地图.添加图层('我有红心向太阳')地图.添加标记(图层, 图标标记类(位置=常用坐标.厦门市, 图标='glyphicon-arrow-right'))
地图.添加标记(图层, 图标标记类(位置=常用坐标.台北市, 图标=图标样式类(名称='glyphicon-arrow-right', 角度_度=180)))地图.添加标记(图层, 折线类(点序列=[常用坐标.厦门市, 常用坐标.台北市]))地图.保存html(目标路径='.').打开()
👆上图中,我们看到厦门的图标指向台弯,台弯的图标指向大陆,但都没有指向彼此的方向。
角度的计算
我们又知道,图标的方向可以通过参数角度_度来进行控制,那么如何知道厦门在台北的哪个方位呢?反过来,如何知道厦门在台北的哪个方位呢?
GpsAndMap模块的 GpsModule 模块内的 GPS坐标类,为我们提供了计算两个GPS坐标点之间相对方位角的方法。
👇下面的代码中,我们基于厦门市的坐标计算了台北位置的方位
# -*- coding:UTF-8 -*-# region 引入必要依赖
from GpsAndMap.MapModule import *# endregion# 计算以厦门位置为原点,纬度正东为正,逆时针方向为正的坐标下,北台所在的方位角
print(常用坐标.厦门市.倾角(常用坐标.台北市).墨卡托倾角deg)
👆面的代码告诉我们,台北在厦门的东方偏北10.236476087381755度角的位置。
👇下面的代码,基于上述角度计算的方法,使厦门和台北进入相望状态。
# -*- coding:UTF-8 -*-# region 引入必要依赖
from GpsAndMap.MapModule import *# endregion地图 = 地图类().添加瓦片.高德地图().地图图层 = 地图.添加图层('我有红心向太阳')地图.添加标记(图层, 图标标记类(位置=常用坐标.厦门市, 图标=图标样式类(名称='glyphicon-arrow-right', 角度_度=-常用坐标.厦门市.倾角(常用坐标.台北市).墨卡托倾角deg)))
地图.添加标记(图层, 图标标记类(位置=常用坐标.台北市, 图标=图标样式类(名称='glyphicon-arrow-right', 角度_度=-常用坐标.台北市.倾角(常用坐标.厦门市).墨卡托倾角deg)))地图.添加标记(图层, 折线类(点序列=[常用坐标.厦门市, 常用坐标.台北市]))地图.保存html(目标路径='.').打开()
👆上图中,我们看到厦门和台北的图标箭头彼此指向对方,相互守望。
红心向阳
有了以上关于图标角度的控制方案,时值国庆在即,我们将之前 GpsModule 模块中收集的常用地市的坐标标记在地图中,使用红心做为图标,控制红心的旋转角度,就可以轻松实现将所有的红心的方向都指向北京市的效果,红心向阳,百鸟朝凤。
# -*- coding:UTF-8 -*-# region 引入必要依赖
from GpsAndMap.MapModule import *# endregion地图 = 地图类().添加瓦片.高德地图().地图图层 = 地图.添加图层('我有红心向太阳')北京坐标 = 常用坐标.北京市地图.添加基地(图标标记类(位置=北京坐标, 图标=图标样式类(名称='glyphicon-star', 颜色=颜色名.红)))图标层 = 地图.添加图层('万众归心', 默认显示=True)for 城市, 坐标 in 常用坐标.常用坐标字典.items():if 坐标.有效 and 城市 != '北京市' and 城市[-1] in ['市', '州']:图标 = 图标标记类(位置=坐标, 图标=图标样式类(名称='glyphicon-heart-empty', 颜色=颜色名.浅红, 角度_度=-坐标.倾角(北京坐标).墨卡托倾角deg+90), 消息=城市)地图.添加标记(图标层, 标记点=图标)地图.保存html(文档名='我有红心向太阳', 目标路径='.').打开()
以上代码生成的html文档见:红心向阳 百鸟朝凤, 提取码:nn5k
上图中,我们可以看到,每一个红心的心口,均朝向北京市方向。
小结
以上便是今天分享的 红心向阳,百鸟朝凤 效果了。
相关文章:

红心向阳 百鸟朝凤
背景 最近在玩 folium 模块,基于使用过程中的一些个人体验,对 folium 进行了二次封装,开源在 GpsAndMap.在使用的过程中,发现在地图上打图标是可以进行旋转的。遇到就发现了一些有意思的玩法。 隔海的相望 下面的代码在地图 厦…...
C语言自己实现一个memcpy函数
目录 按字节拷贝实现memcpy按4字节拷贝实现memcpyTips 在 C 语言中,我们可以自己实现 memcpy 函数来实现内存数据的拷贝操作。memcpy 函数用于将指定长度的数据从源地址复制到目标地址。 按字节拷贝实现memcpy #include <stdio.h>void* my_memcpy_byte(void*…...

C#教师考勤管理系统asp.net+sqlserver
3.3.1 员工部分 1:请假管理:包括填写请假条,提交申请,查看审批,审核请假等等。 2:考勤管理:针对具体的员工考勤的统计等管理。 3:个人资料管理:进行个人信息管理…...

Nginx代理配置详解
一、什么是代理 1、正向代理(forward proxy) 正向代理,简单的说就像是一个跳板,它隐藏了真实的请求客户端(IP),服务端不知道真实的客户端是谁,客户端请求的服务都由代理服务器来代替请求。 举个例子来说…...
DAG 的深度优先搜索标记
/**\ | DAG 的深度优先搜索标记 | INIT: edge[][] 邻接矩阵 ; pre[], post[], tag 全置 0; | CALL: dfstag(i, n); pre/post: 开始 / 结束时间 \**/ int edge[V][V], pre[V], post[V], tag; void dfstag( int cur, int n) { // vertex: 0 ~ n-1 pre[cur] tag; for…...

网络存储解决方案:选择与配置
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...
java中BigDecimal除法运算指定小数点保留位数和取舍规则
java中使用BigDecimal进行相除运算时,为了避免抛出ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result。最好指定小数点保留位数和取舍规则。 取舍规则 ROUND_CEILING: 舍位时向正无穷方向取值。即:向上取…...

车联网远程监控管理提升车辆调度效率,实现高效运营
随着智慧城市建设与物联网技术发展,车辆使用4G工业路由器网络实现车联网,并对车上视频监控、GPS定位以及温湿度传感器等信息进行数据采集和实时传输。这些数据的采集和监测将通过4G网络上传到管理平台,为车辆调度和运行效率的优化提供了有力的…...

数据治理-数据建模和设计
定义 发现、分析和确定数据需求的过程,用一种称为数据模型的精确形式表示和传递这些数据需求。过程是循环迭代的,可能包括概念、逻辑和物理模型。 常见的6种数据模型 关系模式、多维模式、面向对象模式、事实模式、时间序列模式、NoSQL模式。根据描述详…...

博客系统(升级(Spring))(四)(完)基本功能(阅读,修改,添加,删除文章)(附带项目)
博客系统 (三) 博客系统博客主页前端后端个人博客前端后端显示个人文章删除文章 修改文章前端后端提取文章修改文章 显示正文内容前端后端文章阅读量功能 添加文章前端后端 如何使用Redis项目地点: 博客系统 博客系统是干什么的? CSDN就是一…...

常用的辅助类(必会)
1.CountDownLatch package com.kuang.add;import java.util.concurrent.CountDownLatch;//计数器 减法 public class CountDownLatchDemo {public static void main(String[] args) throws InterruptedException {//总数是6,必须要执行任务的时候,再使用…...

Java常用类之 String、StringBuffer、StringBuilder
Java常用类 文章目录 一、字符串相关的类1.1、String的 不可变性1.2、String不同实例化方式的对比1.3、String不同拼接操作的对比1.4、String的常用方法1.5、String类与其他结构之间的转换1.5.1、String 与基本数据类型、包装类之间的转换1.5.2、String 与char[]的转换1.5.3、…...
linux在所有文件中查找某一个字符串
linux在所有文件中查找某一个字符串 有时候我们需要在大量文件中查找某一个字符串,手工一个一个打开文件查找非常耗时,我们可以使用 find 和 xargs 两个命令来实现查找指定字符串。 命令详解 find <directory> -type f -name "*.c" |…...
WebSocket vs SSE: 实时数据推送到前端的选择与实现(详细)
Websocket和Server-Sent Events 对比推送数据给前端及各自的实现 二者对比WebSocket:Server-Sent Events (SSE):选择 WebSocket 还是 SSE: Websocket 实现使用原生 WebSocket API:使用 Netty 创建 WebSocket:总结和选择…...

Redis从入门到精通(二:数据类型)
数据存储类型介绍 Redis 数据类型(5种常用) string hash list set sorted_set/zset(应用性较低) redis 数据存储格式 redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储 数据类型指的是存储的数据…...

基于SSM的珠宝首饰交易平台
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...

4款视频号数据分析平台!
很多人在做视频号的时候就会有创作参考的需求,那么你们知道视频号中有哪些数据平台?今天就和大家来分享一下 接下来就总结一下视频号数据平台有哪些?排名不分前后。 1:视频号助手(channels.weixin.qq.com)…...

【系统架构】什么是集群?为什么要使用集群架构?
什么是集群?为什么要使用集群架构? 1.什么是集群?2.为什么要使用集群?2.1 高性能2.2 价格有效性2.3 可伸缩性2.4 高可用性2.5 透明性2.6 可管理性2.7 可编程性 3.集群的常见分类3.1 负载均衡集群3.2 高可用性集群3.3 高性能计算集…...
Java手写拓扑排序和拓扑排序应用拓展案例
Java手写拓扑排序和拓扑排序应用拓展案例 1. 算法思维导图 #mermaid-svg-o8KpEXzxukfDM8c9 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-o8KpEXzxukfDM8c9 .error-icon{fill:#552222;}#mermaid-svg-o8KpEXzxukfD…...

练习:使用servlet显示试卷页面
试卷页面代码 在浏览器输入如下地址: http://localhost/examPageServlet 效果如下:...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...

Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...