/// <summary> /// 获得GIS的相关数据,高度,建筑,地物等信息 /// </summary> /// <param name="clutterData"></param> /// <param name="heightData"></param> /// <param name="buildingHeightData"></param> /// <param name="sectionParam"></param> public void PreLoadGisData(out GisPreLoadData clutterData, out GisPreLoadData heightData, out GisPreLoadData buildingHeightData, SectionPathLossCalcParam sectionParam) { float centerX = sectionParam.X; float centerY = sectionParam.Y; float mapHighestResolution = (float)GeoDataProvider.GisInfo.GetMapHighestResolution(DemDataType.Height); float resolution = Math.Max(mapHighestResolution, sectionParam.CalcResolution); float radius = sectionParam.CalcEndRadius + resolution; heightData = new GisPreLoadData(); heightData.Bound = GeoDataProvider.CreateCalcBound(centerX, centerY, resolution, radius); heightData.DemDataArray = GeoDataProvider.GisInfo.GetValueByGeoCalcBound(heightData.Bound, DemDataType.Height); float buildingHighestResolution = (float)GeoDataProvider.GisInfo.GetMapHighestResolution(DemDataType.Building); float buildingResolution = Math.Max(buildingHighestResolution, sectionParam.CalcResolution); float buildingRadius = sectionParam.CalcEndRadius + buildingResolution; buildingHeightData = new GisPreLoadData(); buildingHeightData.Bound = GeoDataProvider.CreateCalcBound(centerX, centerY, buildingResolution, buildingRadius); buildingHeightData.DemDataArray = GeoDataProvider.GisInfo.GetValueByGeoCalcBound(heightData.Bound, DemDataType.Building); float clutterHighestResolution = (float)GeoDataProvider.GisInfo.GetMapHighestResolution(DemDataType.Clutter); float clutterResolution = Math.Max(clutterHighestResolution, sectionParam.CalcResolution); float clutterRadius = sectionParam.CalcEndRadius + clutterResolution; clutterData = new GisPreLoadData(); clutterData.Bound = GeoDataProvider.CreateCalcBound(centerX, centerY, clutterResolution, clutterRadius); clutterData.DemDataArray = GeoDataProvider.GisInfo.GetValueByGeoCalcBound(clutterData.Bound, DemDataType.Clutter); }
public GisPreLoadData GetGisPreLoadData(float calcResolution, float x, float y, float endRadius) { float centerX = x; float centerY = y; float resolution = calcResolution; float radius = endRadius; GisPreLoadData data = new GisPreLoadData(); data.Bound = this.GeoDataProvider.CreateCalcBoundMatrix(centerX, centerY, resolution, radius); data.DemDataArray = this.GeoDataProvider.GisInfo.GetValueByGeoCalcBound(data.Bound, DemDataType.Height); return data; }