/// <summary> /// 获取采样点列表 /// </summary> /// <returns>采样点列表</returns> public EarthView.World.Spatial.Math.VertexList GetSlopePositionList() { IntPtr __ptr = EarthView_World_Spatial3D_Analysis_CMath3DSlope_getSlopePositionList_VertexList(this.NativeObject); if (__ptr == IntPtr.Zero) { return(null); } EarthView.World.Spatial.Math.VertexList csObj = new EarthView.World.Spatial.Math.VertexList(CreatedWhenConstruct.CWC_NotToCreate); csObj.BindNativeObject(__ptr, "VertexList"); csObj.Delegate = true; IClassFactory csObjClassFactory = GlobalClassFactoryMap.Get(csObj.GetCppInstanceTypeName()); if (csObjClassFactory != null) { csObj.Delegate = true; csObj = csObjClassFactory.Create() as EarthView.World.Spatial.Math.VertexList; csObj.BindNativeObject(__ptr, "VertexList"); csObj.Delegate = true; } return(csObj); }
/// <summary> /// 计算两点之间的贴地距离 /// </summary> /// <param name="num">插入点数目</param> /// <param name="p0">输入点,地理坐标(经度、纬度、高程或0)</param> /// <param name="p1">输入点,地理坐标(经度、纬度、高程或0)</param> /// <param name="vertices">插值后的点列表</param> /// <returns>贴地距离</returns> public double CalcuClampedDistance(int num, EarthView.World.Spatial.Math.Vector3 p0, EarthView.World.Spatial.Math.Vector3 p1, ref EarthView.World.Spatial.Math.VertexList vertices) { double ret = EarthView_World_Spatial3D_Analysis_CMath3DMeasureLength_calcuClampedDistance_ev_real64_ev_int32_CVector3_CVector3_VertexList(this.NativeObject, num, object.Equals(p0, null) ? IntPtr.Zero : p0.NativeObject, object.Equals(p1, null) ? IntPtr.Zero : p1.NativeObject, object.Equals(vertices, null) ? IntPtr.Zero : vertices.NativeObject); return(ret); }
/// <summary> /// 服务器端计算 /// </summary> /// <param name="num">插入点数目</param> /// <param name="inpoints">输入点集合,地理坐标</param> /// <param name="clampedDistance">贴地距离</param> /// <param name="straightDistance">直线距离</param> /// <param name="projectDistance">投影距离</param> public void CalculateOnServer(int num, EarthView.World.Spatial.Math.VertexList inpoints, ref double clampedDistance, ref double straightDistance, ref double projectDistance) { EarthView_World_Spatial3D_Analysis_CMath3DMeasureLength_calculateOnServer_void_ev_int32_VertexList_ev_real64_ev_real64_ev_real64(this.NativeObject, num, object.Equals(inpoints, null) ? IntPtr.Zero : inpoints.NativeObject, ref clampedDistance, ref straightDistance, ref projectDistance); }
/// <summary> /// 获取贴地直线离散点 /// 用于渲染贴地直线 /// 此方法可能不用 /// </summary> /// <param name="inpoints">用户采集的计算点的集合,地理坐标</param> /// <param name="outpoints">插值后的点的集合,世界坐标,带高程</param> /// <returns>true为插值成功,false为插值失败</returns> public bool CalcuInterWorldPoints(EarthView.World.Spatial.Math.VertexList inpoints, ref EarthView.World.Spatial.Math.VertexList outpoints) { byte ret = EarthView_World_Spatial3D_Analysis_CMath3DMeasureLength_calcuInterWorldPoints_ev_bool_VertexList_VertexList(this.NativeObject, object.Equals(inpoints, null) ? IntPtr.Zero : inpoints.NativeObject, object.Equals(outpoints, null) ? IntPtr.Zero : outpoints.NativeObject); return(Convert.ToBoolean(ret)); }
/// <summary> /// 计算多边形面积,供服务器调用 /// </summary> /// <param name="inpoints">多边形边界点集合,经纬度高程</param> /// <param name="clampArea">贴地面积</param> /// <param name="projArea">投影面积</param> public void CalculateOnServer(EarthView.World.Spatial.Math.VertexList inpoints, ref double clampArea, ref double projArea) { EarthView_World_Spatial3D_Analysis_CMath3DMeasureArea_calculateOnServer_void_VertexList_ev_real64_ev_real64(this.NativeObject, object.Equals(inpoints, null) ? IntPtr.Zero : inpoints.NativeObject, ref clampArea, ref projArea); }
/// <summary> /// 计算多边形投影面积 /// </summary> /// <param name="inpoints">多边形边界点集合,经纬度高程</param> /// <returns>投影面积</returns> public double CalcuProjectArea(EarthView.World.Spatial.Math.VertexList inpoints) { double ret = EarthView_World_Spatial3D_Analysis_CMath3DMeasureArea_calcuProjectArea_ev_real64_VertexList(this.NativeObject, object.Equals(inpoints, null) ? IntPtr.Zero : inpoints.NativeObject); return(ret); }
/// <summary> /// 计算多边形面积(非递归实现方式) /// </summary> /// <param name="inpoints">多边形边界点集合,经纬度高程</param> /// <param name="calcuClampedArea">是否计算贴地面积</param> /// <param name="clampedArea">贴地面积</param> /// <returns>投影面积</returns> public double CalcuPolygonArea(EarthView.World.Spatial.Math.VertexList inpoints, bool calcuClampedArea, ref double clampedArea) { double ret = EarthView_World_Spatial3D_Analysis_CMath3DMeasureArea_calcuPolygonArea_ev_real64_VertexList_ev_bool_ev_real64(this.NativeObject, object.Equals(inpoints, null) ? IntPtr.Zero : inpoints.NativeObject, Convert.ToByte(calcuClampedArea), ref clampedArea); return(ret); }
/// <summary> /// 统计坡度 /// </summary> /// <param name="boundaryPts">边界点列表</param> /// <param name="divisions">坡度级别</param> public void CalcuSlopeDistributing(EarthView.World.Spatial.Math.VertexList boundaryPts, EarthView.World.Core.RealVector divisions) { EarthView_World_Spatial3D_Analysis_CMath3DSlope_calcuSlopeDistributing_void_VertexList_RealVector(this.NativeObject, object.Equals(boundaryPts, null) ? IntPtr.Zero : boundaryPts.NativeObject, object.Equals(divisions, null) ? IntPtr.Zero : divisions.NativeObject); }