Postgresql 我的应用程序应该使用什么SRID?如何使用?

Postgresql 我的应用程序应该使用什么SRID?如何使用?,postgresql,gis,postgis,Postgresql,Gis,Postgis,我正在使用PostgreSQL和PostGIS。我的所有数据都已附加十进制lat/long(即-87.34554 33.12321),但要使用PostGIS,我需要将其转换为特定类型的SRID。 我的大多数查询都是在某个半径内查找数据 我应该使用什么SRID?我已经创建了一个SRID4269的几何体列。 在本例中: 作者正在将SRID4269转换为SRID32661。我对如何以及何时使用这些SRID感到非常困惑。对这个问题的任何浅显的评论都将不胜感激 看看这个问题: 这只是将WKT存储在数据库中

我正在使用PostgreSQL和PostGIS。我的所有数据都已附加十进制lat/long(即-87.34554 33.12321),但要使用PostGIS,我需要将其转换为特定类型的SRID。 我的大多数查询都是在某个半径内查找数据

我应该使用什么SRID?我已经创建了一个SRID4269的几何体列。 在本例中:
作者正在将SRID4269转换为SRID32661。我对如何以及何时使用这些SRID感到非常困惑。对这个问题的任何浅显的评论都将不胜感激

看看这个问题:

这只是将WKT存储在数据库中的一种方式(您可能已经注意到,尽管您存储了lat/long点,但首选的存储方式是带有数字和大写字母的长字符串)

对于国家/州/地区,SRID或可不同。。。虽然有一些非常常见的,特别是你提到的2。如果您需要特定的信息什么地区使用什么SRID,有一个


在数据库中,您有一个表
spatial\u ref\u sys
,其中包含SRID PostGIS所知道的信息。

只要您不打算将数据重新投影/转换到另一个坐标系,从技术上讲,您使用的SRID并不重要。但是,假设您不想丢弃重要的元数据,并且确实想对其进行转换,那么您将需要确保分配的srid与数据匹配,以便postgis知道该怎么做

那么,你为什么要从epsg:4269中重新投射?答案是因为某些类型的查询(如距离)在这个“未投影”的世界中毫无意义。你的单位是十进制度数,而x十进制度数的直线测量是不同的实际距离,这取决于你在行星上的位置

在您上面的示例中,有人正在使用,因为他们相信这将为他们工作的对象提供更好的准确性。如果您的数据位于地球的某个特定区域,则可以为该区域选择精确的投影。如果它跨越整个地球,你必须选择一个适合你需要的投影

幸运的是,PostGIS有一些方法可以让这一切变得更容易。对于近似距离,您可以使用st_distance_sphere函数,正如您可能猜到的,该函数假定地球是一个球体。或者更精确的st_距离_球体。使用这些,您不需要重新投影,并且除了在边缘情况下,您可能可以进行距离查询。更新版本的PostGIS也允许您使用


tl;dr-使用st_distance_spheroid进行距离查询,将数据存储在地理列中,或将其转换为本地投影(存储时,或根据需要动态转换)。

正如我所说的“真实的混乱比虚假的清晰更好”。无论如何,我的困惑来自于这样一个事实:在这个页面中的示例:每次他提出查询时都将4269转换为32661。这是否与最终他可能拥有一些重要数据,即32661有关?这就是为什么他总是将其转换为该系统?否则4269就可以了?@itgorilla这取决于你输出它的方式。大多数情况下,JS库将处理显示(如谷歌地图、OSM等),该库需要放置线条、点,。。。在某个地方,如果4269中需要底层的cordinate,那么他需要分别转换它。不过我不是专家,所以也许有人对它有更好的解释。正如你所看到的,我正试图自己弄明白:)。无论如何,我认为我读的越多,问的越多,我就开始更清楚地了解这是怎么回事。我感谢你的帮助。我对此投了反对票,因为:“答案是,在这个‘未投影’的世界中,某些类型的查询(如距离)毫无意义。你的单位是十进制度数,而x十进制度数的直接测量是一个不同的实际距离,取决于你在地球上的位置。”这个词有一个距离的概念,这里是球体:()它只是有点难以计算。就lat/lon坐标中的距离计算而言,这在postgis Fair point中不是一个问题-我应该在坐标的简单差值中注明距离。但您的评论也有误导性:您所指的距离计算是一种将lat/lng投影到球体上的形式(在本例中),因此您可以得到“合理”的距离答案。但它仍然在投射。虽然PostGIS可以通过地理坐标为您做到这一点,但如果您将epsg:4326与几何列一起使用,则st_distance将产生令人困惑的结果(例如坐标的简单差异)。这并不误导,我也不是说“lat/lon投影到球体中”我是说在一个球体上有一个距离的概念,你不需要投射一个球体就能感觉到它。lat/lon只是描述球体上点的坐标系。它们与投影无关,投影是一种将N维空间(在我们的例子中是球体)转换为另一个M维空间(通常是笛卡尔二维平面)的方法,在这里距离的概念更直观、更清晰。投影是从一个坐标系转换到另一个坐标系的结果。从技术上讲,lat/lon不是描述球体上点的坐标系。例如,您将从epsg:4326与epsg:4269的GPS获得不同的lat/lngs。是的,做球面数学相对容易,但lat/lngs并不生活在真空或球面中。有时在球体上使用,有时在球体上使用,有时在非地球行星上使用。它们仅仅是一个单位,在考虑它们与地球上某个地点的关系时,必须考虑到投影的作用。不过,这些都与OP无关(尽管我现在对自己“未受影响”的评论感到遗憾)。谢谢你的观点。正确的,当一个人定义了一个坐标系,就地理信息系统而言,他谈论的是基准,这是定义