Пример #1
0
 public static BuildingContourDto ToBuildingContourDto(this BuildingContour buildingContour)
 {
     return(new BuildingContourDto
     {
         bottomAltitude = buildingContour.BottomAltitude,
         topAltitude = buildingContour.TopAltitude,
         points = buildingContour.Points.Select(_x => _x.ToLatLongInterop()).ToArray()
     });
 }
Пример #2
0
        private static BuildingInformation CreateBuildingInformation(
            BuildingInformationInterop buildingInfoInterop,
            LatLongInterop[] contourPointsBuffer,
            BuildingContourInterop[] buildingContoursBuffer)
        {
            var buildingContours    = new List <BuildingContour>();
            var contourPointsOffset = 0;

            for (int i = 0; i < buildingInfoInterop.BuildingContoursSize; ++i)
            {
                var buildingContourInterop = buildingContoursBuffer[i];
                var pointCount             = buildingContourInterop.PointCount;
                var points = new List <LatLong>();
                for (int j = 0; j < pointCount; ++j)
                {
                    points.Add(contourPointsBuffer[contourPointsOffset + j].ToLatLong());
                }

                var buildingContour = new BuildingContour(
                    buildingContourInterop.BottomAltitude,
                    buildingContourInterop.TopAltitude,
                    points.AsReadOnly());

                buildingContours.Add(buildingContour);

                contourPointsOffset += pointCount;
            }

            var buildingInformation = new BuildingInformation(
                Marshal.PtrToStringAnsi(buildingInfoInterop.BuildingId, buildingInfoInterop.BuildingIdSize - 1),
                buildingInfoInterop.BuildingDimensions.ToBuildingDimensions(),
                buildingContours.AsReadOnly()
                );

            return(buildingInformation);
        }