首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从Boost Geometry多边形获取点的坐标

从Boost Geometry多边形获取点的坐标,可以使用Boost Geometry库中的相关函数。Boost Geometry是一个用于处理几何对象的C++库,提供了多种几何对象的表示和操作方法。

以下是一个示例代码,展示如何使用Boost Geometry库从多边形中获取点的坐标:

代码语言:c++
复制
#include<iostream>
#include<vector>
#include<boost/geometry.hpp>
#include<boost/geometry/geometries/point_xy.hpp>
#include<boost/geometry/geometries/polygon.hpp>

namespace bg = boost::geometry;
typedef bg::model::d2::point_xy<double> point_type;
typedef bg::model::polygon<point_type> polygon_type;

int main()
{
    // 创建一个多边形
    polygon_type poly;
    bg::exterior_ring(poly).push_back(point_type(0, 0));
    bg::exterior_ring(poly).push_back(point_type(0, 1));
    bg::exterior_ring(poly).push_back(point_type(1, 1));
    bg::exterior_ring(poly).push_back(point_type(1, 0));
    bg::exterior_ring(poly).push_back(point_type(0, 0));

    // 获取多边形的点的坐标
    std::vector<point_type> points;
    bg::exterior_ring(poly, points);

    // 输出点的坐标
    for (const auto& point : points)
    {
        std::cout << "(" << bg::get<0>(point) << ", " << bg::get<1>(point) << ")"<< std::endl;
    }

    return 0;
}

在上面的示例代码中,我们首先创建了一个多边形,然后使用Boost Geometry库中的函数获取了多边形的点的坐标,并输出了这些点的坐标。

需要注意的是,Boost Geometry库中的函数可以处理不仅仅是矩形,还可以处理任意多边形,包括凹多边形和自相交多边形。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【C++】开源:Boost库常用组件配置使用

通过使用 boost::serialization 命名空间中 << 运算符,您可以将对象写入输出流中。 反序列化:Boost.Serialization 可以字节流反序列化对象。...通过使用 boost::serialization 命名空间中 >> 运算符,您可以输入流中读取字节并重建对象。...几何计算:Boost.Math 提供了一些用于几何计算函数和类,如、向量、矩阵、线段、射线和多边形等。这些工具可以用于解决几何问题,如交点计算、距离计算和形状检测等。...Boost.Geometry几何计算库特性 几何数据模型:Boost.Geometry 定义了一套通用几何数据模型,包括、线、多边形等。...Boost.Geometry 类型 struct Point { double x, y; }; BOOST_GEOMETRY_REGISTER_POINT_2D(Point, double

42410
  • Part3-1.获取高质量阿姆斯特丹建筑立面图像(附完整代码)

    \end{cases} 其中矢量 Vn 是北向矢量,矢量 Vsc 是 S 点到 C 矢量。 北向量 Vn 被定义为 S(xs, ys) 指向正北方向向量。...这两个向量是S到点C向量Vsc和北向量Vn。...获取多边形外轮廓坐标列表 # 转换多边形边界为线性环 linear_ring = gdf_simplify.loc[sample, "geometry"].exterior # 将坐标转换为一个列表...获取每相邻两个坐标中点坐标 因为我们是在投影坐标系下,获取中点只需要分别计算经度和维度两个坐标的平均值: from shapely.geometry import Point # 初始化列表,...,通过查询游标获取此建筑多边形各个边**中点(mid_x, mid_y)**,同时定义一个Arcpy多点几何对象(Multipoint),最后确定坐标系为UTM投影坐标系(WGS 84 / UTM

    55810

    超融合时序数据库YMatrixDB与PostGIS案例

    ,int)获取多几何对象中第N个对象ST_NumPoints(geometry)获取几何对象中点个数ST_PointN(geometry,integer)获取几何对象第N个ST_ExteriorRing...(geometry)获取多边形外边缘ST_NumInteriorRings(geometry)获取多边形内边界个数ST_NumInteriorRing(geometry)(同上)ST_InteriorRingN...(geometry,integer)获取多边形第N个内边界ST_EndPoint(geometry)获取线终点ST_StartPoint(geometry)获取线起始点ST_GeometryType...(geometry)获取几何对象类型ST_GeometryType(geometry)类似上,但是不检查M值,即POINTM对象会被判断为pointST_X(geometry)获取X坐标ST_Y(...geometry)获取Y坐标ST_Z(geometry)获取Z坐标ST_M(geometry)获取M值类型转换函数函数返回类型描述示例结果box(circle)box圆形转矩形select

    1.8K30

    POSTGIS 总结

    srid,不同srid就是不同标准坐标空间函数: ST_X(geometry) —— 返回X坐标 ST_Y(geometry) —— 返回Y坐标 线串空间函数: ST_Length(geometry...) —— 返回线串长度 ST_StartPoint(geometry) —— 将线串第一个坐标作为返回 ST_EndPoint(geometry) —— 将线串最后一个坐标作为返回 ST_NPoints...(geometry) —— 返回线串坐标数量 多边形空间函数: ST_Area(geometry) —— 返回多边形面积 ST_NRings(geometry) —— 返回多边形中环数量(通常为1...ST_PointOnSurface(geometry) —— 返回保证在输入多边形计算上讲,它比centroid操作代价要大得多。...无论是绘制多边形方向、定义多边形起点,还是使用个数差异在这里都不重要。重要多边形包含相同空间区域。

    6.1K10

    超融合时序数据库YMatrixDB与PostGIS案例

    A, geometry B) 获取两个几何对象不相交部分(A、B可互换) ST_Difference(geometry A, geometry B) A去除和B相交部分后返回 ST_Union(...) 获取多边形外边缘 ST_NumInteriorRings(geometry) 获取多边形内边界个数 ST_NumInteriorRing(geometry) (同上) ST_InteriorRingN...(geometry,integer) 获取多边形第N个内边界 ST_EndPoint(geometry) 获取线终点 ST_StartPoint(geometry) 获取线起始点 ST_GeometryType...(geometry) 获取几何对象类型 ST_GeometryType(geometry) 类似上,但是不检查M值,即POINTM对象会被判断为point ST_X(geometry) 获取X坐标...ST_Y(geometry) 获取Y坐标 ST_Z(geometry) 获取Z坐标 ST_M(geometry) 获取M值 类型转换函数 函数 返回类型 描述 示例 结果 box(circle

    1.5K10

    2019GEOJSON标准格式学习

    首先是将这些要素封装到单个geometry里,然后作为一个个Feature(也就是要素);要素放到一个要素集合里,树状结构来理解FeatureCollection就是根节点,表示为: { "type...要素Point 要素是最简单,类型type对应Point,然后坐标是一个1维数组,里面有两个元素(如果是立体坐标就是三维x,y,z),分别为经度和纬度。...MultiPolygon type 1 两个不会相交多边形 { "type": "Feature", "properties": {}, "geometry": { "type": "MultiPolygon...两个镶套多边形 type 3 有孔洞多边形 { "type": "Feature", "properties": {}, "geometry": { "type...,如外包矩形等,其中特别重要坐标系统,一般里面的坐标默认为WGS84,当然也可以是其他坐标系统坐标,但是要标识。

    1.4K20

    OB 开发 | ActionDB 扩展 OB GIS 能力:新增 ST_PointN 函数

    ST_PointN 函数接受一个几何对象(如线或多边形)和一个索引 N,返回该几何对象第 N 个。该函数主要作用是帮助用户复杂几何对象中提取具体,以便进行进一步地理分析或处理。...有哪些常见应用场景? 道路和路线分析:在分析交通路线时,可以提取路线中特定点以进行详细分析或优化。 环境监测:用于多边形或线型区域中提取监测,从而对环境数据进行更精确分析。...城市规划:在城市规划中,能够复杂多边形中提取特定点以帮助规划人员做出决策。 导航系统:导航系统中,通过提取路径中关键,优化导航指引和路径规划。 2函数功能实现 如何添加注册信息?...第三步,自定义 pointN 函数。 Boost.Geometry 没有直接提供 pointN 函数,但可以通过访问几何体内部结构实现类似功能。...此方法适用于大多数 Boost.Geometry 提供几何类型(如 linestring 和 multi_point)。

    7710

    Google Earth Engine(GEE)——点线面运算及其交集并集等

    根据奇偶规则,如果该点到已知在多边形外部某个线与奇数个其他边相交,则该点在多边形内部。多边形内部是壳内所有东西,而不是孔内。...作为一个简单例子,圆形多边形一个必须正好穿过一条边才能脱离多边形。如有必要,几何图形可以选择使用“左内”规则。想象一下按照给定顺序走环;内部将在左侧。...为了演示使用“左向内”规则 ( ) 创建几何与使用“奇偶”规则创建几何之间区别,以下示例将一个与两个不同多边形进行比较:evenOdd: false // 创造一个左侧几何图形用来验证是不是包含在里面...Polygon构造左多边形时,提供给构造函数坐标顺序如何 影响结果。...具体来说,该位于左内多边形之外,但位于奇数多边形内。 以下示例基于两个多边形之间关系计算和可视化派生几何:也就是两个几何图形之间交、并、非集。

    22110

    学习PCL库:PCL库中geometry模块介绍

    ,它原理是根据输入起点和终点,计算出沿直线总距离,并将该距离分为多个步长,在每个步长中,通过线性插值计算出当前迭代位置坐标,并在云中查找最近。...此外,pcl::geometry::MeshBase还提供了一些用于获取和设置网格模型数据结构接口函数,如获取、半边和面的数量,获取指定索引、半边和面,以及添加新、半边和面等。...在构造函数中,首先获取与该相邻一个半边,然后通过该半边获取对应面。在遍历时,只需沿着下一个半边继续遍历,并获取对应面即可。...pcl::geometry::MeshIO 提供了常见三维网格模型文件格式(如PLY、OBJ等)中读取和写入三维网格模型方法。...class pcl::geometry::PolygonMesh 用于表示多边形网格类,它包含了多个多边形(即面)以及它们顶点和边。

    78830

    MySQL空间函数实现位置打卡

    图形获取区域坐标 因为项目前端使用微信小程序wx.getLocation获取地理位置,为了坐标的一致性,后台选取区域范围采用了腾讯地图地理位置服务,在应用工具->绘制几何图形里,提供了点、线、多边形和圆形可以方便选取看这里...在官方提供示例上稍加改动即可获取选定位置坐标。 ? 存储位置 取到坐标位置后,接着就是怎么存储?...总之,MySQL可以满足我们需求。 MySQL提供单个存储类型 POINT、LINESTRING、POLYGON 对应几何图形、线、多边形GEOMETRY 可以存储三种中任何一种。...,而polygon函数需要为了确定多边形是否闭合要求第一个和最后一个是一样。...如果几何满足诸如此(非穷举)列表中条件,则它在语法上是 well-formed: 线串至少有两个 多边形至少有一个环 多边形环关闭(第一个和最后一个相同) 多边形环至少有 4 个(最小多边形是一个三角形

    2.5K20

    Google Earth Engine(GEE)——简单几何处理和让你难懂geometries()获取列表信息

    在 以GeoJSON规范详细描述几何形状由地球引擎所支持类型,包括Point (坐标在一些投影列表), LineString(列表), LinearRing(封闭LineString),和Polygon...要以Geometry编程方式创建一个,请为构造函数提供正确坐标列表。...例如: //加载一个 var point = ee.Geometry.Point([1.5, 1.5]); //根据坐标建立一条线 var lineString = ee.Geometry.LineString...([-40, -20, 40, 20]); //加载一个多边形 var polygon = ee.Geometry.Polygon([ [[-5, 40], [65, 40], [65, 60],...这里有一个难点就是就是这个geometries(); var geometries = multiPoint.geometries(); // 列表中获取每个单独几何图形并打印出来。

    14410

    北京到上海,Three.js 旅行轨迹可视化

    其实地图也是由线、由多边形构成,有了数据我们就能画出来,缺少只是数据。 地图信息描述是一个通用需求,所以有相应国际标准,就是 GeoJson,它是通过、线、多边形来描述地理信息。...我们还要画一条北京到上海曲线,这个用贝塞尔曲线画就行,知道两个端点坐标,控制放在中间位置。 那怎么知道两个端点,也就是上海和北京坐标呢?...]) .translate([0, 0]); 中间坐标就是北京经纬度,就是我们通过“百度坐标拾取工具”那里拿到。...遍历 geojson 数据,把每个经纬度通过墨卡托转换变成坐标,然后分别用线和多边形画出来。 画多边形时候遇到北京和上海用黄色,其他城市用蓝色。...geojson 规范,它是由、线、多边形等信息构成

    1.6K40

    SQL2008空间数据类型--欧氏几何1基础

    欧式几何大家基本上都学过,是以坐标来表示,而地理空间就是使用经度和纬度来表示,由于平面几何比较简单(我记得好像是初中时候学,高中学立体几何),所以我就从简单学起,先学习geometry 数据类型。...例如要申明一个Point,坐标为1,2 对应SQL语句就是: DECLARE @g geometry; SET @g = geometry::STGeomFromText('POINT (1 2)',...((0 0, 0 3, 3 3, 3 0, 0 0), (1 1, 1 2, 2 1, 1 1)), Point(9 9))定义了一个带孔多边形和一个集合 STGeomFromText太长了不好记也不好打...Parse函数只有一个参数,就是符合WKT字符串,不需要指定SRID,申明一个可以写为: SET @g = geometry::Parse('POINT (1 2)'); 这里WKT字符串是不区分大小写...这两个函数区别就在于ToString除了坐标外还返回了对象中仰角和度量(如果定义了的话),而STAsText是只返回定义中坐标。 今天学了对平面几何类型定义,下次就开始学习使用了。

    63120

    地理空间数据库复习笔记:关系数据库标准语言、几何对象模型与查询

    在三维空间中,可能是一个同构曲面 多边形(Polygon) 二维坐标空间中由一个外边界、零到多个内边界定义平坦表面,由一个或一个以上线环聚合而成,如省份 仅支持由折线串围成多边形...由多条折线聚合而成,如由多条河流组成水系 多曲线允许出现弧线,多折线由折线组成 多多边形(MultiPolygon): 多面的子类,由多个多边形对象聚合而成,例如多个岛屿组成群岛(大比例尺) 坐标维数和几何维数区别...M值:类除了x, y, z坐标外,还有一个M坐标 M值是线性参考系统一个重要度量值 例如,高速公路上里程碑可用其M值表示从高速公路起点到当前位置距离 由于体表面违反了“多边形元素只能相交在有限数量上...用于获取Geometry最小边界矩形 SELECT ST_AsText(ST_Envelope('POINT(1 3)'::geometry)); Boundary() : Geometry...boolean =( geometry A , geometry B ):仅将在所有方面完全相同,坐标相同,顺序相同几何视为相等。

    1.1K20

    一篇文章带你玩转PostGIS空间数据库

    (Point)数据类型为例,一个可以由它在某一坐标参考系下X、Y坐标值来表示,如“POINT(116.4074 39.9042)”表示了一个位于北京市中心。...几何图形创建函数"以几何图形作为输入并输出新图形。 3.1 以代形 组成空间查询时一个常见需求是将多边形要素替换为要素表示。...这对于空间连接(spatial join)非常有用,因为在两个多边形图层上使用St_Intersects(geometry, geometry)通常会导致重复计算:位于两个多边形边界上多边形将与两侧多边形都相交...,将其替换为点将强制它位于一侧或另一侧,而不是与两侧多边形都相交 ST_Centroid(geometry) —— 返回大约位于输入几何图形质心上。...ST_PointOnSurface(geometry) —— 返回保证在输入多边形计算上讲,它比centroid操作代价要大得多。

    5.8K50

    Google Earth Engine(GEE)——几何要素(、线、面)可视化和信息获取及计算

    我们通常要计算一些点线面要素比如说计算面积长度等等,今天我们就看一下如何将这些可视化同时进行一些简单计算:地理曲面和真实平面展示 代码: // 创建一个地理多边形 var polygon = ee.Geometry.Polygon...这里面主要是这个false就是平面和地理曲面的转换 var planarPolygon = ee.Geometry(polygon, null, false); // 显示我们几何图形看看两者区别...例如,要获取有关先前创建多边形信息,请使用: toGeoJSONString() 返回几何 GeoJSON 字符串表示形式。...Returns: String 想获取什么信息就可以了,用area,perimeter,type,coordinates等等就OK,而且利用toGeoJSONString()进行地理坐标和平面坐标的转化...print('Geometry type: ', polygon.type()); // 将坐标打印为列表。

    25910
    领券