2

我正在用 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(final File tabfile) 构造函数。我尝试过使用不同版本的 Geotools API。

是否有用于在 Java 中解析 MapInfo TAB 格式文件的解决方法?或者,如果有人可以提供使用 GeoTools 的 MapInfoFileReader 的示例代码

4

2 回答 2

3

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

ogr2ogr -f "KML" "文件路径/文件名.kml" "文件路径/文件名.TAB"

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

于 2018-03-23T06:54:34.877 回答
2

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

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

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

于 2018-03-22T10:54:47.523 回答