Update remaining MapLibre GL to MapLibre Native (#1216)

This commit is contained in:
Birk Skyum
2023-06-07 17:40:54 +02:00
committed by GitHub
parent 2f17d910b7
commit 78c91b8e71
16 changed files with 47 additions and 47 deletions

View File

@@ -62,7 +62,7 @@ jobs:
libpng-dev \ libpng-dev \
libglfw3-dev libglfw3-dev
- name: Build Maplibre GL Core - name: Build MapLibre Native Core
run: | run: |
cmake --version cmake --version
cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Debug -DMLN_WITH_CLANG_TIDY=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DMLN_WITH_COVERAGE=ON cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Debug -DMLN_WITH_CLANG_TIDY=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DMLN_WITH_COVERAGE=ON

View File

@@ -66,9 +66,9 @@ actors.
The key philosophy of rendering tiles is tiles are rendered layer by The key philosophy of rendering tiles is tiles are rendered layer by
layer. A collection of tiles is called a tile set. To optimize tile layer. A collection of tiles is called a tile set. To optimize tile
rendering, MapLibre Native GL only renders *dirty* tiles. A dirty tile rendering, MapLibre Native only renders *dirty* tiles. A dirty tile
is a tile rendered in the viewport that has changed due to user is a tile rendered in the viewport that has changed due to user
interaction. To initiate this process, MapLibre Native GL loads the interaction. To initiate this process, MapLibre Native loads the
tileset to be rendered first. In a rendering request, if the tileset is tileset to be rendered first. In a rendering request, if the tileset is
already loaded, MapLibre Native will use a cached tile set. already loaded, MapLibre Native will use a cached tile set.

View File

@@ -1,6 +1,6 @@
# Coordinate System # Coordinate System
Before we jump into the coordinate system of MapLibre Native GL, let's Before we jump into the coordinate system of MapLibre Native, let's
quickly review the concepts of translating a position on the face of quickly review the concepts of translating a position on the face of
Earth to a map tile. This is not a comprehensive refresher of coordinate Earth to a map tile. This is not a comprehensive refresher of coordinate
reference systems or rendering basics. Rather this intends to guide the reference systems or rendering basics. Rather this intends to guide the
@@ -21,7 +21,7 @@ Native.
This document uses the word *Earth* when it refers to the planet in This document uses the word *Earth* when it refers to the planet in
which we all live in and make map tiles for. This document uses the word which we all live in and make map tiles for. This document uses the word
*World* to denote the world MapLibre Native GL renders. The word *world* *World* to denote the world MapLibre Native renders. The word *world*
in rendering terms mean the *world* to render. It could be a set of in rendering terms mean the *world* to render. It could be a set of
cones and boxes, a modeled city, anything composed of 3D objects. cones and boxes, a modeled city, anything composed of 3D objects.
MapLibre Native renders map tiles in a range of zoom levels on a 3D MapLibre Native renders map tiles in a range of zoom levels on a 3D
@@ -31,13 +31,13 @@ containing a set of map tiles to be rendered, not the *Earth*.
#### Transformations #### Transformations
MapLibre GL requires a series of coordinate transformations to render a MapLibre Native requires a series of coordinate transformations to render a
geometry from map tile. This is where we refresh our rendering knowledge geometry from map tile. This is where we refresh our rendering knowledge
a bit. To render anything through a GPU: a bit. To render anything through a GPU:
1. Design and define model in the *Local Space*. We call anything that 1. Design and define model in the *Local Space*. We call anything that
needs to be renderer a *model.* In the Local space, a model lives in needs to be renderer a *model.* In the Local space, a model lives in
its own coordinate system. For MapLibre Native GL, in local space its own coordinate system. For MapLibre Native, in local space
each individual tile is modeled. This map tile is already populated each individual tile is modeled. This map tile is already populated
by a map tile generation process. The longitude, latitude bound per by a map tile generation process. The longitude, latitude bound per
tile is now translated to pixel bounds in this local space. tile is now translated to pixel bounds in this local space.
@@ -214,7 +214,7 @@ rendering workflow is to translate object coordinates to world
coordinates. This is important to understand if we are to render coordinates. This is important to understand if we are to render
multiple objects in the world. If we treat all tiles in a zoom level multiple objects in the world. If we treat all tiles in a zoom level
being rendered in a single 3D horizontal plane, then the World Space has being rendered in a single 3D horizontal plane, then the World Space has
only one object. And in MapLibre GL, this plane has an origin of (0,0), only one object. And in MapLibre Native, this plane has an origin of (0,0),
positioned on the top left. positioned on the top left.
## Device Coordinates ## Device Coordinates
@@ -255,7 +255,7 @@ Perspective projection matrix introduces the sense of depth perspective
through the camera. As in objects further from the camera will look through the camera. As in objects further from the camera will look
smaller and objects closer to the camera will look bigger. This smaller and objects closer to the camera will look bigger. This
perspective component is defined by parameter *w.* That is why the perspective component is defined by parameter *w.* That is why the
shaders that MapLibre Native GL at the time of writing uses 4 shaders that MapLibre Native at the time of writing uses 4
dimensional vectors over 3 dimensional vectors. The 4^th^ dimension is dimensional vectors over 3 dimensional vectors. The 4^th^ dimension is
this parameter *w*. Therefore, theoretically a GL coordinate is of the this parameter *w*. Therefore, theoretically a GL coordinate is of the
form `(x, y, z, w)`. form `(x, y, z, w)`.

View File

@@ -76,14 +76,14 @@ implementation follows right after. Another part to notice here is the
implementation evaluates both inputs because they are expressions too. implementation evaluates both inputs because they are expressions too.
Expressions can be nested. Expressions can be nested.
**Although it looks like JavaScript, for MapLibre Native GL**, **the **Although it looks like JavaScript, for MapLibre Native**, **the
parser for any expression is written in MapLibre Native Core**. Each parser for any expression is written in MapLibre Native Core**. Each
platform such as iOS, Android has their own Expression class which platform such as iOS, Android has their own Expression class which
provides builders to build an expression and add it to a layer. When an provides builders to build an expression and add it to a layer. When an
expression is added to a layer, the rendering part of the code picks it expression is added to a layer, the rendering part of the code picks it
up in the MapLibre Native GL Core. up in the MapLibre Native Core.
Also, inside MapLibre GL Core, this definition mechanism allows Also, inside MapLibre Native Core, this definition mechanism allows
extending expressions library with custom expressions if desired. extending expressions library with custom expressions if desired.
## Expression Types ## Expression Types

View File

@@ -4,14 +4,14 @@
*Figure 1: MapLibre Native Components – Ten Thousand Foot view* *Figure 1: MapLibre Native Components – Ten Thousand Foot view*
From ten thousand foot, MapLibre Native is composed of *Map View* and a From ten thousand foot, MapLibre Native is composed of *Map View* and a
*Renderer*. MapLibre Native GL supports iOS, Android, Linux, QT, MacOS, *Renderer*. MapLibre Native supports iOS, Android, Linux, QT, MacOS,
and nodeJS at the time of writing. Each of these *platforms* have their and nodeJS at the time of writing. Each of these *platforms* have their
own *Map View* and *Map Renderer* component. A *Map Renderer* talks to a own *Map View* and *Map Renderer* component. A *Map Renderer* talks to a
shared codebase that renders map by using device GPU. This shared piece shared codebase that renders map by using device GPU. This shared piece
of code at the time of writing supports OpenGL as its choice of of code at the time of writing supports OpenGL as its choice of
rendering API. rendering API.
Apart from the platform code, *MapLibre Native GL* offers shared Apart from the platform code, *MapLibre Native* offers shared
implementation for *Style, Layers, Text, Glyphs*, and *Tiles*. implementation for *Style, Layers, Text, Glyphs*, and *Tiles*.
To summarize: To summarize:
@@ -161,7 +161,7 @@ processing. The platforms also include worker threads for processing for
platform-specific tasks such as running HTTP requests in the background. platform-specific tasks such as running HTTP requests in the background.
But the core code is agnostic about where those tasks get performed. But the core code is agnostic about where those tasks get performed.
Each platform is required to provide its own implementation of Each platform is required to provide its own implementation of
concurrency/threading primitives for MapLibre GL core to use. The concurrency/threading primitives for MapLibre Native core to use. The
platform code is also free to use its own threading model. For example, platform code is also free to use its own threading model. For example,
Android uses a *GLSurfaceView* with a *GLThread* where the iOS SDK uses Android uses a *GLSurfaceView* with a *GLThread* where the iOS SDK uses
*Grand Central Dispatch* for running asynchronous tasks. *Grand Central Dispatch* for running asynchronous tasks.
@@ -175,15 +175,15 @@ simplify, there is only one thread allocated for rendering loop,
background or foreground[^7]. A *Tile Worker* is a thread that prepares background or foreground[^7]. A *Tile Worker* is a thread that prepares
a tile of a specific type. Geometry Tile Worker by the name of it, a tile of a specific type. Geometry Tile Worker by the name of it,
prepares a tile for rendering tiles that contains vector geometry. prepares a tile for rendering tiles that contains vector geometry.
Following that same trend, MapLibre Native GL offers tile worker for Following that same trend, MapLibre Native offers tile worker for
raster tiles and elevation tiles. Messages sent to a tile worker can be raster tiles and elevation tiles. Messages sent to a tile worker can be
processed by any thread, with the assumption that only one thread at a processed by any thread, with the assumption that only one thread at a
time will work with a tile worker instance. time will work with a tile worker instance.
Tile workers are not based on a common interface or base class. Tiles Tile workers are not based on a common interface or base class. Tiles
are. MapLibre Native GL offers a base Tile class. Raster, Geometry, and are. MapLibre Native offers a base Tile class. Raster, Geometry, and
Elevation tile instances are inherited from Tile base class. Through Elevation tile instances are inherited from Tile base class. Through
this inheritance MapLibre Native GL maintains the association of Tile this inheritance MapLibre Native maintains the association of Tile
types and tile workers. Any Tile Worker is an actor that accepts types and tile workers. Any Tile Worker is an actor that accepts
messages of a specific Tile type. For a Geometry Tile Worker, the type messages of a specific Tile type. For a Geometry Tile Worker, the type
is a Geometry Tile. is a Geometry Tile.

View File

@@ -1,7 +1,7 @@
{ {
"name": "@maplibre/maplibre-gl-native", "name": "@maplibre/maplibre-gl-native",
"version": "5.2.0", "version": "5.2.0",
"description": "Renders map tiles with Maplibre GL", "description": "Renders map tiles with MapLibre Native",
"keywords": [ "keywords": [
"maplibre", "maplibre",
"gl" "gl"

View File

@@ -16,8 +16,8 @@ MapLibre Native for iOS is distributed using the [Swift Package Index](https://s
There is a an open bounty to extend this Getting Started guide ([#809](https://github.com/maplibre/maplibre-native/issues/809)). In the meantime, refer to one of these external guides: There is a an open bounty to extend this Getting Started guide ([#809](https://github.com/maplibre/maplibre-native/issues/809)). In the meantime, refer to one of these external guides:
- [Get Started with MapLibre GL Native for iOS using SwiftUI](https://docs.maptiler.com/maplibre-gl-native-ios/ios-swiftui-basic-get-started/) - [Get Started with MapLibre Native for iOS using SwiftUI](https://docs.maptiler.com/maplibre-gl-native-ios/ios-swiftui-basic-get-started/)
- [Get Started With MapLibre GL Native for iOS using UIKit](https://docs.maptiler.com/maplibre-gl-native-ios/ios-uikit-basic-get-started/) - [Get Started With MapLibre Native for iOS using UIKit](https://docs.maptiler.com/maplibre-gl-native-ios/ios-uikit-basic-get-started/)
## Developing ## Developing

View File

@@ -1093,7 +1093,7 @@
DA17BE2F1CC4BAC300402C41 /* MLNMapView_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNMapView_Private.h; sourceTree = "<group>"; }; DA17BE2F1CC4BAC300402C41 /* MLNMapView_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNMapView_Private.h; sourceTree = "<group>"; };
DA1AC01B1E5B8774006DF1D6 /* lt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = lt; path = lt.lproj/Localizable.strings; sourceTree = "<group>"; }; DA1AC01B1E5B8774006DF1D6 /* lt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = lt; path = lt.lproj/Localizable.strings; sourceTree = "<group>"; };
DA1AC0201E5B8917006DF1D6 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = uk; path = uk.lproj/Foundation.stringsdict; sourceTree = "<group>"; }; DA1AC0201E5B8917006DF1D6 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = uk; path = uk.lproj/Foundation.stringsdict; sourceTree = "<group>"; };
DA1DC94A1CB6C1C2006E619F /* MapLibre GL.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "MapLibre GL.app"; sourceTree = BUILT_PRODUCTS_DIR; }; DA1DC94A1CB6C1C2006E619F /* MapLibre Native.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "MapLibre Native.app"; sourceTree = BUILT_PRODUCTS_DIR; };
DA1DC9501CB6C1C2006E619F /* MBXAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBXAppDelegate.h; sourceTree = "<group>"; }; DA1DC9501CB6C1C2006E619F /* MBXAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBXAppDelegate.h; sourceTree = "<group>"; };
DA1DC9531CB6C1C2006E619F /* MBXViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBXViewController.h; sourceTree = "<group>"; }; DA1DC9531CB6C1C2006E619F /* MBXViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBXViewController.h; sourceTree = "<group>"; };
DA1DC95E1CB6C1C2006E619F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; DA1DC95E1CB6C1C2006E619F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@@ -1799,7 +1799,7 @@
DA1DC94B1CB6C1C2006E619F /* Products */ = { DA1DC94B1CB6C1C2006E619F /* Products */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
DA1DC94A1CB6C1C2006E619F /* MapLibre GL.app */, DA1DC94A1CB6C1C2006E619F /* MapLibre Native.app */,
DABCABA81CB80692000A7C39 /* Bench GL.app */, DABCABA81CB80692000A7C39 /* Bench GL.app */,
DA8847D21CBAF91600AB86E3 /* Mapbox.framework */, DA8847D21CBAF91600AB86E3 /* Mapbox.framework */,
DAA4E4131CBB71D400178DFB /* libMapbox.a */, DAA4E4131CBB71D400178DFB /* libMapbox.a */,
@@ -2684,7 +2684,7 @@
); );
name = iosapp; name = iosapp;
productName = iosapp; productName = iosapp;
productReference = DA1DC94A1CB6C1C2006E619F /* MapLibre GL.app */; productReference = DA1DC94A1CB6C1C2006E619F /* MapLibre Native.app */;
productType = "com.apple.product-type.application"; productType = "com.apple.product-type.application";
}; };
DA2E88501CC036F400F24E7B /* test */ = { DA2E88501CC036F400F24E7B /* test */ = {
@@ -3744,7 +3744,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 11.0; IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.maplibregl; PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.maplibregl;
PRODUCT_NAME = "MapLibre GL"; PRODUCT_NAME = "MapLibre Native";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
}; };
name = RelWithDebInfo; name = RelWithDebInfo;
@@ -3776,7 +3776,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.bench; PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.bench;
PRODUCT_NAME = "Bench GL"; PRODUCT_NAME = "Bench GL";
PROVISIONING_PROFILE_SPECIFIER = "MapLibre GL Bench Development"; PROVISIONING_PROFILE_SPECIFIER = "MapLibre Native Bench Development";
}; };
name = RelWithDebInfo; name = RelWithDebInfo;
}; };
@@ -4324,7 +4324,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 11.0; IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.maplibregl; PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.maplibregl;
PRODUCT_NAME = "MapLibre GL"; PRODUCT_NAME = "MapLibre Native";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
}; };
name = Debug; name = Debug;
@@ -4344,7 +4344,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 11.0; IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.maplibregl; PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.maplibregl;
PRODUCT_NAME = "MapLibre GL"; PRODUCT_NAME = "MapLibre Native";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
}; };
name = Release; name = Release;
@@ -4585,7 +4585,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.bench; PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.bench;
PRODUCT_NAME = "Bench GL"; PRODUCT_NAME = "Bench GL";
PROVISIONING_PROFILE_SPECIFIER = "MapLibre GL Bench Development"; PROVISIONING_PROFILE_SPECIFIER = "MapLibre Native Bench Development";
}; };
name = Debug; name = Debug;
}; };
@@ -4616,7 +4616,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.bench; PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.bench;
PRODUCT_NAME = "Bench GL"; PRODUCT_NAME = "Bench GL";
PROVISIONING_PROFILE_SPECIFIER = "MapLibre GL Bench Development"; PROVISIONING_PROFILE_SPECIFIER = "MapLibre Native Bench Development";
}; };
name = Release; name = Release;
}; };
@@ -4664,7 +4664,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 11.0; IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.maplibregl; PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.maplibregl;
PRODUCT_NAME = "MapLibre GL"; PRODUCT_NAME = "MapLibre Native";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
}; };
name = MinSizeRel; name = MinSizeRel;
@@ -4696,7 +4696,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.bench; PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.bench;
PRODUCT_NAME = "Bench GL"; PRODUCT_NAME = "Bench GL";
PROVISIONING_PROFILE_SPECIFIER = "MapLibre GL Bench Development"; PROVISIONING_PROFILE_SPECIFIER = "MapLibre Native Bench Development";
}; };
name = MinSizeRel; name = MinSizeRel;
}; };

View File

@@ -15,7 +15,7 @@
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "DA1DC9491CB6C1C2006E619F" BlueprintIdentifier = "DA1DC9491CB6C1C2006E619F"
BuildableName = "MapLibre GL.app" BuildableName = "MapLibre Native.app"
BlueprintName = "iosapp" BlueprintName = "iosapp"
ReferencedContainer = "container:ios.xcodeproj"> ReferencedContainer = "container:ios.xcodeproj">
</BuildableReference> </BuildableReference>
@@ -31,7 +31,7 @@
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "DA1DC9491CB6C1C2006E619F" BlueprintIdentifier = "DA1DC9491CB6C1C2006E619F"
BuildableName = "MapLibre GL.app" BuildableName = "MapLibre Native.app"
BlueprintName = "iosapp" BlueprintName = "iosapp"
ReferencedContainer = "container:ios.xcodeproj"> ReferencedContainer = "container:ios.xcodeproj">
</BuildableReference> </BuildableReference>
@@ -79,7 +79,7 @@
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "DA1DC9491CB6C1C2006E619F" BlueprintIdentifier = "DA1DC9491CB6C1C2006E619F"
BuildableName = "MapLibre GL.app" BuildableName = "MapLibre Native.app"
BlueprintName = "iosapp" BlueprintName = "iosapp"
ReferencedContainer = "container:ios.xcodeproj"> ReferencedContainer = "container:ios.xcodeproj">
</BuildableReference> </BuildableReference>
@@ -103,7 +103,7 @@
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "DA1DC9491CB6C1C2006E619F" BlueprintIdentifier = "DA1DC9491CB6C1C2006E619F"
BuildableName = "MapLibre GL.app" BuildableName = "MapLibre Native.app"
BlueprintName = "iosapp" BlueprintName = "iosapp"
ReferencedContainer = "container:ios.xcodeproj"> ReferencedContainer = "container:ios.xcodeproj">
</BuildableReference> </BuildableReference>

View File

@@ -292,7 +292,7 @@ NSString * const MLNLastMapDebugMaskDefaultsKey = @"MLNLastMapDebugMask";
- (IBAction)showShortcuts:(id)sender { - (IBAction)showShortcuts:(id)sender {
NSAlert *alert = [[NSAlert alloc] init]; NSAlert *alert = [[NSAlert alloc] init];
alert.messageText = @"MapLibre GL Help"; alert.messageText = @"MapLibre Native Help";
alert.informativeText = @"\ alert.informativeText = @"\
• To scroll, swipe with two fingers on a trackpad, or drag the cursor, or press the arrow keys.\n\ • To scroll, swipe with two fingers on a trackpad, or drag the cursor, or press the arrow keys.\n\
• To zoom in, pinch two fingers apart on a trackpad, or double-click, or hold down Shift while dragging the cursor down, or hold down Option while pressing the up key.\n\ • To zoom in, pinch two fingers apart on a trackpad, or double-click, or hold down Shift while dragging the cursor down, or hold down Option while pressing the up key.\n\

View File

@@ -68,7 +68,7 @@ for ((i=0; i<${TOTAL_TESTS}; i++)); do
fi fi
# The path to the maplibre dynamic lib # The path to the maplibre dynamic lib
LIB_PATH="${OUTPUT_DIR}/${ARCHIVE_NAME}/Products/Applications/MapLibre GL.app/Frameworks/Mapbox.framework/Mapbox" LIB_PATH="${OUTPUT_DIR}/${ARCHIVE_NAME}/Products/Applications/MapLibre Native.app/Frameworks/Mapbox.framework/Mapbox"
if [[ ! -f "$LIB_PATH" ]]; then if [[ ! -f "$LIB_PATH" ]]; then
echo "${RED}MapLibre dynamic lib not found: $LIB_PATH${NORMAL}" echo "${RED}MapLibre dynamic lib not found: $LIB_PATH${NORMAL}"
exit 6 exit 6

View File

@@ -57,7 +57,7 @@ void MapWindow::changeStyle() {
auto &styles = m_map->defaultStyles(); auto &styles = m_map->defaultStyles();
m_map->setStyleUrl(styles[currentStyleIndex].first); m_map->setStyleUrl(styles[currentStyleIndex].first);
setWindowTitle(QString("MapLibre GL: ") + styles[currentStyleIndex].second); setWindowTitle(QString("MapLibre Native: ") + styles[currentStyleIndex].second);
if (++currentStyleIndex == styles.size()) { if (++currentStyleIndex == styles.size()) {
currentStyleIndex = 0; currentStyleIndex = 0;
@@ -456,7 +456,7 @@ void MapWindow::initializeGL() {
changeStyle(); changeStyle();
} else { } else {
m_map->setStyleUrl(styleUrl); m_map->setStyleUrl(styleUrl);
setWindowTitle(QString("MapLibre GL: ") + styleUrl); setWindowTitle(QString("MapLibre Native: ") + styleUrl);
} }
m_bearingAnimation = new QPropertyAnimation(m_map.get(), "bearing"); m_bearingAnimation = new QPropertyAnimation(m_map.get(), "bearing");

View File

@@ -7,7 +7,7 @@ include($QT_INSTALL_DOCS/global/qt-html-templates-online.qdocconf)
Cpp.ignoretokens = Q_MAPLIBRE_EXPORT Cpp.ignoretokens = Q_MAPLIBRE_EXPORT
project = QMapLibreGL project = QMapLibreGL
description = MapLibre GL Maps SDK for Qt description = MapLibre Native SDK for Qt
language = Cpp language = Cpp
outputdir = docs outputdir = docs

View File

@@ -6,10 +6,10 @@ set(MLN_QT_VERSION_COMPATIBILITY 2.0.0)
message(STATUS "Version ${MLN_QT_VERSION}") message(STATUS "Version ${MLN_QT_VERSION}")
option(MLN_QT_LIBRARY_ONLY "Build only libraries" OFF) option(MLN_QT_LIBRARY_ONLY "Build only libraries" OFF)
option(MLN_QT_STATIC "Build MapLibre GL Qt bindings staticly" OFF) option(MLN_QT_STATIC "Build MapLibre Native Qt bindings staticly" OFF)
option(MLN_QT_INSIDE_PLUGIN "Build QMapLibreGL as OBJECT library, so it can be bundled into separate single plugin lib." OFF) option(MLN_QT_INSIDE_PLUGIN "Build QMapLibreGL as OBJECT library, so it can be bundled into separate single plugin lib." OFF)
option(MLN_QT_WITH_HEADLESS "Build MapLibre GL Qt with headless support" ON) option(MLN_QT_WITH_HEADLESS "Build MapLibre Native Qt with headless support" ON)
option(MLN_QT_WITH_INTERNAL_SQLITE "Build MapLibre GL Qt bindings with internal sqlite" OFF) option(MLN_QT_WITH_INTERNAL_SQLITE "Build MapLibre Native Qt bindings with internal sqlite" OFF)
option(MLN_QT_DEPLOYMENT "Autogenerate files necessary for deployment" OFF) option(MLN_QT_DEPLOYMENT "Autogenerate files necessary for deployment" OFF)
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED) find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
@@ -35,7 +35,7 @@ endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Linux") if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
find_package(Threads REQUIRED) find_package(Threads REQUIRED)
option(MLN_QT_WITH_INTERNAL_ICU "Build MapLibre GL Qt bindings with internal ICU" OFF) option(MLN_QT_WITH_INTERNAL_ICU "Build MapLibre Native Qt bindings with internal ICU" OFF)
if(NOT MLN_QT_WITH_INTERNAL_ICU) if(NOT MLN_QT_WITH_INTERNAL_ICU)
find_package(ICU COMPONENTS uc REQUIRED) find_package(ICU COMPONENTS uc REQUIRED)
else() else()

View File

@@ -1243,7 +1243,7 @@ void Map::render() {
} }
/*! /*!
If MapLibre GL needs to rebind the default \a fbo, it will use the If MapLibre Native needs to rebind the default \a fbo, it will use the
ID supplied here. \a size is the size of the framebuffer, which ID supplied here. \a size is the size of the framebuffer, which
on high DPI screens is usually bigger than the map size. on high DPI screens is usually bigger than the map size.

View File

@@ -2,7 +2,7 @@
"Id": "maplibre-gl-native", "Id": "maplibre-gl-native",
"Name": "MapLibre Native", "Name": "MapLibre Native",
"QDocModule": "qtlocation", "QDocModule": "qtlocation",
"QtUsage": "Used in the MapLibre backend of Qt Location.", "QtUsage": "Used in the MapLibre Native backend of Qt Location.",
"Description": "MapLibre Native is a community led fork derived from mapbox-gl-native.", "Description": "MapLibre Native is a community led fork derived from mapbox-gl-native.",
"Homepage": "https://github.com/maplibre/maplibre-native", "Homepage": "https://github.com/maplibre/maplibre-native",