今天又有用户咨询ST_Buffer的单位问题,这个问题以前我也没有怎么测试过,统一的回答就是ST_Buffer的缓冲半径单位需要根据用户传入几何图形对象的投影单位而定。
比如如果他的投影单位为西安80,那么单位就是米,如果投影单位为WGS84,那么单位就是度。
问题出来了,当用户使用WGS84的时候,又希望缓冲为100米半径,怎么才能得到正确的结果。答复就是自己讲米与度的单位进行转化,但是说的简单,具体的转换好像在网上根本找不到。
ArcGIS for Desktop有一个Buffer的ArcToolbox工具,这个工具非常好,因为不管是什么投影方式,系统支持不同单位的缓冲半径。这个Desktop进行了实时处理。
如果使用ST_geometry的st_buffer来做该怎么完成呢?
因为用户使用的是地理投影,单位就是度,但是Buffer单位为米,那么我们可以讲地理投影动态投影成平面投影,然后用户米的单位做Buffer,缓冲结果后,然后再动态投影为地理投影。
具体操作解决方案:详见积思园