0
点赞
收藏
分享

微信扫一扫

GraphicsLayer 可以在一个图层上绘制多个的多边形

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() 方法来移除图层中的图形,可以用于清空或者更新地图上的内容。


举报

相关推荐

0 条评论