将坐标从 EPSG 3857 转换为 4326

2023-11-26

我的数据库中有一个 EPSG 3857 格式的坐标列表。 我需要将它们转换为 EPSG 4326 我正在尝试使用 DotSpatial,但我的代码总是重新调整 Infinity 的双数组。

public double[] ConvertCoodinates()
    {
        double[] xy = new double[2];
        xy[0] = 5085240.8300000000;
        xy[1] = 1530088.9600000000;
    //An array for the z coordinate
        double[] z = new double[1];
        z[0] = 0;
        ProjectionInfo pStart = KnownCoordinateSystems.Geographic.World.WGS1984;
        pStart.AuthorityCode = 3857;
        ProjectionInfo pEnd = KnownCoordinateSystems.Geographic.World.WGS1984;
        pEnd.AuthorityCode = 4326;
        Reproject.ReprojectPoints(xy, z, pStart, pEnd, 0, 1);
        return xy;
    }

xy 数组始终包含无穷大; 有人能帮我吗?


最后我找到了一个数学公式来转换坐标。

我在存储过程中实现了它,因为我有一个点列表,并且该存储过程计算距离。

DECLARE @e FLOAT=2.7182818284
DECLARE @X DECIMAL(18,2) =20037508.34

SET @StartLat3857 =(SELECT TOP 1 Latitude FROM Coordinates WHERE IdCoord=@IdCoord ORDER By IdTDFPath ASC)
SET @StartLng3857=(SELECT TOP 1 Longitude FROM Coordinates WHERE IdCoord=@IdCoord ORDER By IdTDFPath ASC)

--converting the logitute from epsg 3857 to 4326
            SET @StartLng=(@StartLng3857*180)/@X

--converting the latitude from epsg 3857 to 4326
            SET @StartLat = @StartLat3857/(@X/180)
            SET @StartLat = ((ATAN(POWER(@e,((PI()/180)*@StartLat))))/(PI()/360))-90

最后只是一个可以在所有语言中使用的数学公式。例如 Javascript 将会是

const e = 2.7182818284
const X = 20037508.34

const lat3857 = 1743704.947843 
const long3857 = 16978473.105100

//converting the logitute from epsg 3857 to 4326
const long4326 = (lat3857*180)/X

//converting the latitude from epsg 3857 to 4326 split in multiple lines for readability

let lat4326 = lat3857/(X / 180)
const exponent = (Math.PI / 180) * lat4326

lat4326 = Math.atan(e ** exponent)
lat4326 = lat4326 / (Math.PI / 360)
lat4326 = lat4326 - 90
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将坐标从 EPSG 3857 转换为 4326 的相关文章

  • 混合模型优先和代码优先

    我们使用模型优先方法创建了一个 Web 应用程序 一名新开发人员进入该项目 并使用代码优先方法 使用数据库文件 创建了一个新的自定义模型 这 这是代码第一个数据库上下文 namespace WVITDB DAL public class D
  • ES6 静态方法引用 self? [复制]

    这个问题在这里已经有答案了 我有两节课 存储库和用户存储库 我想在 Repository 中定义一个静态方法 该方法在运行时调用 UserRepository 中的静态函数 有什么干净的方法可以做到这一点吗 class Repository
  • Libev,如何将参数传递给相关回调

    我陷入了 libev 中争论的境地 通常 libev 在类似的函数中接收包 接收回调 没关系 但是实际操作中 我们需要派遣一个亲戚 写回调 根据收到的包裹处理具体工作 例如 S RECV MSG pstRecvMsg S RECV MSG
  • 测量进程消耗的 CPU 时钟

    我用 C 语言编写了一个程序 它是作为研究结果创建的程序 我想计算程序消耗的确切 CPU 周期 精确的循环次数 知道我怎样才能找到它吗 The valgrind tool cachegrind valgrind tool cachegrin
  • 条件类型定义

    如果我有一小段这样的代码 template
  • C# 获取数据表中所有重复行的计数

    我通过运行存储过程来填充数据集 并且从数据集中填充数据表 DataSet RawDataSet DataAccessHelper RunProcedure storedprocedureName this will just return
  • wordexp 失败时我们需要调用 wordfree 吗?

    wordexp 失败时我们需要调用 wordfree 吗 在某些情况下 调用 wordfree 似乎会出现段错误 例如 当 wordfree 返回字符串为 foo bar 的错误代码时 这在手册页中并不清楚 我已经看到在某些错误情况下使用了
  • 如何在 Javascript 中连接 C# ActiveX 事件处理程序

    我尝试使用几个代码片段将 ActiveX 对象与 Javascript 事件处理程序挂钩 我无法确定为什么事件处理程序没有被调用 带有项目的 Github 存储库 https github com JesseKPhillips Csharp
  • Unity c# 四元数:将 y 轴与 z 轴交换

    我需要旋转一个对象以相对于现实世界进行精确旋转 因此调用Input gyro attitude返回表示设备位置的四元数 另一方面 这迫使我根据这个四元数作为默认旋转来计算每个旋转 将某些对象设置为朝上的简单方法如下 Vector3 up I
  • 让网络摄像头在 OpenCV 中工作

    我正在尝试让我的网络摄像头在 Windows 7 64 位中的 OpenCV 版本 2 2 中捕获视频 但是 我遇到了一些困难 OpenCV 附带的示例二进制文件都无法检测到我的网络摄像头 最近我发现这篇文章表明答案在于重新编译一个文件 o
  • 我们可以通过指针来改变const定义的对象的值吗?

    include
  • Javascript等待/异步执行顺序

    所以我试图把我的头脑集中在 Promise await async 上 我不明白为什么当 go 执行时 带有 finished 的警报会紧随 console log coffee 之后 当所有函数都使用等待 承诺时 为什么它只等待 getC
  • 如何使用 Javascript OAuth 库不暴露您的密钥?

    看着Twitter OAuth 库 https dev twitter com docs twitter libraries 我看到了这个注释 将 JavaScript 与 OAuth 结合使用时要小心 不要暴露你的钥匙 然后 看着jsOA
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h
  • 使用 gcc 时在头文件中查找定义的好方法是什么?

    在使用 gcc 时 有人有推荐的方法在头文件中查找定义吗 使用 MSVC 时 我只需右键单击并选择 转到定义 这非常好 我使用过 netbeans gcc 它确实有代码帮助 包括到定义的超链接 所以这是一种选择 但是 我想知道是否有任何其他
  • 在 C# 的 WebAPI 中的 ApiController 上使用“传输编码:分块”提供数据

    我需要服务分块传输使用编码数据API控制器 因为我无权访问HttpContext or the Http请求 我有点不知道在哪里写入响应以及在哪里刷新它 设置如下 public class MyController ApiControlle
  • 如何使用 jQuery 过滤 DropDownList 中的选项

    我有 2 个 DropDownList 第一个 DropDownList 有 4 个选项 第二个 DropDownList 有 20 个选项 我想要一个选项value 1在第一个 DropDownList 中选择我在第二个 DropDown
  • 在 Firestore 文本字段中存储文本文件并删除换行符

    我正在尝试将 CSV 文件存储在 Cloud Firestore 内的文本字段中 然而 Firestore 正在删除所有换行符并将整个 CSV 文件存储为一行 这Firestore 数据类型文档 https firebase google
  • 如何在 C# 中获取 CMD/控制台编码

    我需要指定正确的代码页来使用 zip 库打包文件 正如我所见 我需要指定控制台编码 在我的例子中为 866 C Users User gt mode Status for device CON Lines 300 Columns 130 K
  • 如何为有时异步的操作创建和实现接口

    假设我有数百个类 它们使用 计算 方法实现公共接口 一些类将执行异步 例如读取文件 而实现相同接口的其他类将执行同步代码 例如将两个数字相加 为了维护和性能 对此进行编码的好方法是什么 到目前为止我读到的帖子总是建议将异步 等待方法冒泡给调

随机推荐

  • 龙卷风中可以并发吗?

    我知道龙卷风是一个单线程和非阻塞服务器 因此请求是按顺序处理的 除非使用事件驱动方法进行 IO 操作 有没有办法在tornado中并行处理多个请求以进行正常 非IO 执行 我无法分叉多个进程 因为我需要跨请求的公共内存空间 如果不可能 请向
  • 如何以独立模式更轻松地将我的 Jar 部署到 Spark 集群?

    我有一个包含 3 台机器的小型集群 还有另一台用于开发和测试的机器 开发的时候我设置了SparkContext to local 当一切正常后 我想将我构建的 Jar 文件部署到每个节点 基本上我手动将这个 jar 移动到集群并复制到集群共
  • Angular 6 + Spring Boot:错误:“来自原点‘http://localhost:4200’已被 CORS 策略阻止”

    我正在尝试将 Angular 6 项目与 Spring Boot 应用程序连接 当我运行 Angular 项目时 尽管我已经安装了所有依赖项和导入 但它不断出现此错误 我在控制器类中使用了以下代码行 CrossOrigin 起源 http
  • Rails 3 路由堆栈级别设计太深

    我收到有关我的路线文件的错误 SystemStackError stack level too deep actionpack 3 2 8 lib action dispatch middleware reloader rb 70 Rend
  • 使用jQuery隐藏div滚动条,但保留滚动?

    我试图能够在一个 div 内滚动 但不显示实际的滚动条 我需要用户能够使用滚轮滚动 有人对我如何实现这一目标有想法吗 Thanks 好吧 真正的原因是你想要这个 但既然你问了 我会尽力解决你的问题 你将需要两个 div 一个嵌套在另一个里面
  • 将 Color 作为字符串(如 #XXXXXX)转换为 System.Windows.Media.Brush 的最简单方法

    我觉得标题已经说得很清楚了 我现在拥有的是 System Drawing Color uiui System Drawing ColorTranslator FromHtml myString var intColor uint uiui
  • 使用 Unicode 数据加载FromFile

    我的输入文件 f 有一些无法正确读取的Unicode 瑞典语 这些方法都不起作用 尽管它们给出了不同的结果 LoadFromFile f or LoadFromFile f TEncoding GetEncoding GetOEMCP 我正
  • 在Python中查找列表中所有单词的字符数

    我试图找到单词列表中的字符总数 特别是这个列表 words alpha omega up down over under purple red blue green 我尝试过这样做 print The size of the words i
  • 以编程方式禁用应用程序中的屏幕截图

    我想防止在应用程序中截取页面的屏幕截图 如何以编程方式执行此操作 以便无法截取屏幕截图 找到检测屏幕截图的代码 截图后可以立即删除吗 let mainQueue NSOperationQueue mainQueue NSNotificati
  • Eclipse 不会让我的应用程序运行

    我正在尝试在手机上安装我制作的应用程序 但我不断收到错误 Installation error INSTALL PARSE FAILED NO CERTIFICATES 我正在使用 Eclipse 我以前从未见过这个问题 我已经在手机上运行
  • 使用附加文件在 YARN 集群上运行 Spark 作业

    我正在编写一个简单的 Spark 应用程序 它使用一些输入 RDD 通过管道将其发送到外部脚本 并将该脚本的输出写入文件 驱动程序代码如下所示 val input args 0 val scriptPath args 1 val outpu
  • 如何从状态数组中删除一个项目?

    故事是 我应该能够把鲍勃 莎莉和杰克放进一个盒子里 我也可以从盒子中取出其中一个 移除后 不会留下任何插槽 people Bob Sally Jack 我现在需要删除 Bob 新的数组将是 Sally Jack 这是我的反应组件 getIn
  • 在 Go 中升级到 TLS 的连接

    我有一个打开的 TCP 连接 并使用 for 循环从中读取内容 如下所示 for tx Text is of type textproto Conn the underlying connection is stored in tx Con
  • Python 字符串末尾有空格和无空格以及不变性

    我了解到在一些不可变的类中 new 可能会返回一个现有的实例 这就是int str and tuple类型有时适用于小值 但为什么以下两个片段的行为不同呢 末尾有一个空格 gt gt gt a string gt gt gt b strin
  • 如何在 Excel 2007 中从 VBA 访问复选框

    添加复选框时 如何从 VBA 访问该值 在 Excel 2007 中 在开发人员功能区上 插入 表单控件 复选框 将复选框重命名为 chkMyCheck 将宏添加到复选框 我现在有带有 chkMyCheck Clicked 的 Module
  • 超出 UIView 范围的交互

    当 UIButton 的框架位于其父级框架之外时 UIButton 或任何其他控件 是否可以接收触摸事件 因为当我尝试这个时 我的 UIButton 似乎无法接收任何事件 我该如何解决这个问题 是的 您可以覆盖hitTest withEve
  • 在 iOS 中处理不同的 URL 方案(Facebook 和 Instagram)

    我什至不知道如何定义这个问题 但它就是这样 我有一个使用 Facebook SDK 进行用户登录的应用程序 我按照 Facebook 授权教程进行操作 我不是 100 确定它是如何工作的 但这部分在我的 AppDelegate m 中似乎很
  • 如何将浮点数转换或转换为其位序列,例如长整型

    再会 我在 16 位 C 环境中工作 我想将浮点值转换为其位序列 例如整数值 我知道有多种方法可以实现这一目标 一种是通过工会 另一种是通过工会 例如 union ConvertFloatToInt float input unsigned
  • .NET4.0 不完全支持 EF 5 是否存在技术原因?

    我想将我的应用程序升级到 EF 5 以利用对枚举空间的支持等功能 但是 除非迁移到 Net 4 5 否则我无法升级 我想知道 EF 5 使用了 Net 4 5 的哪些功能而在 Net 4 0 中无法实现 我的理解是 EF gt 4 1 包括
  • 将坐标从 EPSG 3857 转换为 4326

    我的数据库中有一个 EPSG 3857 格式的坐标列表 我需要将它们转换为 EPSG 4326 我正在尝试使用 DotSpatial 但我的代码总是重新调整 Infinity 的双数组 public double ConvertCoodin