GeoJSON は、さまざまな地理データ構造をエンコードするための形式です。 GeoJSON オブジェクトは、ジオメトリ、フィーチャ、またはフィーチャのコレクションを表す場合があります。
2015 年、インターネット エンジニアリング タスク フォース (IETF) は、元の仕様作成者と協力して、GeoJSON を標準化するための GeoJSON WG を設立しました。 RFC 7946 は 2016 年 8 月に公開され、2008 GeoJSON 仕様に代わる GeoJSON 形式の新しい標準仕様です。
GeoJSON は、 Point 、 LineString 、 Polygon 、 MultiPoint 、 MultiLineString 、 MultiPolygon 、およびGeometryCollectionジオメトリ タイプをサポートします。
フィーチャにはジオメトリ オブジェクトと追加のプロパティが含まれており、 FeatureCollection はフィーチャのリストを表します。
たとえば、家、道路、バス停は 3 つの異なるFeatureを表します。それらはすべて、異なるタイプのジオメトリを持つ可能性があります。家はポリゴン、道路はラインストリング、バス停は点になる可能性があります。それらはすべて近傍を表しており、これは GeoJSON ではFeatureCollectionと呼ばれます。
EntityFramework (EF) は、Microsoft .net 用のオープン ソースのオブジェクト リレーショナル マッピング (ORM) フレームワークです。これにより、データベース行をクラス インスタンスとして使用できるようになります。
Well-known Text (WKT) は、マップ上のベクトル ジオメトリ オブジェクト、空間オブジェクトの空間参照系、および空間参照系間の変換を表現するためのテキスト マークアップ言語です。要約すると、これは幾何学的なオブジェクトをテキストで表現したものです。
GeoJSON for EntityFrameworkは、EntityFramework の空間データまたは WKT 入力から GeoJSON 出力を作成できるようにする .net ライブラリです。言い換えれば、さまざまなタイプのジオメトリ オブジェクトを 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 ) ;
}
Entity Framework 用の GeoJSON をインストールするには、パッケージ マネージャー コンソールで次のコマンドを実行します。
エンティティフレームワーク6
Install-Package GeoJSON4EntityFramework
エンティティフレームワーク5
Install-Package GeoJSON4EntityFramework5
最新リリースをダウンロードし、プロジェクト参照に手動で追加します
http://geojson.io および http://geojsonlint.com を使用して出力を検証できます。
OpenStreetMap® から抽出されたテスト データ。 OpenStreetMap® はオープン データであり、Open Data Commons Open Database License (ODbL) に基づいて OpenStreetMap Foundation (OSMF) によってライセンス供与されています。