[英]Set filter by partial string in 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”的人,或者任何帶有“歐洲”的“地點”。 盡管我對mapbox-gl甚至js的了解有限,但我曾嘗試這樣做,但慘遭失敗。 能做到嗎? 我應該更改JSON結構嗎? 有人可以幫我一些忙嗎?
TIA!
Mapbox-GL-JS不支持此功能。 在此跟蹤該問題: https : //github.com/mapbox/mapbox-gl-js/issues/4698
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.