簡體   English   中英

在mapbox-gl中按部分字符串設置過濾器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM