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
相关产品推荐
相关产品推荐

