问题标签 [boost-geometry]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
380 浏览

c++ - 提升几何点设置器和获取器

我正在使用 boost 几何库,并且我已经阅读了我应该更喜欢使用boost::geometry::set<0>(point1, 1.0);而不是point1.set<0>(1.0); 与 get 方法相同的文档:bg::get<0>(point1)而不是point1.get<0>();

谁能解释我为什么要这样做?文档在这里(示例;在页面底部):boost point documentation

0 投票
1 回答
1877 浏览

c++ - 如何从 boost::geometry::model::point 继承?

我想从bg::model::point继承以使用自己的功能扩展它。*point*s 应存储在rtree中。

以下最小示例无法编译我的派生点的用法(boost 1.54,gcc 4.7.2):

我如何从 bg::model::point 派生?或者,除了继承,还有更好的方法吗?

谢谢!

0 投票
2 回答
1096 浏览

c++ - 使用 Boost.Geometry 计算线和多边形之间的交点

我想要计算一条线和一个多边形的交点,或者两条线等。如何使用Boost.Geometry计算这个点?

0 投票
2 回答
1470 浏览

c++ - 创建并检查点是否在多边形内

我有一个std::list2D 点,想测试一个点是否p位于向量给出的多边形内。我已经发现它boost::geometry有一个within测试这个的功能。不幸的是,我似乎以错误的方式使用它:

我收到各种编译错误,从within. 那么构建多边形并使用它的正确方法是什么within

问候

0 投票
2 回答
747 浏览

c++ - 查找到图中某个点一定距离内的所有linesegments=edges,如何将boost-graph与boost-geometry结合起来?

我在游戏设置中有一组用户路径(2 暗淡),它们被建模为一组线(弧)和航点 = 顶点。整个路径集可以看作是一个图,其中的边是线段,具有长度、概率等附加属性。

现在我必须识别到用户当前位置一定距离内的一组(直线)线段 = 边,以便在图中找到用户的位置。

如何在不重新发明轮子的情况下尽可能简单地实现这一点?如何高效地实现搜索?

我想到了使用 boost-graph 来处理图形并将其与 boost-geometry 结合起来。例如,请参阅 TrajGraph,它在 boost-graph 中使用捆绑属性:

现在为了将线段存储为边缘属性,可以添加 boost geometry 的 model::linestring 并使用 boost-geometry 的最近邻查询来查找线段。但是 afaik boost-geometry 不允许像 boost-graph 那样将属性附加到线串。因此如何从线串中获取边缘?

一个简单的蛮力解决方案可能是遍历图形的整个边缘列表并计算到每个线段的距离。有关如何计算到直线段的距离的信息,请参见此处此处。

0 投票
3 回答
1569 浏览

c++ - C++ Boost 库geometry.hpp

我使用命令 libboost-all-dev 在我的 ubuntu 12.04 LTS 中安装了 boost 库,但是当我包含 /boost/geometry.hpp 时,它没有被包含在内。我检查了系统,它不包含任何 geometry.hpp 文件,甚至没有任何几何图形。我下载的 boost 库中没有几何文件

0 投票
2 回答
5206 浏览

c++ - 膨胀/放气(偏移、缓冲)折线的算法

相关问题:
膨胀/放气(偏移、缓冲)多边形的算法

不同之处在于我正在寻找一种将给定折线膨胀为多边形的方法:

折线,周围有一个框

我有以下输入:

  • 形成折线的二维点列表(草图中的亮绿色)
  • 线宽

输出应该是一个多边形,它显示线条看起来如何被宽度扩展。

我原本以为我可以为此使用Boost::Geometry::buffer,不幸的是它现在似乎只支持盒子。最好使用Boost::GeometryGDAL/OGR的解决方案。

更新:
我选择使用 Clipper 库及其OffsetPolyLines函数。一旦 Boost Geometry 发布并支持折线缓冲区,我将切换到 Boost(因为其他所有东西都在我的软件中使用 Boost 运行)。

0 投票
0 回答
153 浏览

c++ - 交叉多边形增强中的错误

使用 boost 库中的 intersection() 函数时遇到以下错误。

我有一个多边形向量,我想得到每个多边形与正方形的交集 (((300, -90), (300, 90), (500, 90), (500, -90), (300, -90)))。

在这些多边形中有一个多边形 (((300, 90), (273.338, 31.7382), (208.263, 6.01099), (188.95, 12.8509), (161.473, 90), (300, 90))),

当我在下面的循环中计算结果时,这个多边形的结果是错误的。输出为 (((300, 90), (300, 90), (500, 90), (500, -90), (300, -90), (300, 90)))。但是,如果我不使用循环而只测试这个多边形,则交集是空的,结果是我所期望的。

这很奇怪。有人可以知道是什么原因吗?

}

0 投票
2 回答
110 浏览

c++ - 在坐标类型上模板化我的类并使用 Boost Geometry 库时出现编译错误

我正在 Boost Geometry 库之上编写库代码。我的课程应该以坐标类型(通常是 int/float/double 等)为模板。下面的代码(精简到最低限度)无法编译,我得到一个对我没有帮助的编译错误。

编码:

错误:

我正在使用以下代码编译此代码:g++ -I./boost_1_54_0 test.cpp -o test.o. 我使用了不同版本的 G++ 4.5.2/4.7.2/4.8.1,但我仍然得到同样的错误。

我在这里想念什么?提前致谢。

0 投票
1 回答
1030 浏览

c++ - 如何使用 Boost::Geometry 解析 wkt Geometrycollection?

我是 boost::geometry 的新手,在文档或此处找不到任何示例。我在每一行都有一个带有 wkt GEOMETRYCOLLECTION 的文本文件。每个集合都包含一个或多个 MULTIPOINTS。解析 MULTIPOINTS 没问题:

但我需要解析这样的东西:

任何想法如何做到这一点?