GeoJSON 是一種用於編碼各種地理資料結構的格式。 GeoJSON 物件可以表示幾何圖形、要素或要素集合。
2015 年,網路工程任務小組 (IETF) 與原始規範作者一起組成了 GeoJSON 工作小組來標準化 GeoJSON。 RFC 7946於2016年8月發布,是GeoJSON格式的新標準規範,取代了2008年的GeoJSON規範。
GeoJSON 支援Point 、 LineString 、 Polygon 、 MultiPoint 、 MultiLineString 、 MultiPolygon和GeometryCollection幾何類型。
要素包含幾何物件和附加屬性,而要素集合表示要素清單。
例如,一棟房子、一條路和一個公車站代表了三個不同的Feature 。它們都可能具有不同類型的幾何形狀。房子可以是多邊形,道路可以是一條線,公車站可以是一個點。它們全部代表一個鄰域,這在 GeoJSON 中稱為“FeatureCollection” 。
EntityFramework (EF) 是 Microsoft .net 的開源物件關聯映射 (ORM) 框架。它允許我們使用資料庫行作為類別實例。
Well-known Text (WKT) 是一種文字標記語言,用於表示地圖上的向量幾何物件、空間物件的空間參考系統以及空間參考系統之間的轉換。總之,它是幾何物件的文本表示。
GeoJSON for EntityFramework是一個 .net 函式庫,可讓您從 EntityFramework 空間資料或 WKT 輸入建立 GeoJSON 輸出。換句話說,它將不同類型的幾何物件序列化為 GeoJSON。它不僅限於 EF 實體,還可以序列化 WKT 輸入。
視覺基礎
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 ) ;
}
}
視覺基礎
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 ) ;
}
若要安裝 GeoJSON for Entity Framework,請在套件管理器控制台中執行下列命令
實體框架6
Install-Package GeoJSON4EntityFramework
實體框架5
Install-Package GeoJSON4EntityFramework5
下載最新版本並手動新增到您的專案參考中
您可以使用 http://geojson.io 和 http://geojsonlint.com 驗證輸出
從 OpenStreetMap® 中提取的測試資料。 OpenStreetMap® 是開放數據,由 OpenStreetMap 基金會 (OSMF) 根據開放資料共享開放資料庫許可證 (ODbL) 進行許可