什么是传单和地图箱,它们的区别是什么?

什么是单张和地图箱,它们的区别和用法是什么?它们的 API 之间的主要区别是什么?

56087 次浏览

Update (2014-08-22):

My answer is slightly outdated. Please refer to @tmcw's answer for an up-to-date comparison between Leaflet and MapBox.


Original Answer (2012-09-05):

You're comparing apples and oranges.

Leaflet is "just" a map API. It doesn't provide data/maps itself. Mapbox is a service to design and publish maps, where the end-result is a bunch of generated map-tiles stored in the cloud (and some json files).

Thus, for example, you may consume Mapbox maps from Leaflet. Example

Anyway, Mapbox is developed by a company called DevelopmentSeed, and they have a map API which is indeed a Leaflet competitor, called Modest Maps, although much simpler and with less functionality.

So, to sum it up:

  • Leaflet -> map API , no data
  • MapBox -> design and publish maps

The other answer is good but a bit outdated, since Mapbox has changed significantly in two years.

Leaflet is a JavaScript API for making maps interactive on the internet. It can integrate with Mapbox, but also plenty of other tile sources, like OpenStreetMap, and other data sources, like GeoJSON overlays.

Mapbox is a company that provides map services and technology - one of those services, Map tiles, can be used in Leaflet as base maps - same as you'd use Google Map tiles in the Google Maps API. Mapbox also develops a Leaflet plugin called Mapbox.js that makes it simple to integrate with their tiles while still using all of the great functionality in Leaflet. We also support Leaflet's development, since the maintainer works here.

You can use Mapbox.js without using Mapbox tiles, and use Leaflet with Mapbox tiles - they're entirely mix-and-matchable. Mapbox.js's additions, like TileJSON and UTFGrid support, make it easier to integrate with Mapbox maps, but don't change the existing behavior of Leaflet.

You can think of

  • Mapbox as the GitHub of the maps

  • OpenStreetMaps as git

  • Leaftlet as a git client

  • and mapbox.js as the 'GitHub for Mac'


Let me try to explain more:

OpenStreetMaps (OSM) is an open source project to create/display maps & geo-data; just like git allow to create commit trees for source control. They both are software that handle data.

Mapbox is a hosting company for OSM-based maps with some more power rather than just hosting; which is the same case of GitHub for git projects.

Leaftlet is a library to enable users to display/use OSM based maps on their browsers using OSM hosting service; just like any git client is doing with git hosting services.

mapbox.js is an enhanced library to display/use maps hosted at mapbox.com, which is already based on OSM; just like the "GitHub for Mac" client is made by GitHub to provide an interface to the projects hosted on their servers.

Hopefully this clarifies your doubts.

It is an old post, here is my update.

Mapbox now is using leaflet as their official JavaScript API (I don't know what's the internal working, but... I can't visit Modest Maps at all, and Mapbox doesn't mention anything about Modest Map on their current website).

Leaflet is better I suppose. It gives you flexibility to choose your map source and edit the features as you'd like to! It's just a bit time-consuming to learn though! And the top reason: it's free!