导入GeoJSON数据到SQL Server数据库中
GeoJSON是GIS行业里一种常见的数据交换格式,能够存储结构化的空间地理信息。因为SQL Server从2008版开始提供了空间数据类型geometry与geography的支持,所以我也试着将项目中用到的地图数据转换到数据库中,方便之后的调用。因为中途遇到了不少坑,所以写了这篇文章作为备忘。
事前准备:了解GeoJSON与SQL Server的空间数据结构
在转换前,我们需要对GeoJSON与SQL Server的空间数据结构有所了解。
下面给出了一篇GeoJSON文档的范例。可以看到,GeoJSON就本质而言其实是我们常见的JSON格式的一种变体,只不过由于语言规范的限制,GeoJSON的结构相对固定。一个完整的GeoJSON就是一个包含类型信息type、以及对象集合features两个成员的Javascript对象,主要空间地理数据存储在这个对象features集合下的geometry、properties成员里。因此要将GeoJSON导入到SQL Server中,其实就是把geometry、properties两个成员里的有效信息解析出来,插入到数据库表中
{"type":"FeatureCollection",
"features":[{"type":"Feature",
"id":"56679924",
"geometry":{"type":"Point",
"coordinates":[-77.0592213018017,38.90222845310455]},
"properties":{"OBJECTID":56679924,"ID":72,
"ADDRESS":"Georgetown Harbor / 30th St NW",
"TERMINAL_NUMBER":"31215",
"LATITUDE":38.902221,"LONGITUDE":-77.059219,
"INSTALLED":"YES","LOCKED":"NO",
"INSTALL_DATE":"2010-10-05T13:43:00.000Z",
"REMOVAL_DATE":null,
"TEMPORARY_INSTALL":"NO",
"NUMBER_OF_BIKES":15,
"NUMBE