NuGet Package
GeoJSON.Net
GeoJSON.Net.Contrib.EF
GeoJSON.Net.Contrib.EntityFramework
GeoJSON.Net.Contrib.MsSpatial
GeoJSON.Net.Contrib.Wkb
string geoJson = System.IO.File.ReadAllText(@"{{geoJson파일}}}"); var geoJsonObject = JsonConvert.DeserializeObject<GeoJSON.Net.Feature.FeatureCollection>(geoJson);geoJson Text 파일을 읽어 Desirialize 하여 object화 합니다. 모델은 GeoJson.Net의 FeatureCollection 을 사용합니다.
foreach (var feature in geoJsonObject.Features) { foreach (var key in feature.Properties.Keys) { if (key.Equals("BASE_DT")) ... = feature.Properties["BASE_DT"].ToString(); } //geometry/geography type 처리 if (feature.Geometry.Type.ToString().Equals("MultiPolygon")) { var geometryWkb = feature.Geometry.ToWkb(); var dbGeometry = DbGeometry.MultiPolygonFromBinary(geometryWkb, 4326); } }features > feature > properties 순으로 foreach 찾아들어갑니다. properties 부분은 사용자 커스터마이징 가능한 부분이므로 key 값에 따라 분류하여 insert/update 시 분기 처리합니다. geometry/geography data type을 위해 wkb(well known binary)를 사용합니다.
좌표계의 변환은 wkb 이후 별도 진행 할 수 있습니다.
'Web_Application > C#' 카테고리의 다른 글
[c#][string.Join] 배열 요소 붙이기 (0) | 2018.03.30 |
---|---|
[C#] Unable to load DLL 'SqlServerSpatial.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) (0) | 2017.12.27 |
[C#][다음API] 좌표로 주소가져오기 (0) | 2017.11.22 |
[C#] 특정기간 동안 월단위로 무언가 처리 할때 (0) | 2017.11.17 |
[C#][다음API] 좌표로 주소를 얻어내기 (0) | 2017.11.07 |