GeoJSON هو تنسيق لتشفير مجموعة متنوعة من هياكل البيانات الجغرافية. قد يمثل كائن GeoJSON شكلًا هندسيًا أو ميزة أو مجموعة من الميزات.
في عام 2015، قام فريق عمل هندسة الإنترنت (IETF)، بالتعاون مع مؤلفي المواصفات الأصلية، بتشكيل مجموعة عمل GeoJSON لتوحيد GeoJSON. تم نشر RFC 7946 في أغسطس 2016 وهي المواصفات القياسية الجديدة لتنسيق GeoJSON، لتحل محل مواصفات GeoJSON لعام 2008.
يدعم GeoJSON أنواع الهندسة Point و LineString و Polygon و MultiPoint و MultiLineString و MultiPolygon و GeometryCollection .
تحتوي الميزة على كائن هندسي وخصائص إضافية، وتمثل مجموعة الميزات قائمة من الميزات.
على سبيل المثال، يمثل المنزل والطريق ومحطة الحافلات ثلاث ميزات مختلفة. قد يكون لكل منهم نوع مختلف من الأشكال الهندسية. يمكن أن يكون المنزل مضلعًا ، ويمكن أن يكون الطريق خطًا مستقيمًا ، ويمكن أن تكون محطة الحافلات نقطة . كلهم يمثلون حيًا وهذا ما يسمى FeaturesCollection في GeoJSON.
EntityFramework (EF) هو إطار عمل مفتوح المصدر لرسم خرائط الكائنات العلائقية (ORM) لـ Microsoft .net. يسمح لنا باستخدام صفوف قاعدة البيانات كمثيلات للفئة.
النص المعروف (WKT) هي لغة ترميز نصية لتمثيل كائنات الهندسة المتجهة على الخريطة، وأنظمة الإسناد المكاني للكائنات المكانية والتحويلات بين أنظمة الإسناد المكاني. باختصار، إنها تمثيلات نصية لكائنات هندسية.
GeoJSON for EntityFramework هي مكتبة .net تسمح لك بإنشاء مخرجات GeoJSON من البيانات المكانية EntityFramework أو مدخلات WKT. بمعنى آخر، يقوم بإجراء تسلسل لأنواع مختلفة من الكائنات الهندسية إلى 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
ج#
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
ج#
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® عبارة عن بيانات مفتوحة، مرخصة بموجب ترخيص Open Data Commons Open Database License (ODbL) من مؤسسة OpenStreetMap Foundation (OSMF)