【问题标题】:GEOSGeometry to geos::geom::GeometryGEOSGeometry 到 geos::geom::Geometry
【发布时间】:2013-01-25 17:41:17
【问题描述】:

我可能有一些小问题。我正在尝试使用 GEOS 库。我在自己的库中有使用 GEOS 库的函数。我想在我用 C++ 编写的 QGIS 插件中使用这个库。问题是,我的库中的函数使用geos::geom::Geometry,但在QGIS 插件中,有GEOSGeometry。我认为这是同一件事,但可能不是。

谁能解释一下这两者之间的区别并给我一个建议,如何将它们相互转换或告诉我我做错了什么?谢谢。

【问题讨论】:

    标签: c++ macros qgis geos


    【解决方案1】:

    GEOSGeometry 是 C(非 C++)API 中使用的结构的 typedef。官方文档中指出,使用 C API 优于 C++ API,因为它可能更稳定(就未来的变化而言)。

    我不确定你是否可以简单地铸造结构(我建议不要这样做)。我建议你使用 C API 而不是 C++ API。

    【讨论】:

      【解决方案2】:

      不,您不能简单地在 GEOS C API 类型 GEOSGeometry 和 C++ API 类型之间从根植于 geos::geom::Geometry 类的层次结构中进行转换。

      不过,您可以在 C API 和 C++ API 对象之间使用convert your geometries using WKB as an interchange format

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-10
        • 1970-01-01
        • 2012-01-07
        • 1970-01-01
        • 1970-01-01
        • 2017-06-30
        • 1970-01-01
        相关资源
        最近更新 更多