ol-ext扩展插件实现矢量图层的3D渲染时如何修改默认样式

ol-ext扩展插件实现矢量图层的3D渲染时如何修改默认样式

ol-ext实现3D渲染

之前在项目在需要在openlayers中实现物体的3D立体化展示,故找到了ol-ext插件,具体实现过程见使用openlayers的扩展插件实现矢量图层的3D渲染,写这篇博客的原因也是记录自己工作中遇到的问题,以及帮助更多需要帮助的人,上一篇博客中有小伙伴问到一些问题,所以特写这篇博客进行一个解答。

问题汇总及解答

  1. 设置3D渲染之后没有效果
    在这里插入图片描述
    解答:(1) ol-ext是基于openlayers的插件,所以在引入ol-ext之前确保已经正确引入openlayers。

在这里插入图片描述
并需要注意,有时候jquery未正确加载,或加载超时也会造成没有效果。
(2) 调节相关参数

var r3D = new ol.render3D({ height:0, maxResolution:0.6, defaultHeight:3.5 });
//height高度,maxResolution:最大分辨率等属性的影响也会造成对最终结果的一个差异
//,所以可以试试看API文档调节相关的参数
  1. 设置之后想要改变其默认样式
    ol-ext设置三维渲染的默认样式:
    在这里插入图片描述

修改样式:
可以在3D渲染出打个断点,F11一步一步查看整个渲染过程,包括样式
在这里插入图片描述
发现ol-ext.js中3D渲染的方法中对样式的设置为this.setStyle(options.style),所以你可以直接修改ol-ext.js中默认的样式设置(如下图中最下面两个红框所示),也可以在渲染时传入样式配置项
在这里插入图片描述
修改后样式如下:
修改后的样式
注:在初始化渲染时就添加样式配置项,参考示例如下,样式的设置与openlayers一致

/* 20201015 created By qiaozi*/
var style = new ol.style.Style({
		stroke:new ol.style.Stroke({
			color:'rgb(128,234,123)',
			width:2
		}),
		fill:new ol.style.Fill({
			color:'rgba(255,0,0,0.5)'
		})
	})
	var r3D = new ol.render3D({ height:0, maxResolution:0.6, defaultHeight:3.5 ,style:style});
	vector.setRender3D(r3D);

上述代码效果图如下:
在这里插入图片描述

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
多边形等距扩大或缩小是指在保持多边形形状不变的情况下,通过对多边形的每个顶点进行等量的平移来改变多边形的大小。ol-ext是一个开源的JavaScript库,提供了一些方便的方法来实现这种等距扩大或缩小的操作。 在使用ol-ext,可以通过使用其中的“scale”方法来实现多边形的等距扩大或缩小。该方法需要传入一个比例因子作为参数,该因子用于确定扩大或缩小的倍数。如果传入一个大于1的比例因子,多边形将被等比例扩大;如果传入一个小于1的比例因子,多边形将被等比例缩小。 例如,如果我们有一个正方形的多边形,其每个边长为10个单位,我们可以使用ol-ext库的“scale”方法来将其等距扩大为20个单位长的正方形。代码如下: var polygon = new ol.geom.Polygon([[[0, 0], [10, 0], [10, 10], [0, 10], [0, 0]]]); var scaleFactor = 2; polygon.scale(scaleFactor); 这段代码将将原始多边形等比例扩大为原来的2倍,得到一个边长为20个单位的正方形。 同样,如果我们想要将同样的正方形多边形等距缩小为原来的一半大小,可以使用以下代码: var polygon = new ol.geom.Polygon([[[0, 0], [10, 0], [10, 10], [0, 10], [0, 0]]]); var scaleFactor = 0.5; polygon.scale(scaleFactor); 这段代码将原始多边形等比例缩小为原来一半大小,得到一个边长为5个单位的正方形。 通过ol-ext库的“scale”方法,我们可以方便地实现多边形的等距扩大或缩小操作,而无需手动计算每个顶点的新坐标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值