Update remaining MapLibre GL to MapLibre Native (#1216)
This commit is contained in:
2
.github/workflows/linux-ci.yml
vendored
2
.github/workflows/linux-ci.yml
vendored
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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)`.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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\
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
Reference in New Issue
Block a user