在.NET中分析GIS /地图数据

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

我最近继承了一个项目,该项目使用GIS映射数据来定义基于纬度/经度坐标的“区域”。我几乎没有得到关于我正在使用的背景信息。基本上我给了一个包含以下几种文件类型的文件夹:

  • .sbn
  • .sbx
  • .SHP
  • .SHX
  • MXD

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

这就是我拥有的,以及我需要做的事情:

  • 我有GIS文件,其中包含映射数据,可能包含定义“区域”的行,以及行的纬度和经度坐标。
  • 我需要能够通过纬度/经度查询数据

任何人都可以建议一个可以做到这一点的API?我知道这个问题可能就此而言非常适合这个网站,但我认为它可能足以适应。


TL; DR:

任何人都可以建议用于GIS数据查询的.NET API吗?

c# .net api geolocation gis
3个回答
1
投票

这是一个非常棒的API,我曾经用过SHP文件。

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

另外看看MapWindow,这是一个用.Net编写的GIS工具,非常方便。

http://www.mapwindow.org/

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


0
投票

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


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.
© www.soinside.com 2019 - 2024. All rights reserved.