Java API 用于解析MapInfo TAB格式

Java API for parsing MapInfo TAB format

我正在 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 抛出异常:

"Didn't find a minimum of three control points in the .tab file."

我正在使用 public MapInfoFileReader(final File tabfile) 构造函数。我尝试过使用不同版本的 Geotools API。

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

的示例代码

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

GEOT-4619: Support MapInfo TAB files in geotiff format reader

有一个 C++ 库可用于读取和写入名为 MITAB which you could integrate into your application. Alternatively, you could use a library such as GDAL 的 MapInfo TAB 文件,可将您的数据转换为 MIF/MID(一种纯文本 MapInfo 文件格式),然后您可以将其解析为文本。

没有使用 java 代码直接解析 .TAB 的方法。首先,您需要使用 Gdal1 或 ogr2ogr 使用此命令行工具

将 .TAB 转换为 KML 或其他扩展名

ogr2ogr -f "KML" "filepath/filename.kml" "filepath/filename.TAB"

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