8.7 矢量图层点要素点分布(Point displacement)使用

前言

  • 前面介绍了矢量-点要素-单一符号、矢量-点要素-分类符号、矢量-点要素-分级符号以及矢量-点要素-基于规则的使用
  • 本章介绍如何使用点分布(Point displacement)
  • 说明:文章中的示例代码均来自开源项目qgis_cpp_api_apps

点分布(Point displacement)

点要素过于密集时,将距离近的符号偏移原位置,并环绕在中心符号周围,提高地图可读性。

  • 以下以myplaces.shp为例,分别介绍QGis和二次开发中如何使用点分布

QGis

  • 以myplaces.shp为例,在缩放较小的时候,点会聚集到一起,如下图
    在这里插入图片描述
  • 设置渲染器为点分布(Point displacement)后,效果如下图
    在这里插入图片描述
  • 各选项的说明如下:
    在这里插入图片描述
    • Center symbol:中心符号,点密度过高地集中显示时出现的中心点符号。
    • Renderer:中心符号渲染方式
    • Renderer Settings…:渲染方式设置。
    • Distance:形成中心符号的距离阈值。
    • Placement method:点要素围绕在中心符号的方式,包括圆形排列(Ring)、同心圆排列(Concentric ring)和网格排列(Grid)三种

代码实现

  • QgsPointDistanceRenderer是点分布(Point displacement)渲染器,详情见文档,类图如下
    在这里插入图片描述
  • 以下是实现基于规则渲染的步骤
  1. 从图层获取渲染器

    QgsFeatureRenderer * layerRenderer= layer->renderer();
    QgsPointDisplacementRenderer *pointDisplacementRenderer = QgsPointDisplacementRenderer::convertFromRenderer(layerRenderer);
  1. 成员函数setCenterSymbol可以设置中心符号,代码如下
    QVariantMap mp;
    mp[QString("name")] = QStringLiteral("circle");
    mp[QString("color")] = QStringLiteral("red");
    QgsMarkerSymbol *symbol = QgsMarkerSymbol::createSimple(mp);
    //中心点符号
    pointDisplacementRenderer->setCenterSymbol(symbol);
  1. 成员函数setCircleColor可以设置中心点颜色
  2. 成员函数setPlacement可以设置点要素围绕在中心符号的方式
  3. 成员函数setTolerance可以设置形成中心符号的距离阈值
    //中心点的颜色
    pointDisplacementRenderer->setCircleColor(QColor("black"));
    //点要素围绕在中心符号的方式
    pointDisplacementRenderer->setPlacement(QgsPointDisplacementRenderer::Ring);
    //形成中心符号的距离阈值
    pointDisplacementRenderer->setTolerance(3.0);

在这里插入图片描述
在这里插入图片描述

总结

  • 分别使用QGis软件和C++ Api二次开发演示了点分布的使用
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
移动最小二乘材料方法(MLS-MPM)是一种用于模拟材料行为的方法,它结合了最小二乘法和材料方法。它可以精确地描述材料的位移不连续情况。 MLS-MPM主要用于模拟材料的变形和破坏过程。它基于网格,并在每个网格中引入多个材料,这些可以在网格中移动以模拟变形。每个材料都有一定的质量和速度,并根据施加在材料上的外力和约束进行运动。随着时间的推移,材料的位置和速度会发生改变,从而产生材料的位移和变形。 最小二乘法在MLS-MPM中的作用是用于在网格上与材料之间进行插值。它通过根据相邻材料的特性来估计未知位置的材料的属性。通过使用最小二乘法,我们可以得到在未知位置的材料上的具有最小误差的插值结果。这样,我们可以准确地描述位移不连续性,即在材料之间产生的位移跃变。 移动最小二乘材料方法具有很多优。首先,它可以准确地模拟材料的位移不连续性,因为它考虑了最小二乘插值方法,可以反映具有最小误差的插值结果。其次,它可以处理大变形和破坏的情况,对于描述复杂的材料行为非常有用。此外,它还可以在模拟过程中自适应地调整材料的密度,从而提高计算效率。 总之,移动最小二乘材料方法是一种用于模拟材料位移不连续性的有效方法。它通过结合最小二乘法和材料方法,可以准确地描述材料的变形和破坏过程。它在工程和科学领域中有广泛的应用,对于模拟具有位移跃变的材料行为具有重要意义。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雷动软件工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值