在 .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 文件的一个非常棒的 API。
查看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/地图数据的主要内容,如果未能解决你的问题,请参考以下文章