GeoJSON เป็นรูปแบบสำหรับการเข้ารหัสโครงสร้างข้อมูลทางภูมิศาสตร์ที่หลากหลาย ออบเจ็กต์ GeoJSON อาจแสดงถึงเรขาคณิต คุณลักษณะ หรือชุดของคุณลักษณะ
ในปี 2015 Internet Engineering Task Force (IETF) ร่วมกับผู้เขียนข้อกำหนดดั้งเดิม ได้ก่อตั้ง GeoJSON WG เพื่อสร้างมาตรฐาน GeoJSON RFC 7946 ได้รับการเผยแพร่ในเดือนสิงหาคม 2559 และเป็นข้อกำหนดมาตรฐานใหม่ของรูปแบบ GeoJSON ซึ่งแทนที่ข้อกำหนด GeoJSON ปี 2008
GeoJSON รองรับประเภทเรขาคณิต Point , LineString , Polygon , MultiPoint , MultiLineString , MultiPolygon และ GeometryCollection
คุณลักษณะ ประกอบด้วยวัตถุเรขาคณิตและคุณสมบัติเพิ่มเติม และ FeatureCollection แสดงรายการคุณลักษณะ
ตัวอย่างเช่น บ้าน ถนน และป้ายรถเมล์แสดงถึง คุณลักษณะ ที่แตกต่างกันสามประการ ทั้งหมดอาจมีรูปทรงที่แตกต่างกัน บ้านอาจเป็น รูปหลายเหลี่ยม ถนนอาจเป็น ทางเส้น และป้ายรถเมล์อาจเป็น จุดสำคัญ ทั้งหมดเป็นตัวแทนของพื้นที่ใกล้เคียงและสิ่งนี้เรียกว่า FeatureCollection ใน GeoJSON
EntityFramework (EF) เป็นเฟรมเวิร์ก object-relational mapping (ORM) แบบโอเพ่นซอร์สสำหรับ Microsoft .net ช่วยให้เราใช้แถวฐานข้อมูลเป็นอินสแตนซ์ของคลาส
Well-known Text (WKT) เป็นภาษามาร์กอัปข้อความสำหรับแสดงวัตถุเรขาคณิตเวกเตอร์บนแผนที่ ระบบอ้างอิงเชิงพื้นที่ของวัตถุเชิงพื้นที่ และการแปลงระหว่างระบบอ้างอิงเชิงพื้นที่ โดยสรุป เป็นการแสดงข้อความของวัตถุทางเรขาคณิต
GeoJSON สำหรับ EntityFramework เป็นไลบรารี .net ที่ให้คุณสร้างเอาต์พุต GeoJSON จาก EntityFramework Spatial Data หรืออินพุต 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 สำหรับ Entity Framework ให้รันคำสั่งต่อไปนี้ใน Package Manager Console
กรอบการทำงานเอนทิตี 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)