And so I did and now I'm a Mapbox user too. My needs are relatively modest at this point, so the Mapbox free tier account is fine. I can host my maps and geographic data on Mapbox, with up to 50,000 map views per month at no charge.
Mapbox's business is hosting maps and data on their servers. If your needs are big enough, you pay for that service. But they also create a ton of open source software. In fact, they describe themselves as an "open source company."
You can use their software for free to access your maps and data in any app that you write, whether it's a Web app, desktop app, or mobile app. Currently I'm using Mapbox GL JS, their WebGL-based JavaScript library, but there are a lot of native app options available too. If you look at the list of native SDKs, there appears to be something for everyone:
Something for everyone except Pascal users, that is. Or is there something there for us after all? Let's take a closer look.
With Mapbox, cross-platform has a different meaning. Sure, there's the native library that's used by all native SDKs, but you normally don't work with it directly. Instead, you work with an SDK that's designed for a particular language and target. For example, if you're targeting iOS or macOS, you'll likely be using Objective C or Swift and so the Mapbox iOS and macOS SDKs provide a framework library that exposes Objective C classes. If you're targeting Android, you'll likely be using Java and so the Mapbox Android SDK provides Java classes. If your app uses Qt 5, you'll work with the Mapbox Qt SDK's C++ classes. And so on.
And so even though you'll be indirectly using the same speedy OpenGL-based map engine that's at the heart of every native SDK, and you'll do similar things in a similar fashion with any map (pan, zoom, annotate, etc.), you don't do it with common code. Instead, with Mapbox, cross-platform lies more in the specifications for the maps (called styles) and geographic data (typically vector tilesets) that you'll be using on all platforms, native and Web.
You can create styles and tilesets with the nifty online Mapbox Studio, or you can create them locally. A style is just a JSON file that you can edit with a text editor; tilesets can be created from various file types common to desktop GIS, such as shapefiles. In other words, you can do a lot of prep work without writing a line of code for any platform. It also means you can share map styles with other developers and projects across all platforms. In fact, Mapbox provides a number of standard styles that you're free to use.
Looking at the available Mapbox SDKs, there are a couple obvious candidates that we can start with and create Pascal "SDKs" for:
On to Part 2 ...
macpgmr (at) icloud (dot) com
First posted March 16, 2018.