Skip to content

mlhorizon/mapbox-gl-js

 
 

Repository files navigation

Build Status

A WebGL JavaScript interactive maps library that can render Mapbox Vector Tiles.

Using mapbox-gl-js

Include the source via HTML tags:

<script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.11.5/mapbox-gl.js'></script>
<link href='https://api.tiles.mapbox.com/mapbox-gl-js/v0.11.5/mapbox-gl.css' rel='stylesheet' />

For more information, see the API documentation and examples.

Alternatively, you can npm install mapbox-gl and use it as a bundled dependency with browserify.

Developing mapbox-gl-js

The following tools are required on any platform to develop mapbox-gl-js. Mac users are advised to use Homebrew unless they want to build these packages manually. APT install steps are relevant to Ubuntu Linux users.

  • git
    • OSX: brew install git
    • APT: sudo apt-get install git
  • node.js
  • GNU Make
  • imagemagick
    • OSX: brew install imagemagick
    • APT: sudo apt-get install imagemagick

On Linux, libglew-dev is required in order to run rendering tests:

$ sudo apt-get install libglew-dev

To install dependencies and build the source files:

$ npm install

To serve the debug page:

$ npm start &
$ open "http://localhost:9966/debug/?access_token="`echo $MapboxAccessToken`

This assumes you have the MapboxAccessToken environment variable set to a Mapbox API token from https://www.mapbox.com/account/apps/. This command uses mattdesl/budo to watch source files, rebuild the browserify bundle, and trigger LiveReload updates.

Running Tests

There are two test suites associated with Mapbox GL JS

  • npm test runs quick unit tests
  • npm run test-suite runs slower rendering tests from the mapbox-gl-test-suite repository

Running Benchmarks

The FPS benchmarking page compares the performance of your local copy of GL JS against previously released versions. Benchmarking configuration is within bench/fps/site.js.

To serve the FPS benchmark page:

$ npm start &
$ open "http://localhost:9966/bench/fps/?access_token="`echo $MapboxAccessToken`

Writing Documentation

See docs/README.md.

Releasing

To prepare a release:

  • Merge mb-pages into master:
    • git checkout master && git merge origin/mb-pages
  • Update CHANGELOG.md
  • Update the version number in package.json, README.md, bench/fps/site.js, _config.yml, and _config.mb-pages.yml
  • Commit changes
  • Tag the release (git tag vX.Y.Z && git push origin --tags). The CI server will automatically publish tagged builds to the Mapbox CDN.
  • Publish the build to npm (npm publish)
  • Merge master into mb-pages and publish documentation:
    • git checkout mb-pages && git merge master && git push origin mb-pages
  • Create a GitHub release

Recommended Reading

Learning WebGL

GL performance

Misc

About

Render Mapbox styles in the browser using JavaScript and WebGL

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 94.3%
  • GLSL 2.7%
  • HTML 1.7%
  • CSS 1.1%
  • Shell 0.2%