2010-08-02 36 views

回答

0

你有没有考虑一个ST_Transform到嵌套在ST_Union或ST_Collect内的几何类型? PostGIS docs(来自amercader的链接)表示,他们在某些地理操作中内部使用该功能。

2

可以转换为几何形状和进行操作那里。您只需要小心,在笛卡尔飞机上进行评估时,您的形状是有意义的。他们是否包裹日期线或两极?

select geography(st_union(a::geometry, b::geometry)) 

如果形状有很长的边缘,然后在你想在一个球体和线性插值,你坐上飞机的大圆弧插补之间的边缘插值的差异进场时,你必须更大胆的尝试通过在适当的地图投影中进行工作(通过使用bestsrid函数自动选择)来尽可能地保留边缘形状。

select geography(
     st_transform(
      st_union(
      st_transform(a::geometry, _st_bestsrid(a,b)), 
      st_transform(b::geometry, _st_bestsrid(a,b)) 
      ), 
      4326 
     )) 

享受!

+0

GIS相关问题为什么不会允许的PostGIS地理类型的这些操作,但形状并返回错误在笛卡尔飞机上没有意义? – 2010-09-01 12:57:00

+0

没有地域上的坐标平面是有意义的,它的程度(哈哈)的问题。球面几何中两点之间的直线是一个大圆,而笛卡尔几何中两点之间的直线是一条直线。随着点越来越近,直线就成为弧的更好更好的近似值,但它绝不是确切的。 – 2010-10-19 19:38:40