private static void SharpMapGeometryCollectionToSqlGeometry(SqlGeometryBuilder geomBuilder, SMGeometryCollection geometryCollection) { geomBuilder.BeginGeometry(OpenGisGeometryType.GeometryCollection); for (int i = 0; i < geometryCollection.NumGeometries; i++ ) SharpMapGeometryToSqlGeometry(geomBuilder, geometryCollection.Geometry(i)); geomBuilder.EndGeometry(); }
internal static SharpMap.Geometries.GeometryCollection ToSharpMapGeometryCollection(GisSharpBlog.NetTopologySuite.Geometries.GeometryCollection geometryCollection) { SharpMap.Geometries.GeometryCollection collection = new SharpMap.Geometries.GeometryCollection(); foreach (GisSharpBlog.NetTopologySuite.Geometries.Geometry geometry in geometryCollection.Geometries) { collection.Collection.Add(ToSharpMapGeometry(geometry)); } return(collection); }
/* * private static OpenGisGeometryType ParseGeometryType(string stGeometryType) * { * switch (stGeometryType.ToUpper()) * { * case "POINT": * return OpenGisGeometryType.Point; * case "LINESTRING": * return OpenGisGeometryType.LineString; * case "POLYGON": * return OpenGisGeometryType.Polygon; * case "MULTIPOINT": * return OpenGisGeometryType.MultiPoint; * case "MULTILINESTRING": * return OpenGisGeometryType.MultiLineString; * case "MULTIPOLYGON": * return OpenGisGeometryType.MultiPolygon; * case "GEOMETRYCOLLECTION": * return OpenGisGeometryType.GeometryCollection; * } * throw new ArgumentException(String.Format("Invalid geometrytype '{0}'!", stGeometryType), "stGeometryType"); * } */ private static SMGeometryCollection SqlGeometryToSharpMapGeometryCollection(SqlGeometry geometry) { SMGeometryCollection geometryCollection = new SMGeometryCollection(); for (int i = 1; i <= geometry.STNumGeometries(); i++) { geometryCollection.Collection.Add(ToSharpMapGeometry(geometry.STGeometryN(i))); } return(geometryCollection); }
internal static GisSharpBlog.NetTopologySuite.Geometries.GeometryCollection ToNTSGeometryCollection(SharpMap.Geometries.GeometryCollection geometryCollection, GisSharpBlog.NetTopologySuite.Geometries.GeometryFactory factory) { GisSharpBlog.NetTopologySuite.Geometries.Geometry[] geometries = new GisSharpBlog.NetTopologySuite.Geometries.Geometry[geometryCollection.Collection.Count]; int index = 0; foreach (SharpMap.Geometries.Geometry geometry in geometryCollection.Collection) { geometries[index++] = ToNTSGeometry(geometry, factory); } return(factory.CreateGeometryCollection(geometries) as GisSharpBlog.NetTopologySuite.Geometries.GeometryCollection); }
internal static SharpMap.Geometries.GeometryCollection ToSharpMapGeometryCollection(GisSharpBlog.NetTopologySuite.Geometries.GeometryCollection geometryCollection) { SharpMap.Geometries.GeometryCollection collection = new SharpMap.Geometries.GeometryCollection(); foreach (GisSharpBlog.NetTopologySuite.Geometries.Geometry geometry in geometryCollection.Geometries) collection.Collection.Add(ToSharpMapGeometry(geometry)); return collection; }
private static SMGeometryCollection SqlGeometryToSharpMapGeometryCollection(SqlGeometry geometry) { SMGeometryCollection geometryCollection = new SMGeometryCollection(); for(int i = 0; i < geometry.STNumGeometries(); i++) geometryCollection.Collection.Add(ToSharpMapGeometry(geometry.STGeometryN(i))); return geometryCollection; }
private static void SharpMapGeometryCollectionToSqlGeometry(SqlGeometryBuilder geomBuilder, SMGeometryCollection geometryCollection) { geomBuilder.BeginGeometry(OpenGisGeometryType.GeometryCollection); for (int i = 0; i < geometryCollection.NumGeometries; i++) { SharpMapGeometryToSqlGeometry(geomBuilder, geometryCollection.Geometry(i)); } geomBuilder.EndGeometry(); }
private void button1_Click(object sender, EventArgs e) { if (_cmbLayer1.SelectedIndex >= 0 && _cmbLayer2.SelectedIndex >= 0 && _cmbOperation.SelectedIndex >= 0) { //obrada forme if (_cmbOperation.SelectedIndex == 0) //intersect { SharpMap.Data.FeatureDataSet ds = new SharpMap.Data.FeatureDataSet(); SharpMap.Layers.VectorLayer layer1 = (SharpMap.Layers.VectorLayer)_map.GetLayerByName(_cmbLayer1.SelectedItem.ToString()); SharpMap.Layers.VectorLayer layer2 = (SharpMap.Layers.VectorLayer)_map.GetLayerByName(_cmbLayer2.SelectedItem.ToString()); SharpMap.Data.Providers.NtsProvider nts = new SharpMap.Data.Providers.NtsProvider(layer1.DataSource); SharpMap.Data.Providers.NtsProvider nts2 = new SharpMap.Data.Providers.NtsProvider(layer2.DataSource); SharpMap.Geometries.GeometryCollection coll = new SharpMap.Geometries.GeometryCollection(); ds.Tables.Clear(); SharpMap.Data.FeatureDataSet set = new SharpMap.Data.FeatureDataSet(); nts.GetFeaturesInView(nts.GetExtents(), set); SharpMap.Data.FeatureDataSet res = new SharpMap.Data.FeatureDataSet(); res.Tables.Add(set.Tables[0].Clone()); res.Tables[0].Rows.Clear(); ds.Tables.Clear(); foreach (SharpMap.Data.FeatureDataRow row in set.Tables[0].Rows) { nts2.ExecuteIntersectionQuery(row.Geometry, ds); if (ds.Tables[0].Rows.Count > 0) { SharpMap.Data.FeatureDataRow red = res.Tables[0].NewRow(); red.Geometry = row.Geometry; red.ItemArray = row.ItemArray; res.Tables[0].AddRow(red); } ds.Tables.Clear(); } LayerInfo l = new LayerInfo(res.Tables[0]); l.Show(); SharpMap.Data.Providers.GeometryFeatureProvider prov = new SharpMap.Data.Providers.GeometryFeatureProvider(res.Tables[0]); SharpMap.Layers.VectorLayer lay = new SharpMap.Layers.VectorLayer("selected layer", prov); lay.Style.Fill = Brushes.Yellow; SharpMap.Layers.ILayer layerToRemove = _map.GetLayerByName("selected layer"); if (layerToRemove != null) { _map.Layers.Remove(layerToRemove); } _map.Layers.Add(lay); this._parent.RefreshMap(); } else if (_cmbOperation.SelectedIndex == 1)//within { SharpMap.Data.FeatureDataSet ds = new SharpMap.Data.FeatureDataSet(); SharpMap.Layers.VectorLayer layer1 = (SharpMap.Layers.VectorLayer)_map.GetLayerByName(_cmbLayer1.SelectedItem.ToString()); SharpMap.Layers.VectorLayer layer2 = (SharpMap.Layers.VectorLayer)_map.GetLayerByName(_cmbLayer2.SelectedItem.ToString()); SharpMap.Data.Providers.NtsProvider nts = new SharpMap.Data.Providers.NtsProvider(layer1.DataSource); SharpMap.Data.Providers.NtsProvider nts2 = new SharpMap.Data.Providers.NtsProvider(layer2.DataSource, CreateBuffers); SharpMap.Geometries.GeometryCollection coll = new SharpMap.Geometries.GeometryCollection(); ds.Tables.Clear(); SharpMap.Data.FeatureDataSet set = new SharpMap.Data.FeatureDataSet(); nts.GetFeaturesInView(nts.GetExtents(), set); SharpMap.Data.FeatureDataSet res = new SharpMap.Data.FeatureDataSet(); res.Tables.Add(set.Tables[0].Clone()); res.Tables[0].Rows.Clear(); ds.Tables.Clear(); foreach (SharpMap.Data.FeatureDataRow row in set.Tables[0].Rows) { nts2.ExecuteIntersectionQuery(row.Geometry, ds); if (ds.Tables[0].Rows.Count > 0) { SharpMap.Data.FeatureDataRow red = res.Tables[0].NewRow(); red.Geometry = row.Geometry; red.ItemArray = row.ItemArray; res.Tables[0].AddRow(red); } ds.Tables.Clear(); } LayerInfo l = new LayerInfo(res.Tables[0]); l.Show(); SharpMap.Data.Providers.GeometryFeatureProvider prov = new SharpMap.Data.Providers.GeometryFeatureProvider(res.Tables[0]); SharpMap.Layers.VectorLayer lay = new SharpMap.Layers.VectorLayer("selected layer", prov); lay.Style.Fill = Brushes.Yellow; SharpMap.Layers.ILayer layerToRemove = _map.GetLayerByName("selected layer"); if (layerToRemove != null) { _map.Layers.Remove(layerToRemove); } _map.Layers.Add(lay); this._parent.RefreshMap(); } else//van { SharpMap.Data.FeatureDataSet ds = new SharpMap.Data.FeatureDataSet(); SharpMap.Layers.VectorLayer layer1 = (SharpMap.Layers.VectorLayer)_map.GetLayerByName(_cmbLayer1.SelectedItem.ToString()); SharpMap.Layers.VectorLayer layer2 = (SharpMap.Layers.VectorLayer)_map.GetLayerByName(_cmbLayer2.SelectedItem.ToString()); SharpMap.Data.Providers.NtsProvider nts = new SharpMap.Data.Providers.NtsProvider(layer1.DataSource); SharpMap.Data.Providers.NtsProvider nts2 = new SharpMap.Data.Providers.NtsProvider(layer2.DataSource, CreateBuffers); SharpMap.Geometries.GeometryCollection coll = new SharpMap.Geometries.GeometryCollection(); ds.Tables.Clear(); SharpMap.Data.FeatureDataSet set = new SharpMap.Data.FeatureDataSet(); nts.GetFeaturesInView(nts.GetExtents(),set); SharpMap.Data.FeatureDataSet res = new SharpMap.Data.FeatureDataSet(); res.Tables.Add(set.Tables[0].Clone()); res.Tables[0].Rows.Clear(); ds.Tables.Clear(); foreach (SharpMap.Data.FeatureDataRow row in set.Tables[0].Rows) { nts2.ExecuteIntersectionQuery(row.Geometry, ds); if (ds.Tables[0].Rows.Count <= 0) { SharpMap.Data.FeatureDataRow red = res.Tables[0].NewRow(); red.Geometry = row.Geometry; red.ItemArray = row.ItemArray; res.Tables[0].AddRow(red); } ds.Tables.Clear(); } LayerInfo l = new LayerInfo(res.Tables[0]); l.Show(); SharpMap.Data.Providers.GeometryFeatureProvider prov = new SharpMap.Data.Providers.GeometryFeatureProvider(res.Tables[0]); SharpMap.Layers.VectorLayer lay = new SharpMap.Layers.VectorLayer("selected layer", prov); lay.Style.Fill = Brushes.Yellow; SharpMap.Layers.ILayer layerToRemove = _map.GetLayerByName("selected layer"); if (layerToRemove != null) { _map.Layers.Remove(layerToRemove); } _map.Layers.Add(lay); this._parent.RefreshMap(); } } }