ArcGIS for JS 的 GraphicsLayer 可以在一个图层上绘制多个的多边形¹。你可以使用 Polygon 类来创建多边形的几何对象,然后使用 Graphic 类来将几何对象和符号对象组合成图形对象,最后使用 GraphicsLayer 的 add() 方法或者 addMany() 方法来将图形对象添加到图层上。
- 创建一个 GraphicsLayer 对象,可以指定一些属性,如 id, title, visible 等。
- 创建一个或者多个 Graphic 对象,每个 Graphic 对象包含一个几何对象(如 Point, Polyline, Polygon 等)和一个符号对象(如 SimpleMarkerSymbol, SimpleLineSymbol, SimpleFillSymbol 等)。
- 使用 GraphicsLayer 的 add() 方法或者 addMany() 方法来将 Graphic 对象添加到 GraphicsLayer 对象中。
- 使用 Map 的 add() 方法或者 addMany() 方法来将 GraphicsLayer 对象添加到 Map 对象中。
- 使用 GraphicsLayer 的 remove() 方法或者 removeAll() 方法来移除 Graphic 对象。
- 使用 Map 的 remove() 方法或者 removeAll() 方法来移除 GraphicsLayer 对象。
你可以参考以下的示例代码:
// 创建一个 GraphicsLayer
var graphicsLayer = new GraphicsLayer();
// 创建一个 Polygon 几何对象
var polygon = new Polygon({
rings: [
[-64.78, 32.3],
[-66.07, 18.45],
[-80.21, 25.78],
[-64.78, 32.3]
]
});
// 创建一个 SimpleFillSymbol 符号对象
var fillSymbol = new SimpleFillSymbol({
color: [227, 139, 79, 0.8],
outline: {
color: [255, 255, 255],
width: 1
}
});
// 创建一个 Graphic 图形对象
var graphic = new Graphic({
geometry: polygon,
symbol: fillSymbol
});
// 将 Graphic 添加到 GraphicsLayer
graphicsLayer.add(graphic);
// 将 GraphicsLayer 添加到地图
map.add(graphicsLayer);
GraphicsLayer 有以下一些方法1:
- add(graphic):将一个 Graphic 对象添加到图层中。
- addMany(graphics):将一个 Graphic 对象数组添加到图层中。
- clone():返回一个新的 GraphicsLayer 对象,包含和原图层相同的属性和图形。
- createGraphicsController():创建一个 GraphicsController 对象,用于管理图层中的图形。
- findGraphicsByAttribute(attributeName, attributeValue):根据属性名和属性值查找图层中的图形,返回一个 Graphic 对象数组。
- get(graphicId):根据图形的 id 属性查找图层中的图形,返回一个 Graphic 对象。
- removeAll():移除图层中的所有图形。
- remove(graphic):移除图层中的一个指定的图形。
GraphicsLayer 方法的一些应用场景如下1:
- 使用 add() 方法或者 addMany() 方法来在地图上绘制一些自定义的图形,如点、线、面等,可以用于展示一些数据或者标注一些位置。
- 使用 clone() 方法来复制一个图层,可以用于在不同的地图上显示相同的内容,或者在同一个地图上显示不同的样式。
- 使用 createGraphicsController() 方法来创建一个图形控制器,可以用于对图层中的图形进行一些操作,如选择、移动、缩放、旋转等。
- 使用 findGraphicsByAttribute() 方法或者 get() 方法来根据属性查找图层中的图形,可以用于实现一些搜索或者过滤的功能。
- 使用 removeAll() 方法或者 remove() 方法或者 removeMany() 方法来移除图层中的图形,可以用于清空或者更新地图上的内容。