之前文章中,我们下载了西安路网数据Shp。分享一个下载各省市边界、路网等数据的地址-CSDN博客
今天我们将Shp数据存入PostGIS空间数据库。
VS项目Nuget引入NetTopologySuite,NetTopologySuite.IO.Esri.Shapefile,NetTopologySuite.IO.PostGis库
<PackageReference Include="NetTopologySuite" Version="2.5.0" />
<PackageReference Include="NetTopologySuite.IO.Esri.Shapefile" Version="1.0.0" />
<PackageReference Include="NetTopologySuite.IO.PostGis" Version="2.1.0" />
创建一个model,用来存储路网数据中的属性数据和空间数据:
public class RoadModel
{
public long OsmId { get; set; }
public int RoadTypeCode { get; set; }
public string RoadType { get; set; }
public string RoadName { get; set; }
public string RoadRef { get; set; }
public string Oneway { get; set; }
public int MaxSpeed { get; set; }
public string Bridge { get; set; }
public string Tunnel { get; set; }
/// <summary>
/// geometry: wkb
/// </summary>
public byte[] RoadShape { get; set; }
}
读取Shp文件的所有feature(涉及到Geometry,WKB的转换):
private const