Как отключить выбор средней точки, перетаскивая для типов LineString (режим draw_line_string)

У вас есть два разумных подхода, которые вы можете попробовать здесь, чтобы уменьшить повторение.

У вас может быть отдельный каталог shared-files, который будет находиться в качестве родного брата в ваших папках ролей следующим образом:

play.yml
roles/
  web/
    tasks/
    files/
      other-multiple-files
  role-2/
    tasks/
    files/
      other-multiple-files
  role-3/
    tasks/
  role-4/
    tasks/
  shared-files/
    common-1
    common-2

Затем вы должны ссылаться на это в задачах с относительным расположением файлов, из которых будет папка role / files:

- name: copy common-1
  copy:
    src: ../../common-1
    dest: /path/to/dest/common-1

- name: copy role specific file
    src: other-multiple-files
    dest: /path/to/dest/other-multiple-files

Или, альтернативно, использовать относительный путь к папке , вы могли бы символизировать такие вещи следующим образом:

play.yml
roles/
  web/
    tasks/
    files/
      common-1 -> ../../common-1
      common-2 -> ../../common-2
      other-multiple-files
  role-2/
    tasks/
    files/
      common-1 -> ../../common-1
      common-2 -> ../../common-2
      other-multiple-files
  role-3/
    tasks/
    files/
      common-2 -> ../../common-2
  role-4/
    tasks/
    files/
      common-1 -> ../../common-1
  shared-files/
    common-1
    common-2

И вы можете ссылаться на файл так, как если бы он был в каталоге role / files напрямую:

- name: copy common-1
  copy:
    src: common-1
    dest: /path/to/dest/common-1

- name: copy role specific file
    src: other-multiple-files
    dest: /path/to/dest/other-multiple-files
1
задан allthesignals 15 January 2019 в 19:49
поделиться

1 ответ

Можно достигнуть этого путем создания пользовательского режима из direct_select режима:

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 режима в опциях ничьей:

import DirectSelectWithoutMiddleVertexMode from './DirectSelectWithoutMiddleVertexMode';

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

const draw = new MapboxDraw(drawOptions);

0
ответ дан Sébastien Bousquet 15 January 2019 в 19:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: