选择哪个C++库来处理ESRI shapefiles?

15

有没有人在C++中处理(读取)ESRI shapefiles的经验?

我至少找到了两个开源库:ShapeLib C库OGR。哪一个更好?是否有人使用过其中之一?体验如何?

2个回答

23
GDAL/OGROGR Shapefile 驱动程序直接使用 Shapelib 实现,所以实际上没有区别。如果您检查 OGR 源树,您会发现类似于 shpopen.c 和 dbfopen.c 的 Shapelib 文件。

此外,Frank Warmerdam 是 Shapelib 和 OGR 的作者,我可以证实 Frank 会在 Shapelib 和 OGR 之间保持 shpopen.c 和 dbfopen.c 同步。

总之,就形状文件格式规范的实现而言,Shapelib 和 OGR 之间没有区别。


10

我认为这两个库都还可以,但考虑到ogr有点臃肿和奇怪,所以我会选择ShapeLib库。

shapefile格式非常简单;如果你只需要访问一组特定/简单的shapefiles,那么可以考虑自己编写代码来访问它们,重新发明轮子。我在一个嵌入式应用程序中就是这样做的,而且花费的时间并不比使用这些库多。


决定使用ShapeLib,非常感谢。在我们的情况下,重新开发已经使用该库测试了各种应用程序的代码是没有意义的。 - Sergey Borodavkin
抱歉,我的问题可能有点多,我只是想知道如何渲染shapefiles?我的意思是绘制地图数据?是否有任何开源代码可用于此目的?感谢您的回复。祝好 - iXcoder
@Robin,解决这个问题的最佳方法是搜索互联网。下一个最好的方法是将其作为“单独的问题”发布-评论不是开始新的查询的合适场所。 - Richard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接