OpenLayers: рисование полигонов и точек, затем перетаскивание их - PullRequest
0 голосов
/ 28 августа 2018

Я хочу решить проблему с открытыми слоями.

Первая проблема: У меня есть объект, и у него есть набор точек и линий, нарисованных на карте. Я хочу перетащить линию многоугольника И точки вместе.

Вторая проблема: Есть ли у меня способ добавить уникальные слои или элементы, если у меня есть несколько объектов? Я не хочу перемещать путевые точки или линии другого объекта, поэтому я могу использовать открытые слои для рисования линий, которые уникальны и доступны только по имени?

Я новичок в открытии слоев и все еще пытаюсь найти лучший способ навигации по документации API.

1 Ответ

0 голосов
/ 28 августа 2018

Ответ на первый вопрос: объединить элементы линий и точек в один элемент "коллекция" (ol.collection).

Ответ на второй вопрос: для уникальных сущностей вы должны добавить различные функции, используемые самой сущностью. Когда вы выбираете объект, возвращаете коллекцию объектов, которыми вы хотите манипулировать, которыми обладал выбранный объект.

    //get the selected entity that had the waypoints appended to the object
    const selectedEntity = this.entities.get(this.selected);
    //combine the points and the polygon line into one array to turn into a collection
    var linesAndPoints = selectedEntity.waypointFeatures.icons.concat(selectedEntity.waypointFeatures.lines);
    //create an ol.collection object to add to the translate interaction
    let featuresCollection = new ol.Collection(linesAndPoints);
    this.myTranslate = new ol.interaction.Translate({
      condition: ol.events.condition.click,
      hitTolerance: 5,
      features: featuresCollection
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...