javascript - 如何在 openlayers 中定义 webgl 点的大小?
问题描述
我使用 webgl 点图层创建了圆圈,但我不知道如何更改大小。我怎么做?基础链接:https ://openlayers.org/en/latest/examples/webgl-points-layer.html 我的风格如下:
style: {
symbol: {
symbolType: 'circle',
size: [
"interpolate",
[
"exponential",
2.5
],
[
"zoom"
],
2,
1,
14,
32
],
color: 'rgba(255,0,0,0.5)'
}
}
我需要与这些圈子相同的行为:http: //smartcitybr-app-isolated-functions.s3-website-us-east-1.amazonaws.com/index.html
解决方案
它在示例中有效,尽管大小不会增加到缩放 14 以上。您可以根据需要更改最大缩放和大小,还将指数基数减少到 2 可以使过渡更好地与变化的分辨率相关。
"size": [
"interpolate",
[
"exponential",
2
],
[
"zoom"
],
2,
1,
28,
256
],
唯一直接支持的多边形是三角形和正方形。它们可以在两个维度上进行缩放以及旋转,因此您可以使用以下方法获得一个矩形:
"symbolType": "square",
"size": ["array", ["/", 2000, ["resolution"]], ["/", 1000, ["resolution"]]],
对于更复杂的多边形,您需要使用"symbolType": "image",
并提供一个图标 src,它可以是您在 2d 画布上绘制的东西的 dataURL,或者您可以使用 OpenLayers 来生成形状,例如:
symbolType: 'image',
src: new RegularShape({
fill: new Fill({color: 'red'}),
stroke: new Stroke({color: 'black', width: 1}),
points: 5,
radius: 10,
radius2: 4,
angle: 0,
}).getImage(10).toDataURL(),
"size": ["/", 1000, ["resolution"]],
推荐阅读
- javascript - React + Firestore - 双向分页(按特定顺序查询新文档)
- flutter - 如何使 CupertinoActivityIndicator 全白
- mysql - 在 SQL 上,我可以有一个基于多个参数计数的比率列吗?
- python - 无法将 Base64 缓冲区解码为 opencv2 帧
- android - 无效配置“sw٦٠٠dp-v13”
- c# - 添加
到变量中的字符串 - javascript - Typescript 中的 IntrinsicAttributes & TYPE 有没有更好的方法
- jvm - 来自多个 httpClient 的 Vert.x 指标
- java - 用于 Hibernate 的 SearchObject/SearchResult Wrapper API
- python - 如何在不创建多个循环的情况下从循环中的列表分别检查每个键。可能有 KeyError 等