Я добавил слой в mapbox, а затем добавил его, чтобы вызвать всплывающие окна.Это прекрасно работает и выглядит так:
map.addLayer({
"id": "circle",
"type": "circle",
"source": "companies",
"paint": {
"circle-radius": 20,
"circle-color": "#C6DB3E",
"circle-opacity": {
"stops": [[3, 0.1], [22, 0.8]]
}
}
});
И здесь я выбираю этот слой для запуска всплывающего окна:
map.on('click', function (e) {
var features = map.queryRenderedFeatures(e.point, {
layers: ["circle"]
});
if (!features.length) {
return;
}
var feature = features[0];
console.log(feature);
// Populate the popup and set its coordinates and content
var popup = new mapboxgl.Popup()
.setLngLat(feature.geometry.coordinates)
.setHTML('...')
.addTo(map);
});
Но проблема возникает, когда я изменил слой, чтобы использовать динамический радиус круга,и слой теперь выглядит так:
map.addLayer({
"id": "circle",
"type": "circle",
"source": "companies",
"paint": {
"circle-radius": {
property: 'Size',
type: 'identity'
},
"circle-color": "#C6DB3E",
"circle-opacity": {
"stops": [[3, 0.1], [22, 0.8]]
}
}
});
Эти слои также правильно печатаются на карту.Но я не могу нажать на него, чтобы получить всплывающее окно.Таким образом, после изменения радиуса круга, ID не кликабелен.Забавно, что если я укажу идентификаторы консоли с помощью map.getStyle (). Layer, идентификатор появится в консоли со всеми другими слоями.Нет ошибок.