You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ArcGIS JavaScript API 4.x:如何禁用图片标记点的选中与拖拽?

ArcGIS JavaScript API 4.x:禁用标记点的选中与拖拽功能

问题描述

我使用ArcGIS JavaScript API 4.x创建了图片标记点,代码如下:

// 图形图层
graphicsLayer = new GraphicsLayer();
theMap.add(graphicsLayer);

// 点符号
const pointSymbol = {
  type: "picture-marker",
  url: "pictures/mymarker.png",
  width: "32px",
  height: "32px"
};

// 承载图片标记的图形对象
const pointGraphic = new Graphic({
  geometry: myPoint,
  symbol: pointSymbol
});
graphicsLayer.add(pointGraphic);

现在需要实现两个需求:

  • 禁用该标记点的选中功能
  • 禁用该标记点的拖拽功能

我原本尝试在Graphic初始化时添加draggable: false属性,但该属性并不存在:

const pointGraphic = new Graphic({
      geometry: myPoint,
      symbol: pointSymbol,
      draggable: false  // 该属性不存在
    });

解决方案

感谢Cabesuon提供的示例,我找到了问题根源:默认情况下标记点本身是不可拖拽的,但如果将Sketch对象与标记点放在同一个GraphicsLayer中,该图层内的所有元素都会被设为可拖拽状态。

解决方法是为Sketch对象单独创建一个图层:

修改前代码

sketch = new Sketch({
view: view,
layer: graphicsLayer,
...

修改后代码

sketch = new Sketch({
view: view,
layer: createDifferentLayerNameHereJustForSketch,
...

修改后标记点不再可拖拽,同时也不会被Sketch工具选中编辑。


内容的提问来源于stack exchange,提问作者Robert Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:22:43