Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Apache v2 Release 3.5 Platform iOS+Android Open Issues Closed Issues PRs Welcome

What is WhirlyGlobe-Maply?

WhirlyGlobe-Maply is a mapping toolkit with two parts, hence the dash. The WhirlyGlobe part is an interactive 3D globe. The Maply part is an interactive 2D map. There are separate view controllers (on iOS) for each, but otherwise they share 95% of their code.

This toolkit is used in many apps from big, complicated apps to even more smaller, simpler apps. Feel free to use it in yours.

WhirlyGlobe-Maply is available for both iOS and Android.

Getting Started

If you're new to WhirlyGlobe-Maply, please read the main page. See More Information below for useful links and resources.

There’s a tutorial for both iOS and Android:


iOS Build Status iOS Main
Android Build Status Android Main

This is the main branch of the WhirlyGlobe-Maply Component and API version 3.5. It should be easy to compile, as all the crazy dependencies are in submodules. You can also get a precompiled version.

WhirlyGlobe-Maply uses a bunch of submodules, which you'll need to get. Like so:

git submodule init
git submodule update

Get comfortable. The data is contained in a submodule and it's large.

Once you get all this synced, try to build AutoTester. If it builds, you're good to go. Enjoy.

Want more detail? Go read the Tutorials on the WhirlyGlobe-Maply site.

Breaking Changes

If you're upgrading from 3.3, you will need to make some adjustments due to the switch to xcframework and modular headers:

  • When embedding the framework as is done in AutoTester, Swift no longer automatically imports the module because it doesn't match the project name. You will need an additional import WhirlyGlobe at the top of Swift files using the API.
  • If you're including header files from Obj-C++ code, you'll need to use the modular include style, #import <WhirlyGlobe/Header.h>, and using quoted includes will produce a compile error.

More Information

There's a mailing list for periodic announcements. Join!

Check out the mousebird consulting blog for current progress.

Follow us on Twitter: @whrlyglobemaply

Email questions to: