GeoJSON est un format permettant d'encoder diverses structures de données géographiques. Un objet GeoJSON peut représenter une géométrie, une fonctionnalité ou une collection de fonctionnalités.
En 2015, l'Internet Engineering Task Force (IETF), en collaboration avec les auteurs des spécifications originales, a formé un groupe de travail GeoJSON pour standardiser GeoJSON. La RFC 7946 a été publiée en août 2016 et constitue la nouvelle spécification standard du format GeoJSON, remplaçant la spécification GeoJSON 2008.
GeoJSON prend en charge les types de géométrie Point , LineString , Polygon , MultiPoint , MultiLineString , MultiPolygon et GeometryCollection .
Feature contient un objet géométrique et des propriétés supplémentaires, et FeatureCollection représente une liste de fonctionnalités.
Par exemple, une maison, une route et un arrêt de bus représentent trois fonctionnalités différentes. Tous peuvent avoir différents types de géométries. La maison pourrait être un polygone , la route pourrait être une ligne et l'arrêt de bus pourrait être un point . Tous représentent un quartier et cela s'appelle FeatureCollection en GeoJSON.
EntityFramework (EF) est un framework de mappage objet-relationnel (ORM) open source pour Microsoft .net. Cela nous permet d'utiliser les lignes de la base de données comme instances de classe.
Well-known Text (WKT) est un langage de balisage de texte permettant de représenter des objets à géométrie vectorielle sur une carte, des systèmes de référence spatiale d'objets spatiaux et des transformations entre des systèmes de référence spatiale. En résumé, il s'agit d'une représentation textuelle d'objets géométriques.
GeoJSON pour EntityFramework est une bibliothèque .net qui vous permet de créer une sortie GeoJSON à partir de données spatiales EntityFramework ou d'entrées WKT. En d’autres termes, il sérialise différents types d’objets géométriques en GeoJSON. Il ne se limite pas aux entités EF, mais il peut également sérialiser les entrées WKT.
Visual Basic
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
C#
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 Basic
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
C#
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 ) ;
}
Pour installer GeoJSON pour Entity Framework, exécutez la commande suivante dans la console du gestionnaire de packages
Cadre d'entité 6
Install-Package GeoJSON4EntityFramework
Cadre d'entité 5
Install-Package GeoJSON4EntityFramework5
Téléchargez la dernière version et ajoutez manuellement les références de votre projet
Vous pouvez valider les sorties avec http://geojson.io et http://geojsonlint.com
Données de test extraites d'OpenStreetMap®. OpenStreetMap® est un logiciel de données ouvertes, sous licence Open Data Commons Open Database License (ODbL) par la OpenStreetMap Foundation (OSMF)