使用.NET读取GeoTiff


11

是否有一个托管库,用于从.NET中的geotiff文件中读取坐标?

我知道可以通过GDAL来完成,但是我正在寻找一种可管理的替代方案。


您可以使用Manifold:218.net,但是至少需要它们的运行时才能与您的应用程序一起分发。但是,在从GeoTIFF进行查询之前,您必须将其阅读为歧管组件,这对您来说可能是个不小的选择。这些都是在后台管理的VC ++,它们的GeoTIFF阅读器是由他们编写的。您可以在应用程序内部使用VBScript或C#脚本进行测试,然后以C#或其他任何形式移植到外部应用程序。
mdsumner'2

否则,mapwindow api可能会很有用,如果我记得的话,我敢肯定我也会发布其他内容
mdsumner 2011年

Answers:



10

您可以使用包含GDAL的.NET包装器。这使您可以从托管代码中访问任何GDAL功能。


我同意...在这种情况下,最好坚持经过久经考验的代码
WolfOdrade

这仍然是未经管理的GDAL。在这种情况下,我只寻找受管理的。
2011年

1
@BjartN:您始终可以使用System.Drawing.Bitmap.PropertyItems,然后自己处理GeoTiff标签:remotesensing.org/geotiff/spec/geotiff2.6.html#2.6.1 但是,我宁愿使用托管包装器周围的本地图书馆...
Reed Copsey

也许这就是我想要的。我将进行调查:)另外,我可能最终得到一个托管包装器,但是我不太想依赖GDAL。会更轻量的东西。
2011年

3

由于.NET Framework内存管理层对性能和内存使用的限制,在托管C#中不会看到很多内容。不要误会我的意思-我喜欢C#和.NET。但是,在这种情况下,本机C ++更快,并且(在我看来)编写起来更省心。

调查通常包含许多GeoTIFF文件,在执行地理转换时(例如,从WGS82到UTMM到TIFF XY坐标,然后再次返回),这需要大量内存和数据处理。诸如编译线性,径向和面积调查的结果之类的事情。

您可能不希望听到这些,但是用本机C ++编写解析器,然后将其包装到C#中将大大提高性能并消除内存限制。实际上,编写解析器非常简单,而且非常轻巧,因为您可以根据需要对其进行定制。当集成更高级的功能(例如自动选择和跨度GeoTIFF文件)时,您会发现尤其如此。


我为您提供了增值的要点:)
BjartN 2011年

非常感激!;)
Mike Christian

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.