我正在尝试访问MapBoxStudio生成的特定tileet的所有功能。
阅读API文档,我想我应该能够从该方法中获取所有嵌套参数:
map.querySourceFeatures(IdOfMyLayer);
但是,此输出为空。
map.querySourceFeatures('words');
“ words”是我从map.getStyle().layers
获得的图层的ID
我希望可以访问此特定层的属性。 但是,我得到的结果是空的。
很抱歉出现noob问题,但是我在这里缺少MapBox工作方式中的关键内容,非常感谢您的帮助。
答案 0 :(得分:1)
如果您尝试访问在Studio中创建的图块集的所有功能,则应该考虑使用其他工作流程。根据定义,磁贴集是为显示地图(而非查询)而优化的数据集的转换。
如果使用Mapbox 数据集而不是 tileset ,则可以将整个数据集作为干净的GeoJSON对象进行访问-假设它足够小,可以加载到浏览器中。另外,您可以通过其他方式创建GeoJSON,然后将其上传。
如果querySourceFeature()
返回[]
,则很可能尚未在当前视口中加载要素。也许您需要在加载源数据之后的稍后时间触发调用。
答案 1 :(得分:0)
我明白了。 检索数据集所有特征的正确方法是使用DataSet API:
https://docs.mapbox.com/api/maps/#retrieve-a-dataset
这就是我所做的:
$.ajax({
url: 'https://api.mapbox.com/datasets/v1/*****/{dataset_id}/features?limit=50&access_token=********',
type:'GET',
success:function(data){console.log(data)},
error:function(error){console.log('ERROR')}
})
{mapset_id}来自mapboxStudio。
我可以限制并存储变量以处理JSON响应。 非常感谢:)