Я борюсь с добавлением события щелчка к точкам на карте mapbox.Мне нужно добавить источник из SQL-запроса бэкэнда в шаблон hbs.Я попытался просто добавить business1 в качестве источника без цикла for, но я получаю предупреждение о недопустимом объекте geojson.Если я добавляю просто «местоположения» в качестве идентификатора, то это, очевидно, дает мне предупреждение о том, что идентификатор уже существует на карте.
Так как же я могу добавить вызов onclick для идентификаторов динамики?
Какя загружаю точки
business1 = {{{businesses}}}
for(i=0;i<business1.length;i++){
// Add the data to your map as a lyer
map.addLayer({
id: 'locations'+[i],
type: 'symbol',
minzoom: zoomThreshold,
// Add a GeoJSON source containing place coordinates and information.
source: {
type: 'geojson',
data: business1[i]
},
layout: {
'icon-image': 'circle-stroked-15',
'icon-allow-overlap': true,
}
});
}
Как называется щелчок карты - с добавленным [i], просто чтобы показать, что я думаю
map.on('click', function(e) {
var features = map.queryRenderedFeatures(e.point, {
layers: ['locations'+[i]] // replace this with the name of the layer
});
if (!features.length) {
return;
}
Что еще я пробовал -но всегда возвращает одно и то же местоположение независимо от того, на что нажали
for(i=0; i<business1.length;i++){
var features = []
var feature = [i]
feature.dataPosition = i;
var clickedNameClicked = names[this.dataPosition]
console.log(clickedNameClicked)
features.push(business1[i]);
}