Azure 地图图层相互重叠
Azure maps layers are getting on top of each other
我正在使用 azure 地图。
发生的事情是我有 2 层。一个有圆的层和一个有多边形的层。
我有一个功能,当我点击一个特定的圈子时会出现一个弹出窗口。
当我在圆形图层之后添加多边形图层时出现问题。
就像在圆形图层上绘制了多边形图层。其中它防止在单击圆圈时出现弹出窗口。
这是我添加多边形图层的方式:
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
}
}));
});
}
}
有人知道我该如何解决这个问题吗??
我在您提供的代码中没有看到多边形图层。也就是说,当您向地图添加图层时,默认情况下添加它们的顺序是 z-index。最后添加的放在最上面。也就是说,当使用 map.layers.add 函数添加图层时,您可以添加第二个参数,该参数可以是另一个图层或图层 ID。指定后,您要添加的层将插入到第二个指定层的下方。这是关于此的文档: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');
我正在使用 azure 地图。
发生的事情是我有 2 层。一个有圆的层和一个有多边形的层。
我有一个功能,当我点击一个特定的圈子时会出现一个弹出窗口。
当我在圆形图层之后添加多边形图层时出现问题。
就像在圆形图层上绘制了多边形图层。其中它防止在单击圆圈时出现弹出窗口。
这是我添加多边形图层的方式:
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
}
}));
});
}
}
有人知道我该如何解决这个问题吗??
我在您提供的代码中没有看到多边形图层。也就是说,当您向地图添加图层时,默认情况下添加它们的顺序是 z-index。最后添加的放在最上面。也就是说,当使用 map.layers.add 函数添加图层时,您可以添加第二个参数,该参数可以是另一个图层或图层 ID。指定后,您要添加的层将插入到第二个指定层的下方。这是关于此的文档: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');