1

我最近继承了一个项目,该项目使用 GIS 地图数据根据纬度/经度坐标定义“区域”。我得到的关于我正在使用的东西的背景信息几乎为零。基本上,我得到了一个文件夹,其中包含以下几种文件类型:

  • .sbn
  • .sbx
  • .shp
  • .shx
  • .mxd

我被告知要看看我能用它们做什么。所以我假设我可以通过 .NET 与他们进行交互,但我不知道任何可用的 API 可以做我需要做的事情。

这是我所拥有的,以及我需要能够做的:

  • 我有 GIS 文件,其中包含地图数据,大概由定义“区域”的线条以及线条的纬度和经度坐标组成。
  • 我需要能够按纬度/经度查询数据

任何人都可以建议一个可以做到这一点的API吗?我知道这个问题可能很适合这个网站,但我认为它可能足够通用。


TL;博士:

任何人都可以为 GIS 数据查询建议一个 .NET api 吗?

4

3 回答 3

1

这是我用来处理 SHP 文件的一个非常棒的 AP​​I。

查看http://shapefile.codeplex.com/

还可以查看 MapWindow,它是一个用 .Net 编写的 GIS 工具,非常方便。

http://www.mapwindow.org/

如果您正在寻找付费 API,请查看 ThinkGeo,他们有一些很好的 .Net API 用于处理 GIS 数据。

于 2012-12-16T23:08:40.783 回答
0

这些文件是 Esri Shp 文件。.mxn 我不知道。通常所有 4 或 5 个文件一起代表地理矢量数据。
搜索关键词“形状文件阅读器”
(我只知道 java 的库)

于 2012-12-16T22:36:37.147 回答
0

首先,这些文件是 ESRI Shapefile。mxd 是 arcmap 项目/地图文件,其中包含这些 gis 数据的路径。

其次,需要逐lat/lon点查询这些数据。我推荐 nettopologysuit库来处理空间分析问题。

这是一些伪代码:

var shapefile=new shapefile("XXX");
//pointToEnv offset depends on your data
double offset=0.0001;
var queryZoom= new envolope(point.x-offset,point.y- 
offset,point.x+offset,point.y+offset);
//spatial query
var queryFeatures= shapefile.queryByEnvolope(queryZoom);
//tranverse your result and get what you need.
于 2018-09-14T09:10:44.203 回答