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!