Exemplo n.º 1
0
        private SimpleFeature.GeomtryTypes.Point GetPoint(string wkt)
        {
            OpenSMIL.Server.SimpleFeature.IO.SimpleWKTReader wktReader = new SimpleWKTReader();
            ISimpleGeometry geometry = wktReader.Parse(wkt);

            return(geometry.Centroid);
        }
Exemplo n.º 2
0
        public string Write(Guid listGuid)
        {
            string     kml        = string.Empty;
            Serializer serializer = new Serializer();
            Kml        _kml       = new Kml();
            Folder     folder     = new Folder();

            UseWeb(spWeb =>
            {
                SPList list   = spWeb.Lists.GetList(listGuid, true);
                SPField field = list.GetGeoField();
                if (field != null)
                {
                    foreach (SPListItem item in list.Items)
                    {
                        string wkt = item[field.Id] as string;
                        SimpleWKTReader wktReader = new SimpleWKTReader();
                        var simpleGeometry        = wktReader.Parse(wkt);

                        if (simpleGeometry.GeometryType == GeometryTypes.Point)
                        {
                            var _point = (OpenSMIL.Server.SimpleFeature.GeomtryTypes.Point)simpleGeometry;
                            SharpKml.Dom.Point point = new SharpKml.Dom.Point();
                            point.Coordinate         = new Vector(_point.Lat, _point.Lon);

                            Placemark placemark = CreatePlaceMark(item.Title, point);
                            folder.AddFeature(placemark);
                        }
                        else if (simpleGeometry.GeometryType == GeometryTypes.LineString)
                        {
                            var _lineString = (OpenSMIL.Server.SimpleFeature.GeomtryTypes.LineString)simpleGeometry;
                            SharpKml.Dom.LineString line = new SharpKml.Dom.LineString();
                            line.Coordinates             = CreateCoordinateCollection(_lineString.Points);
                            Placemark placeMark          = CreatePlaceMark(item.Title, line);
                            folder.AddFeature(placeMark);
                        }
                        else if (simpleGeometry.GeometryType == GeometryTypes.Polygon)
                        {
                            var _polygon = (OpenSMIL.Server.SimpleFeature.GeomtryTypes.Polygon)simpleGeometry;
                            OuterBoundary outerBoundary          = new OuterBoundary();
                            outerBoundary.LinearRing             = new LinearRing();
                            outerBoundary.LinearRing.Coordinates = CreateCoordinateCollection(_polygon.Points);

                            SharpKml.Dom.Polygon polygon = new SharpKml.Dom.Polygon();
                            polygon.OuterBoundary        = outerBoundary;
                            polygon.Extrude = true;

                            Placemark placeMark = CreatePlaceMark(item.Title, polygon);
                            folder.AddFeature(placeMark);
                        }
                    }
                    _kml.Feature = folder;
                }
            });
            serializer.Serialize(_kml);
            return(serializer.Xml);
        }