当前位置: 首页 > article >正文

【.net core】天地图坐标转换为高德地图坐标(WGS84 坐标转 GCJ02 坐标)

 类文件

public static class WGS84ToGCJ02Helper
{// 定义一些常量private const double PI = 3.14159265358979324;private const double A = 6378245.0;private const double EE = 0.00669342162296594323;// 判断坐标是否在中国范围内(不在国内则不进行转换)private static bool OutOfChina(double lng, double lat){return (lng < 72.004 || lng > 137.8347) ||(lat < 0.8293 || lat > 55.8271);}// 转换纬度private static double TransformLat(double x, double y){double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.Sqrt(Math.Abs(x));ret += (20.0 * Math.Sin(6.0 * x * PI) + 20.0 * Math.Sin(2.0 * x * PI)) * 2.0 / 3.0;ret += (20.0 * Math.Sin(y * PI) + 40.0 * Math.Sin(y / 3.0 * PI)) * 2.0 / 3.0;ret += (160.0 * Math.Sin(y / 12.0 * PI) + 320 * Math.Sin(y * PI / 30.0)) * 2.0 / 3.0;return ret;}// 转换经度private static double TransformLng(double x, double y){double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.Sqrt(Math.Abs(x));ret += (20.0 * Math.Sin(6.0 * x * PI) + 20.0 * Math.Sin(2.0 * x * PI)) * 2.0 / 3.0;ret += (20.0 * Math.Sin(x * PI) + 40.0 * Math.Sin(x / 3.0 * PI)) * 2.0 / 3.0;ret += (150.0 * Math.Sin(x / 12.0 * PI) + 300.0 * Math.Sin(x / 30.0 * PI)) * 2.0 / 3.0;return ret;}// WGS84 转 GCJ02public static (double lng, double lat) Wgs84ToGcj02(double wgsLng, double wgsLat){if (OutOfChina(wgsLng, wgsLat)){return (wgsLng, wgsLat);}double dLat = TransformLat(wgsLng - 105.0, wgsLat - 35.0);double dLng = TransformLng(wgsLng - 105.0, wgsLat - 35.0);double radLat = wgsLat / 180.0 * PI;double magic = Math.Sin(radLat);magic = 1 - EE * magic * magic;double sqrtMagic = Math.Sqrt(magic);dLat = (dLat * 180.0) / ((A * (1 - EE)) / (magic * sqrtMagic) * PI);dLng = (dLng * 180.0) / (A / sqrtMagic * Math.Cos(radLat) * PI);double mgLat = wgsLat + dLat;double mgLng = wgsLng + dLng;return (mgLng, mgLat);}
}

调用

        // 示例:北京天安门的 WGS84 坐标double wgsLng = 116.397228;double wgsLat = 39.907501;// 转换为 GCJ02 坐标var gcjCoord = WGS84ToGCJ02Helper.Wgs84ToGcj02(wgsLng, wgsLat);Console.WriteLine($"WGS84 坐标: ({wgsLng}, {wgsLat})");Console.WriteLine($"GCJ02 坐标: ({gcjCoord.lng}, {gcjCoord.lat})");

相关文章:

【.net core】天地图坐标转换为高德地图坐标(WGS84 坐标转 GCJ02 坐标)

类文件 public static class WGS84ToGCJ02Helper {// 定义一些常量private const double PI 3.14159265358979324;private const double A 6378245.0;private const double EE 0.00669342162296594323;// 判断坐标是否在中国范围内&#xff08;不在国内则不进行转换&#x…...

Linux操作系统故障应急场景及对应排查方法

001&#xff1a;系统CPU负载高并触发监控报警 005 查看系统CPU使用情况,&#xff0c;确认CPU数量&#xff0c;确认系统负载&#xff0c;确认CPU高对系统的影响 006 定位占用CPU资源最多的进程&#xff0c;根据进程判断是应用进程还是系统进程还是第三方工具进程。 014 查看…...

电镀机的阳极是什么材质?

知识星球&#xff08;星球名&#xff1a;芯片制造与封测技术社区&#xff0c;点击加入&#xff09;里的学员问&#xff1a;电镀的阳极有什么讲究&#xff1f;什么是可溶性阳极和非可溶性阳极&#xff1f; 什么是可溶性阳极与非可溶性阳极&#xff1f; 可溶性阳极 阳极本身就是…...

vscode调试deepspeed的方法之一(无需调整脚本)

现在deepspeed的脚本文件是&#xff1a; # 因为使用 RTX 4000 系列显卡时&#xff0c;不支持通过 P2P 或 IB 实现更快的通信宽带&#xff0c;需要设置以下两个环境变量 # 禁用 NCCL 的 P2P 通信&#xff0c;以避免可能出现的兼容性问题 export NCCL_P2P_DISABLE"1" …...

神经网络-Day44

import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pyplot as plt# 设置中文字体支持 plt.rcParams["font.family"] ["SimHei"…...

创客匠人:如何通过精准定位实现创始人IP打造与知识变现

在当今知识经济时代&#xff0c;越来越多的专业人士希望通过个人品牌实现知识变现&#xff0c;但许多人面临一个共同困境&#xff1a;明明很努力&#xff0c;却收效甚微。创客匠人作为深耕知识付费赛道9年的专业机构&#xff0c;揭示了这一现象背后的关键原因——90%的IP失败源…...

Codeforces Round 509 (Div. 2) C. Coffee Break

题目大意&#xff1a; 给你n、m、d n为元素个数,m为数列长度,d为每个元素之间的最短间隔 问最少需要多少个数列可以使得元素都能装进数列&#xff0c;并且满足每个元素之间的间隔大于等于d 核心思想 使用贪心的思想&#xff0c;将元素的大小进行排序&#xff0c;问题出在必…...

榕壹云健身预约系统:多门店管理的数字化解决方案(ThinkPHP+MySQL+UniApp实现)

随着全民健身热潮的兴起&#xff0c;传统健身房在会员管理、课程预约、多门店运营等方面面临诸多挑战。针对这一需求&#xff0c;我们开发了一款基于ThinkPHPMySQLUniApp的榕壹云健身预约系统&#xff0c;为中小型健身机构及连锁品牌提供高效、灵活的数字化管理工具。本文将详细…...

QUIC——UDP实现可靠性传输

首先我们要知道TCP存在什么样的痛点问题 TCP的升级很困难TCP建立连接的延迟网络迁移需要重新建立连接TCP存在队头阻塞问题 QUIC就是为了解决以上的问题而诞生了, 下面我会介绍QUIC的一些特性和原理 QUIC对比TCP优势: 握手建连更快 QUIC内部包含了TLS, 它在自己的帧会携带TL…...

提高Python编程效率的工具推荐

在 Python 开发中&#xff0c;选择合适的工具可以显著提升编程效率。以下是一些经过精心挑选的工具&#xff0c;涵盖代码编辑、调试、数据分析等多个方面&#xff0c;希望能帮助你在 Python 开发中事半功倍。 一、集成开发环境&#xff08;IDE&#xff09; 1. PyCharm PyCha…...

React Native图片预加载:让你的应用图片预览像德芙一样丝滑

写在前面:一张图片引发的性能血案 你有没有遇到过这种情况?——用户疯狂滑动你的React Native图片列表,结果图片加载慢得像蜗牛,甚至出现空白闪烁?等到图片终于加载出来,用户早就失去耐心,愤然退出…… 但你知道吗?这个问题只需要几行代码就能解决! 比如,使用reac…...

快速上手shell脚本运行流程控制

一、条件运行流程控制 1.if单分支结构 #!/bin/bash if [ 条件 ] then动作1动作2... fi 2.if双分支结构 ​ #!/bin/bash if [ 条件 ] then动作1动作2... else动作1动作2... fi​ 3.if多分支结构 二、循环运行流程控制 1.无判定for循环 给网卡一键添加5个IP 2.判断循环 while…...

10.Linux进程信号

1. 理解信号 信号VS信号量 老婆&#xff1a;老婆饼-》没有任何关系&#xff01;信号&#xff1a;闹钟&#xff0c;上课铃声&#xff0c;脸色...人-》进程&#xff1b;信号中断人正在做的事&#xff0c;是一种事件的异步通知机制&#xff1b; 我们自习一会&#xff0c;等张三回…...

Python 函数全攻略:函数基础

函数&#xff08;Functions&#xff09;基础 什么是函数&#xff1f; 一个命名的代码块&#xff0c;代指一大堆代码。 定义&#xff1a; def function_name(): (使用def关键字&#xff0c;英文括号&#xff0c;冒号&#xff0c;缩进代码块)。 执行/调用&#xff1a; function…...

机器学习基础(四) 决策树

决策树简介 决策树结构&#xff1a; 决策树是一种树形结构&#xff0c;树中每个内部节点表示一个特征上的判断&#xff0c;每个分支代表一个判断结果的输出&#xff0c;每个叶子节点代表一种分类结果 决策树构建过程&#xff08;三要素&#xff09;&#xff1a; 特征选择 选…...

DDPM优化目标公式推导

DDPM优化目标公式推导 DDPM优化目标公式推导**1. 问题定义****2. 优化目标&#xff1a;最大化对数似然****3. 变分下界的分解****4. 关键步骤&#xff1a;简化 KL 散度项****(a) 后验分布 q ( x t − 1 ∣ x t , x 0 ) q(\mathbf{x}_{t-1} | \mathbf{x}_t, \mathbf{x}_0) q(xt…...

CentOS 7如何编译安装升级gcc至7.5版本?

CentOS 7如何编译安装升级gcc版本? 由于配置CentOS-SCLo-scl.repo与CentOS-SCLo-scl-rh.repo后执行yum install -y devtoolset-7安装总是异常&#xff0c;遂决定编译安装gcc7.5 # 备份之前的yum .repo文件至 /tmp/repo_bak 目录 mkdir -p /tmp/repo_bak && cd /etc…...

为什么React列表项需要key?(React key)(稳定的唯一标识key有助于React虚拟DOM优化重绘大型列表)

文章目录 1. **帮助 React 识别列表项的变化**2. **性能优化**3. **避免组件状态混乱**4. **为什么使用 rpid 作为 key**5. **不好的做法示例**6. **✅ 正确的做法** 在 React 中添加 key{item.rpid} 是非常重要的&#xff0c;主要有以下几个原因&#xff1a; 1. 帮助 React 识…...

Playwright自动化测试全栈指南:从基础到企业级实践(2025终极版)

引言 在Web应用复杂度指数级增长的今天,传统自动化测试工具面临​​动态渲染适配难​​、​​多浏览器兼容差​​、​​测试稳定性低​​三大挑战。微软开源的Playwright凭借​​跨浏览器支持​​、​​自动等待机制​​和​​原生异步架构​​,成为新一代自动化测试的事实标…...

飞牛云一键设置动态域名+ipv6内网直通访问内网的ssh服务-家庭云计算专家

IPv6访问SSH的难点与优势并存。难点主要体现在网络环境支持不足&#xff1a;部分ISP未完全适配IPv6协议&#xff0c;导致客户端无法直接连通&#xff1b;老旧设备或工具&#xff08;如Docker、GitHub&#xff09;需额外配置才能兼容IPv6&#xff0c;技术门槛较高&#xff1b;若…...

虚实共生时代的情感重构:AI 恋爱陪伴的崛起、困局与明日图景

一、虚拟恋人&#xff1a;从技术幻想到情感刚需的跨越 在 5G 网络编织的数字浪潮里&#xff0c;AI 驱动的虚拟恋人正打破次元界限。深度学习算法剖析 3000 万段真实对话语料库&#xff0c;搭配 VR 设备带来的多维度交互体验&#xff0c;如今的虚拟对象已能精准模拟瞳孔微表情&…...

嵌入式面试高频(5)!!!C++语言(嵌入式八股文,嵌入式面经)

一、C有几种传值方式之间的区别 一、值传递&#xff08;Pass by Value&#xff09; 机制&#xff1a;创建参数的副本&#xff0c;函数内操作不影响原始数据语法&#xff1a;void func(int x)特点&#xff1a; 数据安全&#xff1a;原始数据不受影响性能开销&#xff1a;需要复…...

C++动态规划-线性DP

这是一套C线性DP题目的答案。如果需要题目&#xff0c;请私信我&#xff0c;我将会更新题干 P1:单子序列最大和 #include <bits/stdc.h> using namespace std; int n,A,B,C; int a[200005]; int s[200005]; int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)…...

Java高级 | 【实验七】Springboot 过滤器和拦截器

隶属文章&#xff1a;Java高级 | &#xff08;二十二&#xff09;Java常用类库-CSDN博客 系列文章&#xff1a;Java高级 | 【实验一】Springboot安装及测试 |最新-CSDN博客 Java高级 | 【实验二】Springboot 控制器类相关注解知识-CSDN博客 Java高级 | 【实验三】Springboot 静…...

es地理信息索引的类型以及geo_point‌和geo_hash的关系

Elasticsearch中地理信息索引的主要数据类型有两种&#xff1a; geo_point&#xff1a;用于存储单个地理点坐标&#xff08;如纬度/经度&#xff09;&#xff0c;支持精确位置查询和基于距离的搜索操作。geo_shape&#xff1a;用于存储复杂的地理形状&#xff08;如点、线、多…...

深入理解 Spring IOC:从概念到实践

目录 一、引言 二、什么是 IOC&#xff1f; 2.1 控制反转的本质 2.2 类比理解 三、Spring IOC 的核心组件 3.1 IOC 容器的分类 3.2 Bean 的生命周期 四、依赖注入&#xff08;DI&#xff09;的三种方式 4.1 构造器注入 4.2 Setter 方法注入 4.3 注解注入&#xff08;…...

Vue解决开发环境 Ajax 跨域问题

一、前言 在使用 Vue 进行前后端分离开发时&#xff0c;前端通常运行在本地开发服务器&#xff08;如 http://localhost:8080&#xff09;&#xff0c;而后端接口可能部署在其他域名或端口下&#xff08;如 http://api.example.com:3000&#xff09;。这时就可能出现 跨域&…...

行为设计模式之Command (命令)

行为设计模式之Command &#xff08;命令&#xff09; 前言&#xff1a; 需要发出请求的对象&#xff08;调用者&#xff09;和接收并执行请求的对象&#xff08;执行者&#xff09;之间没有直接依赖关系时。比如遥控器 每个按钮绑定一个command对象&#xff0c;这个Command对…...

若依添加添加监听容器配置(删除键,键过期)

1、配置Redis的键触发事件 # 基础配置 bind 0.0.0.0 # 允许所有IP连接 protected-mode no # 关闭保护模式&#xff08;生产环境建议结合密码使用&#xff09; port 6379 # 默认端口 daemonize no …...

NeRF 技术深度解析:原理、局限与前沿应用探索(AI+3D 产品经理笔记 S2E04)

引言&#xff1a;光影的魔法师——神经辐射场概览 在前三篇笔记中&#xff0c;我们逐步揭开了 AI 生成 3D 技术的面纱&#xff1a;从宏观的驱动力与价值&#xff08;S2E01&#xff09;&#xff0c;到主流技术流派的辨析&#xff08;S2E02&#xff09;&#xff0c;再到实用工具的…...