在MVC ASP.NET中打开shapefile

问题描述 投票:1回答:1

我想在ASP.NET MVC应用程序中打开shapefile文件,正在研究并找到sharpmap但尚未找到如何实现MVC的示例。有没有人有任何例子可以帮助我发展。

asp.net-mvc shapefile
1个回答
0
投票

我使用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;
        }
       }
© www.soinside.com 2019 - 2024. All rights reserved.