首页
学习
活动
专区
工具
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库中的函数可以处理不仅仅是矩形,还可以处理任意多边形,包括凹多边形和自相交多边形。

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

相关·内容

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

35810

超融合时序数据库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.7K30

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操作代价要大得多。...无论是绘制多边形方向、定义多边形起点,还是使用个数差异在这里都不重要。重要多边形包含相同空间区域。

5.6K10

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.3K20

超融合时序数据库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.4K10

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

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

10110

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

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

51330

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(); // 列表中获取每个单独几何图形并打印出来。

8810

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

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

1.5K40

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是只返回定义中坐标。 今天学了对平面几何类型定义,下次就开始学习使用了。

59320

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

在三维空间中,可能是一个同构曲面 多边形(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 ):仅将在所有方面完全相同,坐标相同,顺序相同几何视为相等。

1K20

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()); // 将坐标打印为列表。

11710

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

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

1.2K40

Python | GDAL处理矢量数据

存储着坐标值(二维坐标),几何对象均由构成 线是有序连成线段 面(多边形)是首尾相连线围成区域 OGR中只有二维坐标X和Y,额外Z坐标(海拔高程)被认为是2.5D而不是3D 创建要素...# 创建要素“火堆”,使用ogr.Geometry函数,设定要素类型为“” firepit = ogr.Geometry(ogr.wkbPoint) # 设定点坐标 # 向对象中添加一个坐标...“炸开” # 后往前添加,因为加入新顶点后,后边顶点索引会自动更新 # 如果你从前往后加,容易搞乱了到底是往哪个后面添加新 vertices = line.GetPoints() vertices...# 获取多线对象内部线对象,然后逐一编辑 # 例如,获取多线内部0号对象(0号线),然后更改索引为1坐标0开始数) paths2 = paths.Clone() paths2.GetGeometryRef...一个地理坐标系包括角度测量单位、本初子午线和参考椭球体三部分 基准面:是指用来准确定义三维地球形状一组参数和控制,分为区域基准面和地心基准面 投影:将坐标三维球体转换到二维地图上方式 采集和处理数据时

9.4K20

MySQL空间函数汇总

函数和运算符:空间函数参考 - 空间分析功能 MySQL中空间扩展:第19章:MySQL中空间扩展_MySQL 中文文档 ArcMap ST_Geometry :与 ST_Geometry 配合使用...SQL 函数—帮助 | 文档 MySQL Geometry函数:MySQL: Geometry Class Reference 二、空间实现 -- 面包含:1:包含 0:不包含 SELECT ST_Contains...) LineString参数构造多边形 9 ST_PointN() LineString返回第N个 10 MultiLineString() LineString值构造MultiLineString...() 内部几何格式转换为WKB 35 ST_AsText(), ST_AsWKT() 内部几何格式转换为WKT 36 Point() 坐标构造 37 ST_Length() 返回LineString...48 ST_Intersection() 返回设置两个几何交集 49 ST_NumInteriorRing(), ST_NumInteriorRings() 返回多边形内圈数量 50 ST_Envelope

2.3K20
领券