首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何禁用中点选择,为LineString类型拖动(draw_line_string模式)

如何禁用中点选择,为LineString类型拖动(draw_line_string模式)
EN

Stack Overflow用户
提问于 2019-01-16 03:49:03
回答 1查看 1.1K关注 0票数 2

如何禁用用户在mapbox-gl-direct_select中选择(绘制) LineString中点的功能?我有一个自定义模式的“注释”,这应该只允许LineStrings与2个顶点。

我已经在自定义模式(https://github.com/mapbox/mapbox-gl-draw/blob/master/docs/MODES.md)中尝试了一些生命周期钩子,特别是针对draw_line_string,包括onDrag。我的问题是,我根本不希望拖动点存在(它会涉及到用户看到一个中点,拖动那个顶点,然后看到它捕捉回来)。

我也尝试过处理绘制样式,但它们对所有中点(包括多边形)都是通用的。

第三种方法可能是在我的框架中的mapbox-gl-draw之外使其无效,但我希望完全避免选择中点的能力。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-13 22:06:08

您可以通过从direct_select模式创建自定义模式来实现此目的:

代码语言:javascript
复制
import * as MapboxDraw from '@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw';
import createSupplementaryPoints from '@mapbox/mapbox-gl-draw/src/lib/create_supplementary_points';
import Constants from '@mapbox/mapbox-gl-draw/src/constants';

const DirectSelectWithoutMiddleVertexMode = MapboxDraw.modes.direct_select;

DirectSelectWithoutMiddleVertexMode.toDisplayFeatures = function (state, geojson, push) {
  if (state.featureId === geojson.properties.id) {
    geojson.properties.active = Constants.activeStates.ACTIVE;
    push(geojson);
    createSupplementaryPoints(geojson, {
      map: this.map,
      midpoints: false,
      selectedPaths: state.selectedCoordPaths
    }).forEach(push);
  } else {
    geojson.properties.active = Constants.activeStates.INACTIVE;
    push(geojson);
  }
  this.fireActionable(state);
};

export default DirectSelectWithoutMiddleVertexMode;

唯一要做的就是将midpoints属性设置为false,以避免创建中点。

之后,使用自定义模式覆盖绘图选项中的direct_select模式:

代码语言:javascript
复制
import DirectSelectWithoutMiddleVertexMode from './DirectSelectWithoutMiddleVertexMode';

const drawOptions = {
    modes: Object.assign({
        direct_select: DirectSelectWithoutMiddleVertexMode
    }, MapboxDraw.modes)
};

const draw = new MapboxDraw(drawOptions);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54205896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档