用于解析MapInfo TAB格式的Java API

时间:2018-03-21 16:55:04

标签: java gis geotools mapinfo

我正在使用Java解析MapInfo TAB格式文件。它由一组四个文件组成,即.TAB,.ID,.MAP和.DAT。在网上搜索后,我在这个存储库中遇到了GeoTools提供的解析器: https://github.com/geotools/geotools/blob/master/modules/library/main/src/main/java/org/geotools/data/MapInfoFileReader.java

当我使用此API解析MAPInfo TAB格式文件包时,API会引发异常:

  

"在.tab文件中找不到至少三个控制点。"

我正在使用公共MapInfoFileReader(最终的File tabfile)构造函数。我尝试使用不同版本的Geotools API。

是否有解决Java中MapInfo TAB格式文件的问题?或者,如果任何人都可以提供使用GeoTools的示例代码。 MapInfoFileReader

2 个答案:

答案 0 :(得分:3)

使用java代码没有直接解析.TAB的方法。首先,您需要使用此命令行工具将.TAB转换为使用Gdal 1或ogr2ogr的KML或其他扩展

ogr2ogr -f“KML”“filepath / filename.kml”“filepath / filename.TAB”

之后,您可以使用java中的DOM解析器2 API使用java代码解析.kml文件。

答案 1 :(得分:2)

您尝试使用的API专门用于 GeoTiff 格式的栅格标签文件。 github页面上的标题特别提到了这一点:

  

GEOT-4619:支持geotiff格式阅读器中的MapInfo TAB文件

有一个C ++库可用于读取和写入名为MITAB的MapInfo TAB文件,您可以将其集成到您的应用程序中。或者,您可以使用诸如GDAL之类的库将您的数据转换为MIF / MID(纯文本MapInfo文件格式),然后您可以将其解析为文本。