mapbox/mapbox-gl-native

Interactive, thoroughly customizable maps in native Android, iOS, macOS, Node.js, and Qt applications, powered by vector tiles and OpenGL

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 44 minutes ago
Added to GitGenius on July 8th, 2022
Created on January 27th, 2014
Open Issues & Pull Requests: 312 (+0)
Number of forks: 1,323
Total Stargazers: 4,454 (+0)
Total Subscribers: 43 (+0)

Repository Insights (GitGenius)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 112
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 2,397 days
Stale 30+ days: 112
Stale 90+ days: 112

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • Android (1,060)
  • iOS (721)
  • bug (427)
  • Core (306)
  • archived (282)
  • crash (184)
  • build (183)
  • macOS (167)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Mapbox GL Native is a C++ library that enables developers to embed interactive, customizable vector maps into native applications across multiple platforms including Android, iOS, macOS, Node.js, and Qt. The library processes stylesheets conforming to the Mapbox Style Specification and applies them to vector tiles following the Mapbox Vector Tile Specification, rendering the results using OpenGL or Metal depending on the platform. This approach allows developers to create rich mapping experiences with consistent styling and behavior across different native environments.

The repository functions as a monorepo that serves as the foundation for platform-specific map SDKs. For Android development, the Mapbox Maps SDK for Android provides Java and Kotlin bindings. iOS and macOS developers can use the Mapbox Maps SDK for iOS and macOS respectively, which offer Objective-C and Swift interfaces along with Interface Builder and AppleScript support for macOS. This multi-platform architecture means the core C++ rendering engine remains consistent while each platform gets native language bindings and platform-specific optimizations.

The project uses CMake as its build system to compile Mapbox GL Native across diverse platforms including Linux, Android, iOS, macOS, and Windows. This build infrastructure allows developers to compile the library for their target architecture provided all dependencies are available, and includes example applications for testing and development purposes. The repository is licensed under the 2-Clause BSD license, with dependency licenses tracked through FOSSA.

This cross-project collaboration indicates the library is part of a broader ecosystem of mapping and development tools. The repository has been classified across numerous geospatial and mapping categories including vector tiles, spatial data, navigation app development, GIS platforms, map rendering, location services, interactive visualization, offline mapping, and cartographic rendering.

The library's design philosophy centers on vector tiles and OpenGL rendering, which provides advantages for performance and customization in native applications. By separating the rendering engine from platform-specific implementations, Mapbox GL Native allows consistent map behavior while leveraging each platform's native capabilities. The vector tile approach enables efficient data transfer and rendering of complex geographic data, while the style specification system provides developers with declarative control over map appearance without requiring code changes.

The relationship between Mapbox GL Native and Mapbox GL JS, its WebGL-based web counterpart, creates a cohesive ecosystem where developers can maintain similar mapping implementations across web and native platforms. This consistency reduces the learning curve for teams working across multiple platforms and enables code sharing for styling and configuration logic.