我正在做一个天文学项目。我想将有关我们图像的信息存储在启用空间的数据库中。我认为,这对于GIS功能来说应该是一个非常简单的特殊情况,因为天空可以被视为完全球形,并且不需要像地球表面那样的椭圆形处理。不幸的是,我还没有找到实现此目的的方法,并且我一直在躲避具有椭圆形地球空间功能的地雷。(几乎所有返回米而非度的函数都可能使用椭圆计算。幸运的是,我需要的许多PostGIS函数似乎都具有不完整的实现,其中文档明确指出返回的结果是针对球体而不是针对球体。椭圆形。但这可能会随着将来的版本而改变,这值得关注。)
背景:目前,我正在使用具有PostGIS和WGS 84坐标(SRID = 4326)的PostgreSQL。这工作得很好。我正在根据图像四个角的正确提升和偏斜创建一个封闭的POLYGON。我有很多图像(10k或更多),覆盖了很大的天空。每个图像约为1度角。从这些图像的集合中,我正在从15到30张图像的小子集中制作马赛克。每个马赛克约为1.5度正方形。
目前,我将镶嵌的地理位置存储为MULTIPOLYGON,其中包括与进入镶嵌图的每个图像相对应的所有多边形。[更好的解决方案是创建一个描述所有单个多边形并集周长的POLYGON 。我不知道是否可以在球坐标系中完成(即地理类型)。对我来说,这也是一个有趣的答案。]日期线和天极可能包含在数据集中的图像中,因此我一直在尽量避免投影到平面坐标。
对于带有PostGIS功能的天体坐标,应该使用什么坐标系?
我看过 http://spatialreference.org/,但到目前为止还没有找到任何东西。谷歌几乎没有出现。我感到难过。基本上,我想确保如果一个函数返回米作为距离,那么它就是球体上沿大圆的米。
更一般地,在空间数据库中使用天体坐标的一些建议也将被理解。
我选择PostGIS会犯错吗?
是否有优越的商业选择?
FOSS的选择?
我正在使用PostGIS 1.5.2。我尚未尝试过PostGIS 2.0。我很好奇ST_CoveredBy函数是否与POLYGON和地理类型的MULTIPOLYGON一起使用。如果有人正在运行2.0,可以告诉我是否遇到与此相同的错误:
mydb=# select ST_CoveredBy(ST_GeographyFromText('MULTIPOLYGON(( (10.37795 -69.57926,8.9498 -69.54875,9.0178 -69.21643,10.4242 -69.24648,10.37795 -69.57926),(10.42436 -69.24618,9.01774 -69.2162, 9.08363 -68.88389,10.46914 -68.91344,10.42436 -69.24618)))'),ST_GeographyFromText('POLYGON((10.46915 -68.91315,9.08371 -68.88364,9.14755 -68.5513,10.5125 -68.58038,10.46915 -68.91315))'));
ERROR: geography_covers: only POLYGON and POINT types are currently supported
CONTEXT: SQL function "st_coveredby" statement 1
我已经尝试过PostGIS 2.0。此功能仍仅适用于点和多边形,不适用于更一般的形状。