Cómo utilizar nettopologysuite
public void InitializeMap(SharpMap.Map map)
{
/ / Cree una fuente de datos para el archivo Shape
Método SharpMap.Data.NtsOperation
SharpMap.Data.Providers.NtsProvider nts = nuevo método SharpMap.Data.Providers.Nettopologysuite NtsOperation p>
SharpMap.Data.Providers.NtsProvider nts = nuevo SharpMap.Data.Providers.NtsProvider(shp,nuevo SharpMap.Data.Providers.NtsProvider.Geometry,nuevo SharpMap.Data.Providers.NtsProvider.Map).VectorLayer( "Rivers" );
layRivers.DataSource = nts;
layRivers.Style.Fill = Brushes.Blue;
map.Layers.Add(layRivers) ;
}Característica f en geoms)
f.Geometry = f.Geometry.Buffer(0.5);
}
En el ejemplo anterior, podemos ver que podemos usar el método de análisis espacial NTS en SharpMap utilizando el proveedor de datos NTS a través del delegado .net.
Morten Nielsen, el autor de SharpMap, también dio ejemplos en su blog sobre cómo usar NTS en SharpMap:
1. Realizar análisis espacial en objetos geométricos. En este artículo El ejemplo. es análisis de búfer;
Primero, cree una fuente de datos NTS para representar los datos que se analizarán espacialmente, donde myShapeFileDatasource representa la fuente de datos del archivo Shape (que participa en el ejemplo anterior):
NtsProvider ntsDataSource = new NtsProvider(myShapeFileDatasource, CreateBuffers)
CreateBuffers:
CreateBuffers vacío privado(List {
característica.Geometry = feature.Geometry.Buffer(0.5);
}
1.}< / p>
2. Utilice NTS para una determinación precisa de la intersección; este ejemplo selecciona objetos haciendo clic en ellos, resaltándolos y devolviendo las propiedades correspondientes.
Puede hacer que el objeto "ntsDataSource" apunte a. la imagen vectorial, haga clic en el objeto y resalte el objeto seleccionado.
Esto puede activarse mediante un evento de clic en un ImageButton (ASP.NET) o PictureBox (Windows.Forms):
protected void imgMap_Click(object sender, ImageClickEventArg) ImageClickEventArgs e)
{
//Convierte coordenadas gráficas en coordenadas de mapa
Point ClickPnt = myMap.ImageToWorld(new System.ImageToWorld(new System.ImageToWorld(new System.ImageToWorld(new System.ImageToWorld ( nuevo System.ImageToWorld(nuevo System.ImageToWorld))))ImageToWorld(nuevo System.Drawing.Point(e.X, e.Y));
SharpMap.Data.FeatureDataSet ds = new SharpMap.Data.FeatureDataSet( ) ;
// Consulta en la primera capa, preste atención al uso del método ExecuteIntersectionQuery de NTS
( myMap.Layers[0 as SharpMap.Data.FeatureDataSet());
// Consulta en la segunda capa, preste atención al uso del método ExecuteIntersectionQuery de NTS
( myMap.Layers[0 as SharpMap.Data.FeatureDataSet());
// Consulta en la tercera capa. Layers.VectorLayer laySelected = new SharpMap.Layers.VectorLayer("Selection");
laySelected.DataSource = new GeometryProvider(ds.Tables[0]);
laySelected.Style.Fill = new System.Drawing.VectorLayer("Selección");