Какую библиотеку С++ для шейп файлов ESRI выбрать?

У кого-нибудь есть опыт обработки (чтения) шейп файлов ESRI из C++?

Я нашел по крайней мере 2 библиотеки с открытым исходным кодом: библиотеку ShapeLib C и OGR. Какой из них лучше? Кто-нибудь использовал один из них? Как насчет опыта?

Ответы

Ответ 1

Я нашел их обоих в порядке, но я бы выбрал библиотеку ShapeLib, поскольку ogr немного тяжелый/странный для своей цели.

Формат шейп файла очень прост; если вам нужно только получить доступ к определенному/простому набору шейп файлов, вы можете рассмотреть возможность изобретать колесо и написать код для доступа к ним самостоятельно. Я сделал это во встроенном приложении, и это не заняло больше времени, чем использование этих libs.

Ответ 2

Драйвер OGR Shapefile от GDAL/OGR напрямую использует реализацию Shapelib, поэтому на самом деле нет никакой разницы. Если вы проверите дерево источников OGR, вы найдете файлы Shapelib, например shpopen.c и dbfopen.c.

Кроме того, Frank Warmerdam является автором обоих, Shapelib и OGR, и я могу подтвердить, что Фрэнк держит shpopen.c и dbfopen. c в синхронизации между Shapelib и OGR.

В заключение, нет никакой разницы между Shapelib и OGR относительно реализации спецификации формата Shapefile.