gpt4 book ai didi

sql-server - Sql Server 空间数据类型 Geometry、STDistance 和单位 : Get meters?

转载 作者:行者123 更新时间:2023-12-03 12:39:23 28 4
gpt4 key购买 nike

我正在使用 Sql server 2012 和谷歌地图客户端,我使用 SRID 3785,因为它是 map 使用的墨卡托。
我使用几何点数据类型来存储位置。我读几何比地理快。但是当我试图计算点之间的距离时,特别是当我使用 STDistance 时,我得到一个距离......以十进制度为单位......这很好......但我真的需要米来向用户显示它们......
因此,当您知道您的 SRID 时,当您知道您的目标准确定位在地球上的哪个位置时,您如何将十进制度的距离转换为米?
我知道地理处理米......但是你如何从几何距离计算中得到米?我真的很想知道在地理类型出现之前开发人员是怎么做的......
谢谢你 !!

最佳答案

听起来你在这里有几个问题:

首先,谷歌地图投影的正确 EPSG 代码是 3857,而不是 3785。请参阅我的博客文章 http://alastaira.wordpress.com/2011/01/23/the-google-maps-bing-maps-spherical-mercator-projection/了解代码背后相当复杂的历史。

其次,如果您正确使用该 SRS,您的坐标应该已经以米为单位。例如,伦敦大本钟的坐标(EPSG:3857)应约为 (-13900, 6710330)。如果你有像 (51.5, -0.12) 这样的坐标,那么这些是 WGS84 纬度/经度,你应该使用 SRID:4326 的地理数据类型

第三,3857 是谷歌地图用来显示空间数据的投影坐标系,但其 API 中的操作使用标准 WGS84 (SRID 4326),因此使用它来存储数据可能是有意义的。

非常简单:如果您想要以米为单位的结果,您应该使用以度为单位输入坐标的地理数据类型,或者以米为单位输入坐标的几何数据类型。

关于sql-server - Sql Server 空间数据类型 Geometry、STDistance 和单位 : Get meters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19734945/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com