GeoJSON es un formato para codificar una variedad de estructuras de datos geográficos. Un objeto GeoJSON puede representar una geometría, una característica o una colección de características.
En 2015, el Grupo de Trabajo de Ingeniería de Internet (IETF), junto con los autores de las especificaciones originales, formaron un GeoJSON WG para estandarizar GeoJSON. RFC 7946 se publicó en agosto de 2016 y es la nueva especificación estándar del formato GeoJSON, que reemplaza la especificación GeoJSON de 2008.
GeoJSON admite los tipos de geometría Point , LineString , Polygon , MultiPoint , MultiLineString , MultiPolygon y GeometryCollection .
La característica contiene un objeto de geometría y propiedades adicionales, y una FeatureCollection representa una lista de características.
Por ejemplo, una casa, una carretera y una parada de autobús representan tres características diferentes. Todos ellos pueden tener diferentes tipos de geometrías. La casa podría ser un polígono , la carretera podría ser una cadena lineal y la parada de autobús podría ser un punto . Todos ellos representan un vecindario y esto se llama FeatureCollection en GeoJSON.
EntityFramework (EF) es un marco de mapeo relacional de objetos (ORM) de código abierto para Microsoft .net. Nos permite utilizar filas de la base de datos como instancias de clase.
El texto conocido (WKT) es un lenguaje de marcado de texto para representar objetos de geometría vectorial en un mapa, sistemas de referencia espacial de objetos espaciales y transformaciones entre sistemas de referencia espacial. En resumen, es un texto que representa representaciones de objetos geométricos.
GeoJSON para EntityFramework es una biblioteca .net que le permite crear resultados GeoJSON a partir de datos espaciales de EntityFramework o entradas WKT. En otras palabras, serializa diferentes tipos de objetos geométricos en GeoJSON. No se limita solo a entidades EF, sino que también puede serializar entradas WKT.
Visual Básico
Imports alatas.GeoJSON4EntityFramework
Function GetGeoJSONFromDB() As String
Using db As New SpatialExampleEntities
Dim data = From row In db.SampleTables Select row.SpatialData
Dim features as New FeatureCollection(data.ToArray)
Return features.Serialize(prettyPrint:= True )
End Using
End Function
DO#
using alatas . GeoJSON4EntityFramework ;
public string GetGeoJSONFromDB ( )
{
using ( Entities db = new Entities ( ) )
{
DbGeometry [ ] data = ( from row in db . SampleTables select row . SpatialData ) . ToArray ( ) ;
FeatureCollection features = new FeatureCollection ( data ) ;
return features . Serialize ( prettyPrint : true ) ;
}
}
Visual Básico
Imports alatas.GeoJSON4EntityFramework
Function GetGeoJSONFromWKT() As String
Dim WKTs = { "POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))" ,
"MULTIPOINT ((10 40), (40 30), (20 20), (30 10))" ,
"LINESTRING (1 1, 2 2)" }
Dim features as New FeatureCollection(WKTs)
Return features.Serialize(prettyPrint:= True )
End Function
DO#
using alatas . GeoJSON4EntityFramework ;
public string GetGeoJSONFromWKT ( )
{
string [ ] WKTs = {
"POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))" ,
"MULTIPOINT ((10 40), (40 30), (20 20), (30 10))" ,
"LINESTRING (1 1, 2 2)"
} ;
FeatureCollection features = new FeatureCollection ( WKTs ) ;
return features . Serialize ( prettyPrint : true ) ;
}
Para instalar GeoJSON para Entity Framework, ejecute el siguiente comando en la Consola del Administrador de paquetes
Marco de entidad 6
Install-Package GeoJSON4EntityFramework
Marco de entidad 5
Install-Package GeoJSON4EntityFramework5
Descargue la última versión y agréguela a las referencias de su proyecto manualmente
Puede validar los resultados con http://geojson.io y http://geojsonlint.com
Datos de prueba extraídos de OpenStreetMap®. OpenStreetMap® son datos abiertos, bajo la licencia Open Data Commons Open Database License (ODbL) de la OpenStreetMap Foundation (OSMF).