コード例 #1
0
        /// <summary>
        /// Converts collection of Barriers to GPFeatureRecordSetLayer of Point barriers.
        /// </summary>
        /// <param name="barriers">Collection of Point barriers to convert.</param>
        /// <param name="solverSR">Reference to GP spatial.</param>
        /// <returns>GPFeature RecordSet Layer of Point barriers.</returns>
        public GPFeatureRecordSetLayer ConvertToPointBarriersLayer(IEnumerable <Barrier> barriers,
                                                                   GPSpatialReference solverSR)
        {
            Debug.Assert(barriers != null);

            return(_GenerateLayer(barriers, BarrierGeometryType.Point, solverSR));
        }
コード例 #2
0
        /// <summary>
        /// Generate GPFeatureRecordSetLayer of specified barrier type.
        /// </summary>
        /// <param name="barriers">Collection of Typed Barriers to include into layer.</param>
        /// <param name="type">Type of barriers to convert in.</param>
        /// <param name="solverSR">Reference to GP spatial.</param>
        /// <returns>GPFeatureRecordSetLayer of barriers of specified type.</returns>
        private GPFeatureRecordSetLayer _GenerateLayer(IEnumerable <Barrier> barriers,
                                                       BarrierGeometryType type, GPSpatialReference solverSR)
        {
            Debug.Assert(barriers != null);

            GPFeatureRecordSetLayer layer = null;

            GPFeature[] features = _ConvertBarriers(barriers, type);

            if (features.Length > 0)
            {
                layer = new GPFeatureRecordSetLayer();
                layer.SpatialReference = solverSR;
                layer.Features         = features;

                switch (type)
                {
                case BarrierGeometryType.Point:
                    layer.GeometryType = NAGeometryType.esriGeometryPoint;
                    break;

                case BarrierGeometryType.Polygon:
                    layer.GeometryType = NAGeometryType.esriGeometryPolygon;
                    break;

                case BarrierGeometryType.Polyline:
                    layer.GeometryType = NAGeometryType.esriGeometryPolyline;
                    break;

                case BarrierGeometryType.None:
                    // Not supported type.
                    Debug.Assert(false);
                    break;

                default:
                    Debug.Assert(false);
                    break;
                }
            }

            return(layer);
        }