【问题标题】:Mapbox : GeoJson Source in Runtime StylingMapbox:运行时样式中的 GeoJson 源
【发布时间】:2019-01-31 12:07:02
【问题描述】:

在运行时样式中支持 Mapbox,GeoJson 源代码支持。

我用mapbox-gl-nativemapbox-gl-js 尝试了相同的样式(文件有两个Source 1.Vector、2.GeoJson)。

它在 Native SDK 中按预期工作,但如果源类型是 GeoJson,mapbox-gl-js 似乎会忽略。

我试过版本0.52

【问题讨论】:

    标签: mapbox mapbox-gl-js


    【解决方案1】:

    这绝对是可能的。在使用该源生成样式层之前,您只需在 map 对象上调用 .addSource。此示例显示了添加 GeoJson 源的一般流程:https://docs.mapbox.com/mapbox-gl-js/example/multiple-geometries/

    如果您尝试引用 geojson 文件,您只需指定源对象的该文件的 URL via the data field。如果你要走这条路,GeoJson 文件需要在同一个域中或使用CORS 访问。

    这是一个快速而肮脏的代码 sn-p 来说明我的意思:

    map.on("load", function() {
        map.addSource("my-geojson-source", {
            "type": "geojson",
            "data": "path/to/data.geojson"
        });
    
        map.addLayer({
            "id": "styled-geojson-layer",
            "type": "circle", // this depends on your data & goals
            "source": "my-geojson-source",
            ... // add style things here
        });
    });
    
    

    如果你遇到困难,图书馆文档应该有你需要的一切:

    【讨论】:

    • 是的,这是通过数据驱动样式发生的,但我正在尝试使用运行时样式来实现。在样式文件中添加两个源。
    • 我不完全确定你的意思。你能分享一个显示问题的MVCE吗?
    • 我正在准备。一旦准备好,我一定会分享。谢谢
    猜你喜欢
    • 1970-01-01
    • 2018-11-16
    • 2022-06-24
    • 2022-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多