Azure слоев карт становятся друг на друга - PullRequest
2 голосов
/ 20 февраля 2020

Я использую azure карту.

То, что происходит, это то, что у меня есть 2 слоя. Слой с кругами и слой с полигонами.

У меня есть функциональность, в которой появляется всплывающее окно, когда я нажимаю на указанный c круг.

Проблема возникает, когда я добавляю слой многоугольника после слоя круга.

Как будто слой многоугольника рисуется поверх слоя круга. В котором он предотвращает появление всплывающего окна при нажатии на круг.

Вот как я добавляю слой многоугольника:

showFetchedResultOnMap(facilities) {
 const self = this;
 if (facilities && facilities.length > 0) {
  self.cleanRestrictionLayer();
  //Create a data source and add it to the map.
  self.datasource = new atlas.source.DataSource();

  self.map.sources.add(self.datasource);
  //Add a data set to the data source. 

  self.CleanMap();
  //Create a data source and add it to the map.
  var datasource = new atlas.source.DataSource();
  self.map.sources.add(datasource);
  self.map.imageSprite.add(self.chosenCategory, 'assets/svg/' + self.chosenCategory + '.svg')
    .then(function () {
      facilities.forEach(cat => {
        datasource.add(new atlas.data.Feature(new atlas.data.Point([cat.longitude, cat.latitude])));
      });

      //Add a layer for rendering point data as symbols.
      self.map.layers.add(new atlas.layer.SymbolLayer(datasource, self.chosenCategory, {
        iconOptions: {
          //Pass in the id of the custom icon that was loaded into the map resources.
          image: self.chosenCategory,

          //Optionally scale the size of the icon.
          size: 0.1
        }
      }));
    });
}
}

У кого-нибудь есть идея о том, как я могу это исправить?

1 Ответ

1 голос
/ 21 февраля 2020

Я не вижу слой многоугольника в коде, который вы предоставили. Тем не менее, когда вы добавляете слои на карту, порядок их добавления по умолчанию является z-index. Последний добавленный идет сверху. Тем не менее, при добавлении слоя с помощью функции map.layers.add, есть второй параметр, который вы можете добавить, который может быть другим слоем или идентификатором слоя. Когда это указано, добавляемый вами слой будет вставлен ниже второго указанного слоя. Вот do c для этого: https://docs.microsoft.com/en-us/javascript/api/azure-maps-control/atlas.layermanager?view=azure-maps-typescript-latest#add -layer --- layer ---- string --- layer-

Вот краткий пример:

map.layers.add(new atlas.layers.BubbleLayer(datasource, 'myBubbles'));

map.layers.add(new atlas.layers.PolygonLayer(datasource, 'myPolygons'), 'myBubbles');
...