GeoJSON ist ein Format zum Kodieren verschiedener geografischer Datenstrukturen. Ein GeoJSON-Objekt kann eine Geometrie, ein Feature oder eine Sammlung von Features darstellen.
Im Jahr 2015 gründete die Internet Engineering Task Force (IETF) zusammen mit den ursprünglichen Spezifikationsautoren eine GeoJSON-Arbeitsgruppe zur Standardisierung von GeoJSON. RFC 7946 wurde im August 2016 veröffentlicht und ist die neue Standardspezifikation des GeoJSON-Formats, die die GeoJSON-Spezifikation von 2008 ersetzt.
GeoJSON unterstützt die Geometrietypen Point , LineString , Polygon , MultiPoint , MultiLineString , MultiPolygon und GeometryCollection .
Feature enthält ein Geometrieobjekt und zusätzliche Eigenschaften, und eine FeatureCollection stellt eine Liste von Features dar.
Beispielsweise stellt ein Haus, eine Straße und eine Bushaltestelle drei verschiedene Merkmale dar. Alle von ihnen können unterschiedliche Geometrien haben. Ein Haus könnte ein Polygon sein, eine Straße könnte eine Linienfolge sein und eine Bushaltestelle könnte ein Punkt sein. Sie alle stellen eine Nachbarschaft dar und werden in GeoJSON FeatureCollection genannt.
EntityFramework (EF) ist ein Open-Source-Framework für objektrelationales Mapping (ORM) für Microsoft .net. Es ermöglicht uns, Datenbankzeilen als Klasseninstanzen zu verwenden.
Well-Known Text (WKT) ist eine Textauszeichnungssprache zur Darstellung von Vektorgeometrieobjekten auf einer Karte, räumlichen Bezugssystemen räumlicher Objekte und Transformationen zwischen räumlichen Bezugssystemen. Zusammenfassend handelt es sich um Textdarstellungen geometrischer Objekte.
GeoJSON für EntityFramework ist eine .net-Bibliothek, mit der Sie GeoJSON-Ausgaben aus EntityFramework-Geodaten oder WKT-Eingaben erstellen können. Mit anderen Worten: Es serialisiert verschiedene Arten von Geometrieobjekten in GeoJSON. Es ist nicht nur auf EF-Entitäten beschränkt, sondern kann auch WKT-Eingaben serialisieren.
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 ) ;
}
Um GeoJSON für Entity Framework zu installieren, führen Sie den folgenden Befehl in der Paket-Manager-Konsole aus
Entity Framework 6
Install-Package GeoJSON4EntityFramework
Entity Framework 5
Install-Package GeoJSON4EntityFramework5
Laden Sie die neueste Version herunter und ergänzen Sie Ihre Projektreferenzen manuell
Sie können Ausgaben mit http://geojson.io und http://geojsonlint.com validieren
Aus OpenStreetMap® extrahierte Testdaten. Bei OpenStreetMap® handelt es sich um offene Daten, lizenziert unter der Open Data Commons Open Database License (ODbL) der OpenStreetMap Foundation (OSMF).