前几天写了一篇关于ArcSDE for ST_Geometry函数中ST_Buffer函数中半径的使用,尤其是用户数据为地理投影,但是在实际业务中又希望获得平面单位的结果,比如WGS84坐标的数据,Buffer100米半径等要求,其实不光是buffer,在经纬度坐标下,很多用户都希望能够得到相关的面积、长度等!本身在这个环境下,肯定是无法得到相关的准确结果的。
前一篇文章我也介绍了,用户只能使用投影的方法来解决该问题,比如将地理投影转化为平面投影,然后在进行相关运算,完成之后再次进行投影转化,但是这就出现一个问题,效率,大家都知道投影转化会影响效率,原理上大家都通,而且本身用户的这个要求我个人觉得不怎么合理,但是就是有这样的情况发生,那么就介绍一个将度转化为米的方法。
其实如果直接将度转化为米,这个误差比较不好控制,因为地球是一个椭球体,赤道与两级的变化差距比较大,以下是在赤道地区的度与米的转换关系
1 degree / 1111.12KM
1KM = 0.0089993 Degrees
100M = 0.0008993 Degrees
但是我个人觉得该转化也仅供参考,因为毕竟中国的版图离赤道还比较远,所以我个人建议,如果你不希望进行投影转化,考虑到效率,还希望使用单位转化,你可以通过ArcMap来获得相关的对比关系,方法很简单:
1、打开ArcCatalog
2、创建要素类或者数据集
3、创建过程中选择经纬度投影比如WGS84
4、在tolerance 选择项有一个以degree为单位的数值比较小,那么你可以将它等价于0.001米
使用该方法,我们可以得出,WGS1984投影,100米=0.0008983153 Degrees,我们可以看出要比上面的数字更加精确!
更多参考:详见积思园