Использование растрескивания в OpenLayers6 при отображении нескольких меток для линейного объекта - PullRequest
2 голосов
/ 26 февраля 2020

Цель:

Я пытаюсь отобразить две метки для линии, используя OpenLayers 6.2 (одну над линией и одну под линией), пока включена функция удаления отложений. Изображение целевого состояния с включенным decltertering. Make labels closser

Проблема:

Когда отключена очистка, я могу достичь своей цели, но при включенной очистке текст ниже строки будет отключен .

Фон:

Пожалуйста, обратитесь к приложенному CodeSandbox (файл index. js) (или фрагмент кода ниже) - где я настроил пример мой текущий javascript - в строке 19 и 30, если числа будут изменены на -23 или 24 (или что-нибудь ближе к линии) соответственно, вы заметите, что нижняя метка отключится, если для разгона установлено значение true в строке 64 https://codesandbox.io/s/line-label-style-7y5ly

feature.setStyle([
  new Style({
    stroke: new Stroke({
      color: "blue",
      width: 3
    }),
    text: new Text({
      text: "Text 1 Lorem Ipsum",
      placement: "line",
      textBaseline: "middle",
      offsetY: -24,
      padding: [-10, -10, -10, -10],
      stroke: new Stroke({ color: "red" }),
      backgroundStroke: new Stroke({ color: "red" })
    })
  }),
  new Style({
    text: new Text({
      text: "Text 2 Lorem Ipsum",
      placement: "line",
      textBaseline: "middle",
      offsetY: 25,
      padding: [-10, -10, -10, -10],
      stroke: new Stroke({ color: "blue" }),
      backgroundStroke: new Stroke({ color: "blue" })
    })
  })
])
...