0
我的第一個問題在這裏,對不起提前任何錯誤設置過濾...在mapbox-GL部分字符串
我正在開發一個mapbox網絡爲自己的樂趣,收錄了自己在地圖抽放照片。信息被載入JSON文件,通過這種結構:
"type": "Feature", "geometry": { "type": "Point", "coordinates": [-8.5375900268555,42.881175994873] }, "properties": { "title": "Graffiti", "description": "", "image": { "imageSize": [1024, 768], "imageLandscape": 1, "imageUrl": "imgs/gsa_2016_files/20160805173018_OLY_PEP3_P8052307.jpg" }, "icon": { "iconSize": [96, 73], "iconUrl": "imgs/gsa_2016_files/thumb_20160805173018_OLY_PEP3_P8052307.jpg" }, "extended_info": { "tags": "graffitis,nomada", "place": "europa,españa,galicia,santiago de compostela" }, "time": "2016:08:05 17:30:18", "year": 2016, "month": 8, "day": 5 }
}
我對每個地圖,這是加載這樣不同的JSON文件的工作:
var map = new mapboxgl.Map({ blah, blah... });
var layerIds = [ '2016' ];
var layerColors = [ 'rgba(255,0,0,1)' ];
function add_sources_to_map()
{
for (var i = 0; i < layerIds.length; i++) {
var id = layerIds[i];
var layerId = layerIdPrefix + id;
var geoJsonFile = 'jsons/'+ id + '.geoJSON';
map.addSource(layerId, { type: 'geojson', data: geoJsonFile });
}
}
稍後我使用函數按年過濾元素:
function filterByYear(year) {
var filterFullYear = [ '==', 'year', year];
// Aplica os filtros nas capas
for (var i = 0; i < layerIds.length; i++) {
var id = layerIds[i];
map.setFilter(id, filterFullYear);
}
}
但我想做一些更多的過濾,部分標籤或地方的內容。例如,任何一個包含「nomada」的「tag」或任何「place」與「europe」的人。儘管我對mapbox-gl甚至js的瞭解都很有限,但我嘗試過但是失敗了。這可以做到嗎?我應該改變我的JSON結構嗎?任何人都可以指點我一些幫助嗎?
TIA!