【问题标题】:Map new features in geoJSON source在 geoJSON 源中映射新功能
【发布时间】:2018-04-10 01:01:46
【问题描述】:

我在 Mapbox 中有一个小项目,其中有几个通过 map.addSource 加载的 geoJSON 文件。

我想使用基于其他参数的新属性来扩展其信息(例如,基于日期的单独月份属性,以便能够设置过滤器)。

这可以用 Mapbox GL JS 完成吗? TIA

【问题讨论】:

    标签: javascript mapbox-gl-js


    【解决方案1】:

    如果我理解正确,您想加载一个 GeoJSON 文件,然后对其进行修改,然后再将其显示在 Mapbox 地图上。

    最简单的方法是自己加载它,例如使用 D3-request 的.json(),而不是让 Mapbox 为您获取它:

    d3.json('mydata.geojson', (error, data) => { 
        if (error) {
            console.error(error);
        } else {
            data.features.forEach(f => f.properties.month = f.properties.date.match(...));
            map.addSource('mydata', data);
        }
    });    
    

    【讨论】:

    • 嗯,看起来不错!!但它似乎与我的代码相处得不好...... :(如果我只为我的一个 JSON 文件执行它,它会完美加载,但是当我在 for 循环中加载其中几个时,它会抛出一个“错误:已经有一个具有此 ID 的来源”错误,这对我来说似乎是不可能的。
    • 我已经解决了使用 d3.query 获取源代码,然后使用映射 de 属性的方法。非常感谢!!
    猜你喜欢
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多