@nativescript-community/ui-mapbox 7.0.0 → 7.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/index.android.d.ts +5 -5
- package/index.android.js +11 -74
- package/index.ios.d.ts +1 -1
- package/index.ios.js +13 -6
- package/package.json +2 -2
- package/platforms/ios/src/MapboxBridge.swift +29 -3
- package/tsconfig.tsbuildinfo +1 -1
- package/typings/mapbox.android.d.ts +7177 -5481
- package/typings/mapbox.bridge.ios.d.ts +1 -2
- package/platforms/android/ui_mapbox.aar +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [7.0.1](https://github.com/nativescript-community/ui-mapbox/compare/v7.0.0...v7.0.1) (2025-10-28)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **ios:** missing options and improvements ([3d4cedd](https://github.com/nativescript-community/ui-mapbox/commit/3d4cedd92761445ab7293668d2b22e8767f73cce))
|
|
11
|
+
|
|
6
12
|
## [7.0.0](https://github.com/nativescript-community/ui-mapbox/compare/v6.2.31...v7.0.0) (2025-10-25)
|
|
7
13
|
|
|
8
14
|
### Features
|
package/index.android.d.ts
CHANGED
|
@@ -427,11 +427,11 @@ export declare class Mapbox extends MapboxCommon implements MapboxApi {
|
|
|
427
427
|
*
|
|
428
428
|
* @todo at least with simulated data, the location is only updated once hence adding support for forceLocation method.
|
|
429
429
|
*/
|
|
430
|
-
showUserLocationMarker(options: TrackUserOptions & {
|
|
431
|
-
accuracyColor
|
|
432
|
-
accuracyRingColor
|
|
433
|
-
pulsingColor
|
|
434
|
-
}
|
|
430
|
+
showUserLocationMarker(options: Partial<TrackUserOptions & {
|
|
431
|
+
accuracyColor?: any;
|
|
432
|
+
accuracyRingColor?: any;
|
|
433
|
+
pulsingColor?: any;
|
|
434
|
+
}>, nativeMap?: any): Promise<void>;
|
|
435
435
|
/**
|
|
436
436
|
* hide (destroy) the user location marker
|
|
437
437
|
*
|
package/index.android.js
CHANGED
|
@@ -115,6 +115,9 @@ export class MapboxView extends MapboxViewBase {
|
|
|
115
115
|
* programmatically include settings
|
|
116
116
|
*/
|
|
117
117
|
setConfig(settings) {
|
|
118
|
+
if (Trace.isEnabled()) {
|
|
119
|
+
CLog(CLogTypes.info, 'setConfig()');
|
|
120
|
+
}
|
|
118
121
|
// zoom level is not applied unless center is set
|
|
119
122
|
if (settings.zoomLevel && !settings.center) {
|
|
120
123
|
// Eiffel tower, Paris
|
|
@@ -220,13 +223,14 @@ export class MapboxView extends MapboxViewBase {
|
|
|
220
223
|
* @todo FIXME: this.nativeMapView is unused and never actually set to anything.
|
|
221
224
|
*/
|
|
222
225
|
async initMap() {
|
|
226
|
+
const accessToken = this.config?.accessToken ?? this.settings?.accessToken;
|
|
223
227
|
if (Trace.isEnabled()) {
|
|
224
|
-
CLog(CLogTypes.info, "MapboxView:initMap(): top - accessToken is '" +
|
|
228
|
+
CLog(CLogTypes.info, "MapboxView:initMap(): top - accessToken is '" + accessToken + "'", this.config);
|
|
225
229
|
}
|
|
226
|
-
if (!
|
|
230
|
+
if (!accessToken) {
|
|
227
231
|
throw new Error('missing accessToken');
|
|
228
232
|
}
|
|
229
|
-
if (!this.nativeMapView
|
|
233
|
+
if (!this.nativeMapView) {
|
|
230
234
|
this.mapbox = new Mapbox(this);
|
|
231
235
|
// the NativeScript contentview class extends from Observable to provide the notify method
|
|
232
236
|
// which is the glue that joins this code with whatever callbacks are set in the Mapbox XML
|
|
@@ -2573,23 +2577,14 @@ export class Mapbox extends MapboxCommon {
|
|
|
2573
2577
|
if (Trace.isEnabled()) {
|
|
2574
2578
|
CLog(CLogTypes.info, 'trackUser(): top');
|
|
2575
2579
|
}
|
|
2576
|
-
return new Promise((resolve, reject) => {
|
|
2580
|
+
return new Promise(async (resolve, reject) => {
|
|
2577
2581
|
try {
|
|
2578
2582
|
if (!this._mapboxMapInstance) {
|
|
2579
2583
|
reject('No map has been loaded');
|
|
2580
2584
|
return;
|
|
2581
2585
|
}
|
|
2582
|
-
this.requestFineLocationPermission()
|
|
2583
|
-
|
|
2584
|
-
// if (this._locationComponent) {
|
|
2585
|
-
// this.changeUserLocationMarkerMode(options.renderMode || 'COMPASS', options.cameraMode || 'TRACKING');
|
|
2586
|
-
// } else {
|
|
2587
|
-
this.showUserLocationMarker(options);
|
|
2588
|
-
// }
|
|
2589
|
-
})
|
|
2590
|
-
.catch((err) => {
|
|
2591
|
-
console.error('Location permission denied. error:', err);
|
|
2592
|
-
});
|
|
2586
|
+
await this.requestFineLocationPermission();
|
|
2587
|
+
this.showUserLocationMarker(options, nativeMap);
|
|
2593
2588
|
resolve();
|
|
2594
2589
|
}
|
|
2595
2590
|
catch (ex) {
|
|
@@ -2846,64 +2841,6 @@ export class Mapbox extends MapboxCommon {
|
|
|
2846
2841
|
return settings;
|
|
2847
2842
|
}
|
|
2848
2843
|
}));
|
|
2849
|
-
// if (typeof options.elevation != 'undefined') {
|
|
2850
|
-
// componentOptionsBuilder = componentOptionsBuilder.elevation(options.elevation);
|
|
2851
|
-
// }
|
|
2852
|
-
// if (typeof options.accuracyAlpha != 'undefined') {
|
|
2853
|
-
// componentOptionsBuilder = componentOptionsBuilder.accuracyAlpha(options.accuracyAlpha);
|
|
2854
|
-
// }
|
|
2855
|
-
// if (typeof options.foregroundTintColor != 'undefined') {
|
|
2856
|
-
// const foregroundTintColor = new java.lang.Integer(android.graphics.Color.parseColor(options.foregroundTintColor));
|
|
2857
|
-
// componentOptionsBuilder = componentOptionsBuilder.foregroundTintColor(foregroundTintColor);
|
|
2858
|
-
// }
|
|
2859
|
-
// if (typeof options.foregroundStaleTintColor != 'undefined') {
|
|
2860
|
-
// const foregroundStaleTintColor = new java.lang.Integer(android.graphics.Color.parseColor(options.foregroundStaleTintColor));
|
|
2861
|
-
// componentOptionsBuilder = componentOptionsBuilder.foregroundStaleTintColor(foregroundStaleTintColor);
|
|
2862
|
-
// }
|
|
2863
|
-
// if (typeof options.backgroundTintColor != 'undefined') {
|
|
2864
|
-
// const backgroundTintColor = new java.lang.Integer(android.graphics.Color.parseColor(options.backgroundTintColor));
|
|
2865
|
-
// componentOptionsBuilder = componentOptionsBuilder.backgroundTintColor(backgroundTintColor);
|
|
2866
|
-
// }
|
|
2867
|
-
// if (typeof options.bearingTintColor != 'undefined') {
|
|
2868
|
-
// const bearingTintColor = new java.lang.Integer(android.graphics.Color.parseColor(options.bearingTintColor));
|
|
2869
|
-
// componentOptionsBuilder = componentOptionsBuilder.bearingTintColor(bearingTintColor);
|
|
2870
|
-
// }
|
|
2871
|
-
// const componentOptions = componentOptionsBuilder.build();
|
|
2872
|
-
// this._locationComponent = this._mapboxMapInstance.getLocationComponent();
|
|
2873
|
-
// const activationOptionsBuilder = com.mapbox.maps.location.LocationComponentActivationOptions.builder(Utils.android.getApplicationContext(), this._mapboxMapInstance.getStyle());
|
|
2874
|
-
// activationOptionsBuilder.locationComponentOptions(componentOptions);
|
|
2875
|
-
// let useDefaultEngine = true;
|
|
2876
|
-
// if (typeof options.useDefaultLocationEngine != 'undefined') {
|
|
2877
|
-
// useDefaultEngine = options.useDefaultLocationEngine;
|
|
2878
|
-
// }
|
|
2879
|
-
// activationOptionsBuilder.useDefaultLocationEngine(useDefaultEngine);
|
|
2880
|
-
// const locationComponentActivationOptions = activationOptionsBuilder.build();
|
|
2881
|
-
// this._locationComponent.activateLocationComponent(locationComponentActivationOptions);
|
|
2882
|
-
// this._locationComponent.setLocationComponentEnabled(true);
|
|
2883
|
-
// let cameraMode = this._stringToCameraMode('TRACKING');
|
|
2884
|
-
// if (typeof options.cameraMode != 'undefined') {
|
|
2885
|
-
// cameraMode = this._stringToCameraMode(options.cameraMode);
|
|
2886
|
-
// }
|
|
2887
|
-
// this._locationComponent.setCameraMode(cameraMode);
|
|
2888
|
-
// let renderMode = com.mapbox.maps.location.modes.RenderMode.COMPASS;
|
|
2889
|
-
// if (typeof options.renderMode != 'undefined') {
|
|
2890
|
-
// renderMode = this._stringToRenderMode(options.renderMode);
|
|
2891
|
-
// }
|
|
2892
|
-
// this._locationComponent.setRenderMode(renderMode);
|
|
2893
|
-
// if (Trace.isEnabled()) {
|
|
2894
|
-
// CLog(CLogTypes.info, 'showUserLocationMarker(): after renderMode');
|
|
2895
|
-
// }
|
|
2896
|
-
// if (typeof options.clickListener != 'undefined') {
|
|
2897
|
-
// this.onLocationClickListener = new com.mapbox.maps.location.OnLocationClickListener({
|
|
2898
|
-
// onLocationComponentClick: () => {
|
|
2899
|
-
// options.clickListener();
|
|
2900
|
-
// }
|
|
2901
|
-
// });
|
|
2902
|
-
// this._locationComponent.addOnLocationClickListener(this.onLocationClickListener);
|
|
2903
|
-
// }
|
|
2904
|
-
// if (typeof options.cameraTrackingChangedListener != 'undefined') {
|
|
2905
|
-
// this._locationComponent.addOnCameraTrackingChangedListener(options.cameraTrackingChangedListener);
|
|
2906
|
-
// }
|
|
2907
2844
|
}
|
|
2908
2845
|
catch (ex) {
|
|
2909
2846
|
if (Trace.isEnabled()) {
|
|
@@ -2959,7 +2896,7 @@ export class Mapbox extends MapboxCommon {
|
|
|
2959
2896
|
return new Promise((resolve, reject) => {
|
|
2960
2897
|
try {
|
|
2961
2898
|
if (Trace.isEnabled()) {
|
|
2962
|
-
CLog(CLogTypes.info, '
|
|
2899
|
+
CLog(CLogTypes.info, 'changeUserLocationMarkerMode()');
|
|
2963
2900
|
}
|
|
2964
2901
|
if (!this._mapboxMapInstance) {
|
|
2965
2902
|
throw new Error('No map has been loaded');
|
package/index.ios.d.ts
CHANGED
|
@@ -86,7 +86,7 @@ export declare class Mapbox extends MapboxCommon implements MapboxApi {
|
|
|
86
86
|
downloadOfflineRegion(options: DownloadOfflineRegionOptions, nativeMap?: any): Promise<void>;
|
|
87
87
|
listOfflineRegions(options?: ListOfflineRegionsOptions, nativeMap?: any): Promise<OfflineRegion[]>;
|
|
88
88
|
deleteOfflineRegion(options: DeleteOfflineRegionOptions, nativeMap?: any): Promise<void>;
|
|
89
|
-
showUserLocationMarker(
|
|
89
|
+
showUserLocationMarker(options: Partial<TrackUserOptions>): Promise<void>;
|
|
90
90
|
hideUserLocationMarker(nativeMap?: any): Promise<void>;
|
|
91
91
|
forceUserLocationUpdate(nativeMap?: any): Promise<boolean>;
|
|
92
92
|
trackUser(options: TrackUserOptions, nativeMap?: any): Promise<void>;
|
package/index.ios.js
CHANGED
|
@@ -110,8 +110,12 @@ export class MapboxView extends MapboxViewBase {
|
|
|
110
110
|
this.initCountHack = 50;
|
|
111
111
|
}
|
|
112
112
|
setConfig(settings) {
|
|
113
|
-
if (
|
|
114
|
-
|
|
113
|
+
if (settings.zoomLevel && !settings.center) {
|
|
114
|
+
// Eiffel tower, Paris
|
|
115
|
+
settings.center = {
|
|
116
|
+
lat: 48.858093,
|
|
117
|
+
lng: 2.294694
|
|
118
|
+
};
|
|
115
119
|
}
|
|
116
120
|
this.settings = settings;
|
|
117
121
|
}
|
|
@@ -150,7 +154,7 @@ export class MapboxView extends MapboxViewBase {
|
|
|
150
154
|
}
|
|
151
155
|
initMap() {
|
|
152
156
|
if (Trace.isEnabled()) {
|
|
153
|
-
CLog(CLogTypes.info, 'initMap() top
|
|
157
|
+
CLog(CLogTypes.info, 'initMap() top');
|
|
154
158
|
}
|
|
155
159
|
if (!this.settings && !this.config.accessToken) {
|
|
156
160
|
if (this.initCountHack > 50)
|
|
@@ -398,6 +402,9 @@ export class Mapbox extends MapboxCommon {
|
|
|
398
402
|
// setTimeout(() => view.addSubview(nativeMap), 0);
|
|
399
403
|
view.addSubview(nativeMap);
|
|
400
404
|
this.setMapboxViewInstance(nativeMap);
|
|
405
|
+
if (settings.showUserLocation) {
|
|
406
|
+
this.showUserLocationMarker({});
|
|
407
|
+
}
|
|
401
408
|
this.initEventHandlerShim(settings, this._mapboxViewInstance);
|
|
402
409
|
if (settings.onMapReady) {
|
|
403
410
|
settings.onMapReady(this._mapboxViewInstance);
|
|
@@ -1503,7 +1510,7 @@ export class Mapbox extends MapboxCommon {
|
|
|
1503
1510
|
});
|
|
1504
1511
|
}
|
|
1505
1512
|
// ---------------- User location & tilt ----------------
|
|
1506
|
-
showUserLocationMarker(
|
|
1513
|
+
showUserLocationMarker(options) {
|
|
1507
1514
|
return new Promise((resolve, reject) => {
|
|
1508
1515
|
try {
|
|
1509
1516
|
const b = this.bridgeInstance;
|
|
@@ -1511,7 +1518,7 @@ export class Mapbox extends MapboxCommon {
|
|
|
1511
1518
|
reject('No bridge available');
|
|
1512
1519
|
return;
|
|
1513
1520
|
}
|
|
1514
|
-
b.showUserLocationMarker(
|
|
1521
|
+
b.showUserLocationMarker(JSON.stringify(options));
|
|
1515
1522
|
resolve();
|
|
1516
1523
|
}
|
|
1517
1524
|
catch (ex) {
|
|
@@ -1562,7 +1569,7 @@ export class Mapbox extends MapboxCommon {
|
|
|
1562
1569
|
if (Trace.isEnabled()) {
|
|
1563
1570
|
CLog(CLogTypes.info, 'trackUser():', JSON.stringify(options));
|
|
1564
1571
|
}
|
|
1565
|
-
const ok = b.
|
|
1572
|
+
const ok = b.showUserLocationMarker(JSON.stringify(options));
|
|
1566
1573
|
if (ok) {
|
|
1567
1574
|
resolve();
|
|
1568
1575
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nativescript-community/ui-mapbox",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.1",
|
|
4
4
|
"description": "Interactive, thoroughly customizable maps powered by vector tiles and OpenGL.",
|
|
5
5
|
"main": "index",
|
|
6
6
|
"typings": "index.d.ts",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@nativescript-community/perms": "^3.0.4"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "c775cf24ff6f702e028f9a4fe2d562a863281eb5"
|
|
59
59
|
}
|
|
@@ -176,10 +176,11 @@ public class MapboxBridge: NSObject {
|
|
|
176
176
|
@objc public func createMap(_ x: Double, _ y: Double, _ width: Double, _ height: Double, _ accessToken: String, _ styleURIString: String?, _ optionsJSON: String) -> UIView {
|
|
177
177
|
MapboxOptions.accessToken = accessToken
|
|
178
178
|
let styleURI = getMapStyleURI(styleURIString)
|
|
179
|
-
|
|
179
|
+
let optionsOpt = MapboxBridge.parseJSONParameter(optionsJSON) as? [String: Any]
|
|
180
|
+
|
|
180
181
|
var centerCoordinate = CLLocationCoordinate2D(latitude: 48.858093, longitude: 2.294694)
|
|
181
182
|
var zoom = 0.0
|
|
182
|
-
if let options =
|
|
183
|
+
if let options = optionsOpt {
|
|
183
184
|
if let z = options["zoomLevel"] as? Double {
|
|
184
185
|
zoom = z
|
|
185
186
|
}
|
|
@@ -202,6 +203,31 @@ public class MapboxBridge: NSObject {
|
|
|
202
203
|
MapboxBridge.registerBridge(self, for: mv)
|
|
203
204
|
|
|
204
205
|
addImage("default_pin", image: UIImage(named: "default_pin"))
|
|
206
|
+
|
|
207
|
+
if let options = optionsOpt {
|
|
208
|
+
if ((options["hideLogo"] as? Bool) == true) {
|
|
209
|
+
mv.ornaments.logoView.isHidden = true
|
|
210
|
+
}
|
|
211
|
+
if ((options["hideAttribution"] as? Bool) == true) {
|
|
212
|
+
mv.ornaments.attributionButton.isHidden = true
|
|
213
|
+
}
|
|
214
|
+
if ((options["hideCompass"] as? Bool) == true) {
|
|
215
|
+
mv.ornaments.compassView.isHidden = true
|
|
216
|
+
}
|
|
217
|
+
if ((options["disableRotation"] as? Bool) == true) {
|
|
218
|
+
mv.gestures.options.rotateEnabled = false
|
|
219
|
+
}
|
|
220
|
+
if ((options["disableScroll"] as? Bool) == true) {
|
|
221
|
+
mv.gestures.options.panEnabled = false
|
|
222
|
+
}
|
|
223
|
+
if ((options["disableZoom"] as? Bool) == true) {
|
|
224
|
+
mv.gestures.options.pinchZoomEnabled = false
|
|
225
|
+
mv.gestures.options.quickZoomEnabled = false
|
|
226
|
+
}
|
|
227
|
+
if ((options["disableTilt"] as? Bool) == true) {
|
|
228
|
+
mv.gestures.options.pitchEnabled = false
|
|
229
|
+
}
|
|
230
|
+
}
|
|
205
231
|
|
|
206
232
|
// mapLoaded
|
|
207
233
|
mv.mapboxMap.onMapLoaded.observeNext { _ in
|
|
@@ -1162,7 +1188,7 @@ public class MapboxBridge: NSObject {
|
|
|
1162
1188
|
}
|
|
1163
1189
|
|
|
1164
1190
|
|
|
1165
|
-
@objc public func
|
|
1191
|
+
@objc public func showUserLocationMarker(_ optionsJSON: String) -> Bool {
|
|
1166
1192
|
guard let mv = mapView else { return false }
|
|
1167
1193
|
|
|
1168
1194
|
guard let data = optionsJSON.data(using: .utf8),
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../../src/ui-mapbox/common.ts","../../src/ui-mapbox/geo.utils.ts","../../src/ui-mapbox/index.android.ts","../../src/ui-mapbox/index.d.ts","../../src/ui-mapbox/index.ios.ts","../../src/ui-mapbox/references.d.ts","../../src/ui-mapbox/expression/expression-parser.android.ts","../../src/ui-mapbox/expression/expression-parser.d.ts","../../src/ui-mapbox/expression/expression-parser.ios.ts","../../src/ui-mapbox/layers/layer-factory.android.ts","../../src/ui-mapbox/layers/layer-factory.d.ts","../../src/ui-mapbox/layers/layer-factory.ios.ts","../../src/ui-mapbox/layers/parser/property-parser.android.ts","../../src/ui-mapbox/layers/parser/property-parser.d.ts","../../src/ui-mapbox/layers/parser/property-parser.ios.ts","../../src/ui-mapbox/markers/
|
|
1
|
+
{"root":["../../src/ui-mapbox/common.ts","../../src/ui-mapbox/geo.utils.ts","../../src/ui-mapbox/index.android.ts","../../src/ui-mapbox/index.d.ts","../../src/ui-mapbox/index.ios.ts","../../src/ui-mapbox/references.d.ts","../../src/ui-mapbox/expression/expression-parser.android.ts","../../src/ui-mapbox/expression/expression-parser.d.ts","../../src/ui-mapbox/expression/expression-parser.ios.ts","../../src/ui-mapbox/layers/layer-factory.android.ts","../../src/ui-mapbox/layers/layer-factory.d.ts","../../src/ui-mapbox/layers/layer-factory.ios.ts","../../src/ui-mapbox/layers/parser/property-parser.android.ts","../../src/ui-mapbox/layers/parser/property-parser.d.ts","../../src/ui-mapbox/layers/parser/property-parser.ios.ts","../../src/ui-mapbox/markers/Marker.android.ts","../../src/ui-mapbox/markers/Marker.common.ts","../../src/ui-mapbox/markers/MarkerManager.android.ts","../../src/ui-mapbox/typings/Mapbox.ios.d.ts","../../src/ui-mapbox/typings/geojson.android.d.ts","../../src/ui-mapbox/typings/index.android.d.ts","../../src/ui-mapbox/typings/mapbox.android.d.ts","../../src/ui-mapbox/typings/mapbox.bridge.ios.d.ts","../../references.d.ts","../../tools/references.d.ts"],"version":"5.8.3"}
|