我想在ASP.NET MVC应用程序中打开shapefile文件,正在研究并找到sharpmap但尚未找到如何实现MVC的示例。有没有人有任何例子可以帮助我发展。
我使用NetTopologySuite.IO.Shapefile Nuget包完成了这个
DbaseFileReader _dbfReader;
ShapefileReader _shpReader;
IEnumerator _dbfEnumerator;
IEnumerator _shpEnumerator;
ShapefileHeader _shpHeader;
DbaseFileHeader _dbfHeader;
Geometry _shpRecord = null;
private void ReadShapeFiles()
{
try
{
//Read Dbf file
_dbfReader = new DbaseFileReader(dbfFilePath);
//Read Shp file
_shpReader = new ShapefileReader(shpFilePath, GeometryFactory.Floating);
_dbfHeader = _dbfReader.GetHeader();
_recordCount = _dbfHeader.NumRecords;
_dbfEnumerator = _dbfReader.GetEnumerator();
_shpEnumerator = _shpReader.GetEnumerator();
StringBuilder fileContent = new StringBuilder();
while (_dbfEnumerator.MoveNext() && _shpEnumerator.MoveNext())
{
_shpRecord = (Geometry)_shpEnumerator.Current;
// get current dbase record
_columnValues = (ArrayList)_dbfEnumerator.Current;
_columnValues.Insert(0, _shpRecord.Envelope);
_ShapeFileValues.Add(new ShapeFileVm { Name = _columnValues[1].ToString(), polygon = _shpRecord.Envelope.ToString() });
}
for (int i = 0; i < _ShapeFileValues.Count; i++)
{
ShapeFileVm shapeFileVal = (ShapeFileVm)_ShapeFileValues[i];
fileContent.Append("Name : " + shapeFileVal.Name + "\nPolygon : " + shapeFileVal.polygon + "\n");
}
System.IO.File.WriteAllText("C:\\Users\\ShapeFile.txt", fileContent.ToString());
}
catch (Exception ex)
{
throw ex;
}
}