我想找出postgis中SRID(空间参考id)的实用含义是什么.
我真的不明白它的用途.任何人都能对这件事情有所了解吗?
例如,我注意到postigs函数ST_GeomFromText(text WKT, integer srid)接受这样的(可选的)参数作为第二个参数.为什么我需要在get postigs中传递它以将文本表示转换为二进制文件?它增加了什么价值?
谢谢
空间参考ID指的是所采用的空间参考系统 - 当从世界的地理视图到世界的投影视图时,这是很重要的,即,当您查看二维纸质地图时所看到的内容.空间参考系统包含几个元素.
首先,大地水准面,是地球形状的模型 - 地球不是球体(嘘,不要告诉谷歌),它实际上是一个扁球体.用于GPS的大地水准面形状被称为WGS84,这是一种在全球范围内运行良好的模型.国家测绘机构使用其他大地水准面,这可能更适合当地的地理位置.
其次,投影类型.这基本上是用于从3D到世界的2D表示的数学模型.类型包括墨卡托,横轴墨卡托,(圆柱形),方位角,圆锥曲线等.所有这些都在精确测量距离,面积或方向之间进行权衡 - 你不能保留所有三个.
所以,基本上当你在Postgis中声明一个SRID时,你会说使用这个大地水准面和这个投影模型.在幕后,Postgis使用名为Proj.4的库,并根据SRID信息,它可以从一个坐标系转换到另一个坐标系.
因此,例如,要将lat/lon(在SRID术语中称为4326)转换为900913(即Google/Bing地图使用的球形墨卡托,以及其他Web制图框架),您可以运行以下内容:
select st_astext(st_transform(st_setsrid(st_makepoint(-.5,52),4326),900913));
Run Code Online (Sandbox Code Playgroud)
这是我使用的查询的示例。它使用兰伯特方位等积投影(ETRS89-LAEA,srid = 3035)。
ST_GeomFromText('POINT(2843711.1098048678, 2279498.6551480694)', 3035);
Run Code Online (Sandbox Code Playgroud)
如果不通过srid,postgis将不知道使用哪个空间参考系统。