【问题标题】:Custom drawing layer in Mapbox GL JS (and Leaflet)Mapbox GL JS(和 Leaflet)中的自定义绘图层
【发布时间】:2018-03-07 18:04:10
【问题描述】:

我开始研究将用户功能添加到使用 Mapbox GL JS 构建的现有地图(包装在 Angular 2+ 应用程序中)。我需要做的是让用户能够在地图顶部绘制和旋转椭圆和文本标签,并能够保存结果的屏幕截图。

我没有使用 Mapbox 或 Leaflet 的经验,所以我有很多事情要弄清楚。我的第一个目标是确定我是否可以直接在 Mapbox 中执行此操作(使用插件?),是否需要使用一些第三方绘图库在地图顶部渲染画布(我有很多经验与那些)。

直接在 Mapbox 中执行此操作的明显优势是我们仍然可以缩放和平移。

【问题讨论】:

    标签: leaflet mapbox mapbox-gl-js


    【解决方案1】:

    Mapbox-gl-draw 库允许用户在地图中创作要素,但可能达不到您需要的程度。

    如果用户创建的要素不需要存在于“地图空间”中(即地图是静态的,并且标签静态放置在顶部以进行打印),则直接在画布上工作将为您提供更多的灵活性。您还可以访问更多种类的库。

    【讨论】:

    • 谢谢。我一直在想办法。我可能会使用 EaselJS,并从 Flash Senocular Transform Tool 移植一些旧的 AS3 代码。我也可以使用 SVG 做一些更简单的事情,因为 Angular 很适合。
    • 您可以抓取 Mapbox WebGL 画布并将其另存为 PNG 参见示例 github.com/mpetroff/print-maps/blob/master/js/script.js
    • Mapbox GL Draw 有一个可扩展的 API,因此您可以编写一些代码来扩展它以处理椭圆和文本。
    • @AndrewHarvey,这会支持文本输入(动态文本字段)吗?对于没有 Mapbox 经验的人来说,这会是一个很大的学习曲线吗?
    猜你喜欢
    • 2019-07-31
    • 2021-01-02
    • 1970-01-01
    • 2020-10-09
    • 2018-02-21
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 2018-09-24
    相关资源
    最近更新 更多