Arcgis Online - Renderer篇

本文介绍ArcGIS Online中的Renderer和Symbol概念,Renderer用于地图要素的可视化,通过SimpleRenderer和Symbol实现不同图层的样式定制,包括颜色、尺寸、透明度和旋转等视觉变量的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Arcgis Online - Renderer篇

1.Renderer

Renderer是一种地图要素渲染器,有多种类型的渲染器用于可视化数据,每种方法都有不同的用途,可以结合地理特征和统计信息来探索数据并展示成特殊的样式。
Renderer是所有渲染器的基类,它包含了要素图层所希望展示的绘图信息。

Renderer可以再以下图层中进行使用:

  • FeatureLayer
  • SceneLayer
  • MapImageLayer
  • CSVLayer
  • StreamLayer

SimpleRenderer

本案例中使用的Render类型,SimpleRenderer使用一个Symbol对象在一个Layer层中渲染所有的要素。

SimpleRenderer可以在以下图层中使用:

  • FeatureLayer
  • SceneLayer
  • MapImageLayer
  • CSVLayer
  • StreamLayer

SimpleRenderer中可以使用视觉变量(visualVariables),visualVariables是SimpleRenderer的一个属性,类型是一个visualVariable的数组,因此它可以包含多个不同的视觉变量。

visualVariable包含了 “color”“size”“opacity”“rotation” 四种类型,与variable对象的对应关系如下表:

类型对象对象说明
colorColorVariable颜色
sizeSizeVisualVariable尺寸
opacityOpacityVisualVariable透明度
rotationRotationVisualVariable旋转

2.Symbol

Symbol是所有符号的基类。符号将点、线、面和网格的几何图形表示为View中的矢量图形。只能在GraphicsLayer或View.graphics中的单个图形上直接设置符号,或者是将其分配给一个Renderer,然后把Renderer作为FeatureLayer或是SceneLayer的渲染器。

选择不同的Symbol用于描述图层样式,取决于以下几个条件:

  • 需要渲染的视图类型:MapView(2D)或是SceneView(3D)
  • 要素的集合类型:Point、Polyline、Polygon、……
  • 需要展示样式和内容

根据视图类型的不同,可以使用的Symbol也不同

视图类型符号类型
MapView(2D)FillSymbol,LineSymbol,MarkerSymbol,TextSymbol
SceneView(3D)Symbol3D

当使用的视图类型为MapView时,选择符号参照下表

几何类型符号类型
PointSimpleMarkerSymbol,PictureMarkerSymbol,TextSymbol
PolylineSimpleLineSymbol,TextSymbol
PolygonSimpleFillSymbol, PictureFillSymbol, SimpleMarkerSymbol, TextSymbol

当使用的视图类型为SceneView时,选择符号参照下表

几何类型符号类型
PointPointSymbol3D, LabelSymbol3D
PolylineLineSymbol3D, LabelSymbol3D
PolygonPolygonSymbol3D, LabelSymbol3D
MeshMeshSymbol3D, LabelSymbol3D

详细内容建议参考官网文档

上述中虽然没有明确指出,但是3D SceneView 可以支持使用2D符号,而2D MapView 不支持3D符号,在使用3D SceneView时建议还是使用3D符号。

3.案例

当我没有使用Renderer渲染器,进行渲染图层时的样式如下:
渲染前
然后设置样式,代码如下:

 const ysLineRenderer = {
     type: "simple",
     symbol: {
         type: "simple-line",
         color: "green",
         width: "1px",
         style: "solid"
     }
 };

可以看出我创建了一个SimpleRenderer渲染器,并且使用了一个SimpleLineSymbol作为渲染的样式,渲染的样式应该是一条绿色的,像素为1px的实线。

然后将该渲染器给linelayer1进行渲染,需要给FeatureLayer的renderer属性进行赋值,代码如下:

var linelayer1 = new FeatureLayer({
    url: `此处填写Service URL/对应图层的索引`,
    renderer: ysLineRenderer, 
    title: "雨水管道"
});

案例展示结果如下:
渲染后
可以看出linelayer1这个线的要素图层已经被渲染成使用绿色1px的实线了。

本篇内容深度较浅,主要是简单介绍一下Renderer对象以及Symbol对象的用法以及范围,希望更加深入使用的同学可以去Arcgis for Javascript API的官方文档查看更多案例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值