Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
 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;
 }