将坐标从 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 的相关文章

  • Firefox 书签探索未超过 Javascript 的第一级

    我已经编写了一些代码来探索我的 Firefox 书签 但我只获得了第一级书签 即我没有获得文件夹中的链接 e g 搜索引擎 雅虎网站 谷歌网站 在此示例中 我只能访问 Search engines 和 google com 不能访问 yah
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • Qt - ubuntu中的串口名称

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • 为什么我不能在 AngularJS 中使用 data-* 作为指令的属性名称?

    On the t他的笨蛋 http plnkr co edit l3KoY3 p preview您可以注意到属性名称模式的奇怪行为data 在指令中 电话 Test of data named attribute br
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • JQuery 图像上传不适用于未来的活动

    我希望我的用户可以通过帖子上传图像 因此 每个回复表单都有一个上传表单 用户可以通过单击上传按钮上传图像 然后单击提交来提交帖子 现在我的上传表单可以上传第一个回复的图像 但第二个回复的上传不起作用 我的提交过程 Ajax 在 php 提交
  • 如何仅在最后一个
  • 处给出透明六边形角度?
  • 我必须制作这样的菜单 替代文本 http shup com Shup 330421 1104422739 My Desktop png http shup com Shup 330421 1104422739 My Desktop png
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 使用 Ajax 请求作为源数据的 Jquery 自动完成搜索

    我想做的事 我想使用 jquery 自动完成函数创建一个输入文本字段 该函数从跨域curl 请求获取源数据 结果应该与此示例完全相同 CSS 在这里并不重要 http abload de img jquerydblf5 png http a
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • Oracle Data Provider for .NET 不支持 Oracle 19.0.48.0.0

    我们刚刚升级到 Oracle 19c 19 3 0 所有应用程序都停止工作并出现以下错误消息 Oracle Data Provider for NET 不支持 Oracle 19 0 48 0 0 我将 Oracle ManagedData
  • fullCalendar 未显示正确的结束日期

    我正在看调试页面 http jsbin com wukofacaxu edit js outputFullCalendar 官方网站的 我想安排一个活动时间为 22 09 2015 至 30 09 2015 dd mm yyyy 但它只显示

随机推荐

  • 龙卷风中可以并发吗?

    我知道龙卷风是一个单线程和非阻塞服务器 因此请求是按顺序处理的 除非使用事件驱动方法进行 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