Mapbox GL JS与Mapbox.js

从Mapbox词汇表中, Mapbox.js

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

和Mapbox GL JS

Mapbox GL JS是一个使用Mapbox GL来呈现交互式地图的JavaScript库。 这是一个免费使用的开源库。 您可以将Mapbox样式或使用Mapbox Studio创build的自定义样式添加到您的Mapbox GL JS应用程序中。

并从这个答案

Mapbox样式适用于Mapbox GL和原生iOS和Android SDK。 你不能使用经典的Mapbox JS。 Mapbox JS支持光栅图块,你不能devise这些图块。 他们只是图像。 Mapbox GL和原生SDK(可以)使用vector图块,而且这些图块是可以调整的。

我相信我可以使用mapbox.js作为leaflet cssjs源代码,但是我可以使用mapbox-gl.js吗?
这两个图书馆之间还有什么其他差异?

据我所知,Mapbox GL JS将成为当前在后台使用Leaflet的Mapbox JS的替代品。 传单做了很多事情,GL可以做得更多。 但不是全部。 反之亦然。 GL可以做单张不能做的事情。 GL中最重要的事情就是使用WebGL构buildvector图块。 从介绍文章:

宣布Mapbox GL JS – 一个快速而强大的networking地图新系统。 Mapbox GL JS是一个客户端渲染器,所以它使用JavaScript和WebGLdynamic绘制video游戏的速度和平滑度数据。 Mapbox GL不是在服务器级别固定样式和缩放级别,而是使用JavaScript来实现dynamic样式和自由交互。 vector地图是下一个发展,我们很高兴看到开发人员使用这个框架构build的东西。

如果你真的想要两个并排的比较,我很抱歉没有据我所知。 在比较时有太多的事情要提及/考虑,所以最好你自己根据自己的要求做这样的事情。 一个好的开始是比较每个框架的例子,因为它提供了一个两个都可以做的事情的好主意:

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

有一件事要记住,GL是品牌崭新的,因为我们的开发人员都知道这是一个价格。 一些纠结还没有被解决。 至于小册子,它非常成熟,应用广泛,经过很好的testing/validation。 如果您想要了解GL当前存在哪些问题,可以在Github上查看存储库中的问题:

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

iH8的答案很棒,增加一点细节:

对于基础地图 ,Mapbox.js显示栅格图块(PNG&JPEG)文件,并使用HTML&CSS显示它们。 Mapbox GL JS显示vector图块(幻想协议缓冲区)并使用WebGL显示它们。 它也可以显示光栅图块,但这不是重点。

Mapbox.js和Mapbox GL JS都支持覆盖像GeoJSON图层和标记。 两者都是开源的,具有类似的许可证和less数共享贡献者。

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

Leaflet具有更广泛的浏览器支持,但代价是一些浏览器无法支持的东西,比如地图倾斜和旋转。 Mapbox GL支持支持WebGL的浏览器,并在新电脑上performance最佳。 它有一个名为Mapbox GL Native的原生版本,在所有的手机上performance都非常好。

尽pipe有这些名称,但您可以将Maplet和Mapbox.js和Mapbox GL的Leaflet与非Mapbox样式一起使用。

一般而言,Leafletjs和Mapbox.js是相同的 ,但Mapbox.js具有包装Leaflet和绑定到Mapbox服务(例如方向)的插件和扩展。 类似的插件和function从其他公司或产品存在,Leaflet可以使用它们,或者替代Mapbox。 基于Leaflet的库通常具有更好的传统浏览器支持,使用栅格图块等。这些function正在被添加,包含vector图(pbf,mvt等)和各种渲染器(包括webgl)等现代function。

Mapbox-gl-js和本地变体mapbox-gl高性能的,高度优化的vector图块(pbf,mvt)和webgl,用于渲染到canvas元素(用于-js变体)的开源库。 这是相对较新的,所以使用Leaflet简单的一些事情可能会有所不同或具有挑战性(截至2016年4月),这表明它们非常相似,工作得很好, 包括在移动设备上 (从过去几年来,例如iphone 5s )。 随机怪癖的一个例子是,以色列的希伯来文标签是从右向左读的,是落后的,看起来像是无稽之谈(这是一个正在解决的问题)。

如果删除旧的浏览器支持是可以的,Mapbox-gl(-js)路由可以是一个不错的select。 以我有限的经验(使用它几个月),它总体上具有最好的用户+开发者体验,而Mapbox在其工程/输出方面一直保持一致。 我对付费服务的经验不多,目前还不清楚他们的图书馆与这些服务的紧密结合。 对于一个移动项目,我在看了Google Maps,Leaflet v0.7和v1之后,转移到了mapbox-gl-js,这似乎是一个很好的决定。

我开始使用带有之前Leaflet经验和熟练使用HTML / CSS / JS的Mapbox-gl-js,并发现了这些入门知识和示例 ,有助于理解技术细节。 包括如何使用JSON(不是CSS)对地图进行样式化。 另外仔细看看服务条款,这是一个重要的积极差异, 特别是与谷歌相比。 Mapbox的服务没有美国以外最强大的覆盖范围,所以一定要进行一些审查(根据我的经验,另一个提供者通常是可用的,所以这不一定影响采用这些库的决定,他们是与Mapboxfunction或标准紧密结合)。