Mapbox GL JS 与 Mapbox.js

新手上路,请多包涵

来自 Mapbox 词汇表, Mapbox.js

Mapbox.js 是一个 JavaScript 库,允许您将交互式地图添加到您的网站。它是 Leaflet 的插件,是一个免费使用的开源库。

Mapbox GL JS

Mapbox GL JS 是一个使用 Mapbox GL 渲染交互式地图的 JavaScript 库。它是一个可以免费使用的开源库。您可以将 Mapbox 样式或使用 Mapbox Studio 创建的自定义样式添加到您的 Mapbox GL JS 应用程序。

这个答案

Mapbox Styles 用于 Mapbox GL 和原生 iOS 和 Android SDK。你不能将它们与经典的 Mapbox JS 一起使用。 Mapbox JS 支持光栅图块,你不能设置它们的样式。它们只是图像。 Mapbox GL 和本机 SDK(可以)使用矢量图块并且它们是可样式化的。

I believe I can use mapbox.js as a replacement to the leaflet css and js sources, but can I do the same with mapbox-gl.js

这两个库之间还有哪些其他区别?

原文由 raphael 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 914
2 个回答

据我所知,Mapbox GL JS 将取代当前在后台使用 Leaflet 的 Mapbox JS。 Leaflet 可以做的很多事情,GL 也可以做,甚至更多。但不是一切。反之亦然。 GL 可以做 Leaflet 做不到的事情。 GL 的重要之处在于它是使用 WebGL 围绕矢量图块构建的。来自介绍文章:

宣布推出 Mapbox GL JS — 一种快速而强大的网络地图新系统。 Mapbox GL JS 是一个客户端渲染器,因此它使用 JavaScript 和 WebGL 以视频游戏的速度和流畅度动态绘制数据。 Mapbox GL 不是在服务器级别固定样式和缩放级别,而是赋予 JavaScript 强大的功能,允许动态样式和自由形式的交互。矢量地图是下一个发展方向,我们很高兴看到开发人员使用此框架构建的内容。

如果你真的想对两者进行并排比较,很抱歉据我所知没有。进行比较时需要提及/考虑的事情太多,因此最好根据自己的要求自己做这样的事情。一个好的开始是比较每个框架的示例,因为它很好地说明了两者可以做什么:

之后你可以比较他们的 API:

要记住的一件事是 GL 是全新的品牌,我们开发人员都知道这是有代价的。有些问题还没有解决。至于 Leaflet,它非常成熟,被广泛使用并且经过了很好的测试/验证。如果您想了解 GL 当前存在的问题,您可以查看存储库中 Github 上的问题:

希望有所帮助,祝你好运!

原文由 iH8 发布,翻译遵循 CC BY-SA 3.0 许可协议

iH8 的回答很好,添加更多细节:

对于 _基础地图_,Mapbox.js 显示栅格图块(PNG 和 JPEG)文件,并使用 HTML 和 CSS 显示它们。 Mapbox GL JS 显示矢量图块(花哨的协议缓冲区)并使用 WebGL 显示它们。它还可以显示光栅图块,但这不是重点。

Mapbox.js 和 Mapbox GL JS 都支持像 GeoJSON 图层和标记这样的覆盖。两者都是开源的,具有相似的许可证和一些共同的贡献者。

Mapbox.js 图层的样式存储在服务器上并使用服务器技术呈现。 Mapbox GL JS 的样式在浏览器中动态呈现,因此可以实时更改。

Leaflet 有更广泛的浏览器支持,代价是一些浏览器不支持的东西,比如地图倾斜和旋转。 Mapbox GL 支持支持 WebGL 的浏览器,并在较新的计算机上表现最佳。它有一个本地版本,称为 Mapbox GL Native,在所有手机上都表现非常好。

尽管名称不同,您可以将 Leaflet 与 Mapbox 和 Mapbox.js 以及 Mapbox GL 与非 Mapbox 样式一起使用。

原文由 tmcw 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题