<!--StartFragment -->
我的地图是大地2000的经纬度坐标,里面有很多公路的路线,
但是进行缓冲区分析的时候,发现有有些路线绘制缓冲区失败,
得不到缓冲区,
那些路线拿到SuperMap iDesktop 7C 里是能绘制缓冲区的,
比如我想做一个 左右2边都设置10米的缓冲区,下面是我的写法,
看看是不是有啥问题?
/// 得到路线
GeoLine objCXGeolineTemp = objCXRecordset.GetGeometry() as GeoLine;
/// 得到起点的纬度
Double WD = objCXGeolineTemp[0][0].Y;//纬度
BufferAnalystParameter bufferAnalystParam = new BufferAnalystParameter();
bufferAnalystParam.EndType = BufferEndType.Flat;
/// 就是想左右2边都设置10米的缓冲区
bufferAnalystParam.LeftDistance = MapGeoHelper.GetRadianByDis(WD, cacheLength);
bufferAnalystParam.RightDistance = MapGeoHelper.GetRadianByDis(WD, cacheLength);
//为线几何对象建立缓冲区,并将分析结果存储在结果数据集中
GeoRegion geometryBuffer = BufferAnalystGeometry.CreateBuffer(objCXGeolineTemp, bufferAnalystParam);
MapGeoHelper.GetRadianByDis(WD, cacheLength) 是网上找的一个算法,长度转经纬度,
cacheLength * 180 / (6378178 * Math.PI * Math.Cos(latitude * Math.PI / 180));
有没有更好的方法,直接设置,不用进行转换?