private Geometry GetKmlGeometry(TGeometry geom)
        {
            if (geom.IsEmpty() || !geom.IsValid())
            {
                return(null);
            }
            switch (geom.GetType().ToString())
            {
            case "RosReestrImp.Geometry.TPoint": return(GetKml((TPoint)geom));

            case "RosReestrImp.Geometry.TLineString": return(GetKml((TLineString)geom));

            case "RosReestrImp.Geometry.TPolygon": return(GetKml((TPolygon)geom));

            case "RosReestrImp.Geometry.TGeometryCollection":
            case "RosReestrImp.Geometry.TMultiPolygon":
                return(GetKml((TGeometryCollection)geom));

            default: return(null);
            }
        }
Beispiel #2
0
        /// <summary>Добавить сущность</summary>
        /// <param name="rec">Запись</param>
        /// <returns></returns>
        public Feature AddFeature(MyRecord rec)
        {
            TGeometry   geom = rec.GetGeometry();
            FeatureType type = FeatureType.TABFC_NoGeom;

            if (geom != null)
            {
                switch (geom.GetGeometryType())
                {
                case GeometryType.Point:
                    type = FeatureType.TABFC_Point;
                    break;

                case GeometryType.LineString:
                    type = FeatureType.TABFC_Polyline;
                    break;

                case GeometryType.Polygon:
                case GeometryType.MultiPolygon:
                    type = FeatureType.TABFC_Region;
                    break;

                case GeometryType.No:
                    break;

                case GeometryType.GeometryCollection:
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
                if (geom.IsValid())
                {
                    return(this.AddFeature(type, this.GetParts(geom), GetFieldValues(rec), null));
                }
            }
            return(type == FeatureType.TABFC_NoGeom ? this.AddFeature(type, new List <List <Vertex> >(),
                                                                      GetFieldValues(rec), null) : null);
        }