Installation
Always use the latest version from the Releases page. The version below is an example.
Every package and release asset is listed in Packages; what each variant contains, and how to pick one, in Variants.
Android
Add JitPack and the dependency to your app's build.gradle:
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.massif-maps:MassifMaps-android-aar:6.0.2'
}
That is the full build. A smaller one, or the one that still carries the object API, is a classifier of the
same artifact: ...:6.0.2:core@aar, :lite@aar, :objectapi@aar (variants).
Add the INTERNET permission to AndroidManifest.xml (needed for online tiles/services):
<uses-permission android:name="android.permission.INTERNET"/>
iOS
Use Swift Package Manager:
-
In Xcode: File → Add Packages…
-
Paste the package URL:
https://github.com/massif-maps/MassifMaps-ios-swift -
Pick a version and add one product to your target:
MassifMaps(full),MassifMapsCoreorMassifMapsLite(variants).
You can also download a prebuilt framework from the Releases page.
macOS (Mac Catalyst)
The iOS package ships the Mac Catalyst slices (arm64 and x86_64, macOS 10.15+). Tick Mac Catalyst
under Supported Destinations of your app target and add the same Swift package as on iOS. The API is
the iOS one.
Web
npm install @massif-maps/web
The SDK compiled to WebAssembly, with the same typed API as the NativeScript plugin. The page has to be cross-origin isolated and serve the module from its own origin - both covered in the web guide, with the release zip for a page with no npm.
JavaScript, through an integration
You do not have to write native code. A framework integration wraps the same Android and iOS artifacts, so every renderer feature is reachable from JavaScript.
npm install @nativescript-community/ui-massifmaps
import { api } from '@nativescript-community/ui-massifmaps';
NativeScript is the one that ships today — Vue, Svelte, Angular and plain TypeScript, on Android and iOS. Flutter and React Native bindings are planned, same shape: a binding over the published native builds, no second renderer. The full list, versions and status: Integrations.
Every example carries its NativeScript source beside the Java, Objective-C and web ones, so the same map reads the same in all four.
No license key
The original CARTO SDK required MapView.registerLicense(...) at startup. Massif Maps does not:
there is no license server, and the CARTO online services that needed credentials (Maps API,
SQL API, the hosted basemaps and offline package server) are not part of this fork. Bring your
own tile source and style.
Building from source
The SDK is a large C++ project built per platform. See
BUILDING.md in the repo for the
full toolchain (a SWIG fork and a boost symlink are required). A typical full build takes an hour
or more; for most apps the prebuilt artifacts above are what you want.
Standalone routing library
If you only need routing (Valhalla) without the map view, the repo also ships a lightweight
routing-lib. See the Routing guide and the repository README.