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

Posted

技术标签:

【中文标题】在 .NET 中分析 GIS/地图数据【英文标题】:Analyzing GIS/map data in .NET 【发布时间】:2012-12-16 22:28:04 【问题描述】:

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

.sbn .sbx .shp .shx .mxd

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

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

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

谁能推荐一个可以做到这一点的 API?我知道这个问题可能很适合这个网站,但我认为它可能足够笼统。


TL;DR:

谁能推荐一个用于 GIS 数据查询的 .NET api?

【问题讨论】:

【参考方案1】:

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

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

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

http://www.mapwindow.org/

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

首先,这些文件是 ESRI Shapefile。 mxd是arcmap project/map文件,里面包含了这些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.

【讨论】:

以上是关于在 .NET 中分析 GIS/地图数据的主要内容,如果未能解决你的问题,请参考以下文章

在 Anylogic 中分配随机 GIS 位置

怎么把地图碎片放到gis当中去

SuperMap系列——GIS数据之地图瓦片

GIS中为啥要考虑地图投影?

嵌入GIS地图服务

在 R 中使用 GIS 数据时仅渲染地图的一部分