antv-l7/docs/api/geometry_layer/plane.zh.md

3.3 KiB
Raw Blame History

title order
PlaneGeometry 0

markdown:docs/common/style.md

简介

PlaneGeometry 是 L7 提供的通用的平面几何体图形,表现为可以自定义为位置,大小和分段数的贴地矩形。

基本用法

设置普通矩形

import { Scene, GeometryLayer } from '@antv/l7';

const layer = new GeometryLayer()
  .shape('plane')
  .style({
    opacity: 0.8,
    width: 0.074,
    height: 0.061,
    center: [120.1025, 30.2594],
  })
  .active(true)
  .color('#ff0');
scene.addLayer(layer);
案例

在线案例

设置 3D 地形模式

import { Scene, GeometryLayer } from '@antv/l7';

const layer = new GeometryLayer().shape('plane').style({
  width: 0.074,
  height: 0.061,
  center: [120.1025, 30.2594],
  widthSegments: 200,
  heightSegments: 200,
  terrainClipHeight: 1,
  mapTexture:
    'https://gw.alipayobjects.com/mdn/rms_23a451/afts/img/A*gA0NRbuOF5cAAAAAAAAAAAAAARQnAQ',
  terrainTexture:
    'https://gw.alipayobjects.com/mdn/rms_23a451/afts/img/A*eYFaRYlnnOUAAAAAAAAAAAAAARQnAQ',
  rgb2height: (r, g, b) => {
    let h =
      -10000.0 +
      (r * 255.0 * 256.0 * 256.0 + g * 255.0 * 256.0 + b * 255.0) * 0.1;
    h = h / 20 - 127600;
    h = Math.max(0, h);
    return h;
  },
});
scene.addLayer(layer);
案例

在线案例

source

🌟 PlaneGeometry 不需要设置 source我们在 style 中通过 center 赋予其位置信息。

style

PlaneGeometry 主要通过 style 方法设置位置、大小以及其他属性。

center: [lng: number, lat: number]

设置 PlaneGeometry 的位置,定位是 PlaneGeometry 的几何中心。PlaneGeometry 贴地放置。

width: number

设置 PlaneGeometry 的宽度,单位是经度。

height: number

设置 PlaneGeometry 的高度,单位是纬度。

widthSegments: number

设置 PlaneGeometry 在 纬度方向上的分段数。

heightSegments: number

设置 PlaneGeometry 在 经度方向上的分段数。

mapTexture: string

PlaneGeometry 纹理贴图 URL。

terrainTexture: string

PlaneGeometry 高度贴图 URL当存在该参数的时候 L7 会自动解析高程信息。

terrainClipHeight: number

指定 3D 地形的裁剪高度。在一些情况下我们可能只需要保留存在丘陵山地的部分,通过这个参数我们可以指定地形高度低于这个参数值的部分不显示.

案例

rgb2height: (r: number, g: number, b: number) => number

这是一个回调函数,参数是 L7 解析出的地形贴图的 rgb 信息,用户可以使用该函数定义高度值的计算逻辑(不同的地形贴图计算逻辑不同)。

🌟 widthSegments/heightSegments 指定 planeGeometry 的分段数,分段越多,地形越平滑,同时性能消耗越大。

markdown:docs/common/layer/base.md