@nativescript-community/ui-mapbox 6.2.10 → 6.2.14
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 +36 -0
- package/README.md +199 -99
- package/{mapbox.common.d.ts → common.d.ts} +42 -4
- package/{mapbox.common.js → common.js} +21 -1
- package/{filter/filter-parser.android.d.ts → expression/expression-parser.android.d.ts} +1 -1
- package/{filter/filter-parser.android.js → expression/expression-parser.android.js} +2 -2
- package/expression/expression-parser.d.ts +4 -0
- package/{filter/filter-parser.ios.d.ts → expression/expression-parser.ios.d.ts} +1 -1
- package/{filter/filter-parser.ios.js → expression/expression-parser.ios.js} +2 -2
- package/{mapbox.android.d.ts → index.android.d.ts} +9 -14
- package/{mapbox.android.js → index.android.js} +152 -65
- package/index.d.ts +99 -6
- package/{mapbox.ios.d.ts → index.ios.d.ts} +7 -30
- package/{mapbox.ios.js → index.ios.js} +1977 -1912
- package/layers/layer-factory.android.d.ts +15 -1
- package/layers/layer-factory.android.js +63 -2
- package/layers/layer-factory.d.ts +17 -2
- package/layers/layer-factory.ios.d.ts +15 -1
- package/layers/layer-factory.ios.js +72 -2
- package/layers/parser/property-parser.android.d.ts +1 -0
- package/layers/parser/property-parser.android.js +25 -0
- package/layers/parser/property-parser.d.ts +4 -0
- package/layers/parser/property-parser.ios.d.ts +1 -0
- package/layers/parser/property-parser.ios.js +21 -0
- package/package.json +55 -49
- package/platforms/android/include.gradle +3 -0
- package/platforms/android/ui_mapbox.aar +0 -0
- package/platforms/ios/Podfile +2 -2
- package/typings/Mapbox.ios.d.ts +2 -0
- package/LICENSE +0 -21
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export class
|
|
1
|
+
export class ExpressionParser {
|
|
2
2
|
static parseJson(json) {
|
|
3
3
|
const filterStr = NSString.stringWithString(JSON.stringify(json));
|
|
4
4
|
const filterData = filterStr.dataUsingEncoding(NSUTF8StringEncoding);
|
|
@@ -19,4 +19,4 @@ export class FilterParser {
|
|
|
19
19
|
return JSON.parse(expression);
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
//# sourceMappingURL=
|
|
22
|
+
//# sourceMappingURL=expression-parser.ios.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ImageSource } from '@nativescript/core';
|
|
2
|
-
import { AddExtrusionOptions, AddGeoJsonClusteredOptions, AddPolygonOptions, AddPolylineOptions, AddSourceOptions, AnimateCameraOptions, DeleteOfflineRegionOptions, DownloadOfflineRegionOptions, Feature, LatLng, LayerCommon, ListOfflineRegionsOptions, MapStyle, MapboxApi, MapboxCommon, MapboxMarker,
|
|
3
|
-
export
|
|
2
|
+
import { AddExtrusionOptions, AddGeoJsonClusteredOptions, AddPolygonOptions, AddPolylineOptions, AddSourceOptions, AnimateCameraOptions, DeleteOfflineRegionOptions, DownloadOfflineRegionOptions, Feature, LatLng, LayerCommon, ListOfflineRegionsOptions, MapStyle, MapboxApi, MapboxCommon, MapboxMarker, MapboxViewBase, OfflineRegion, QueryRenderedFeaturesOptions, QuerySourceFeaturesOptions, SetCenterOptions, SetTiltOptions, SetViewportOptions, SetZoomLevelOptions, ShowOptions, TrackUserOptions, UpdateSourceOptions, UserLocation, UserLocationCameraMode, Viewport } from './common';
|
|
3
|
+
export * from './common';
|
|
4
4
|
export declare function setLogLevel(level: 'none' | 'info' | 'debug' | 'error' | 'fault' | 'verbose'): void;
|
|
5
5
|
export declare class MapboxView extends MapboxViewBase {
|
|
6
6
|
private nativeMapView;
|
|
@@ -96,6 +96,7 @@ export declare class Mapbox extends MapboxCommon implements MapboxApi {
|
|
|
96
96
|
setOnMapClickListener(listener: (data: LatLng) => boolean, nativeMap?: MapboxView): Promise<void>;
|
|
97
97
|
setOnMapLongClickListener(listener: (data: LatLng) => boolean, nativeMap?: any): Promise<void>;
|
|
98
98
|
setOnMoveBeginListener(listener: (data?: LatLng) => void, nativeMap?: any): Promise<void>;
|
|
99
|
+
setOnMoveEndListener(listener: (data?: LatLng) => void, nativeMap?: any): Promise<void>;
|
|
99
100
|
setOnScrollListener(listener: (data?: LatLng) => void, nativeMap?: any): Promise<void>;
|
|
100
101
|
setOnFlingListener(listener: () => void, nativeMap?: any): Promise<void>;
|
|
101
102
|
setOnCameraMoveListener(listener: (reason: any, animated?: any) => void, nativeMap?: any): Promise<void>;
|
|
@@ -103,7 +104,7 @@ export declare class Mapbox extends MapboxCommon implements MapboxApi {
|
|
|
103
104
|
setOnCameraIdleListener(listener: () => void, nativeMap?: any): Promise<void>;
|
|
104
105
|
getViewport(nativeMap?: any): Promise<Viewport>;
|
|
105
106
|
setViewport(options: SetViewportOptions, nativeMap?: any): Promise<void>;
|
|
106
|
-
downloadOfflineRegion(options: DownloadOfflineRegionOptions): Promise<
|
|
107
|
+
downloadOfflineRegion(options: DownloadOfflineRegionOptions): Promise<any>;
|
|
107
108
|
listOfflineRegions(options?: ListOfflineRegionsOptions): Promise<OfflineRegion[]>;
|
|
108
109
|
deleteOfflineRegion(options: DeleteOfflineRegionOptions): Promise<void>;
|
|
109
110
|
_getOfflineManager(): any;
|
|
@@ -123,6 +124,7 @@ export declare class Mapbox extends MapboxCommon implements MapboxApi {
|
|
|
123
124
|
_stringToRenderMode(mode: any): any;
|
|
124
125
|
_fineLocationPermissionGranted(): boolean;
|
|
125
126
|
_getRegionName(offlineRegion: com.mapbox.mapboxsdk.offline.OfflineRegion): string;
|
|
127
|
+
_getRegionMetadata(offlineRegion: com.mapbox.mapboxsdk.offline.OfflineRegion): any;
|
|
126
128
|
showUserLocationMarker(options: any, nativeMap?: any): Promise<void>;
|
|
127
129
|
hideUserLocationMarker(nativeMap?: any): Promise<void>;
|
|
128
130
|
changeUserLocationMarkerMode(renderModeString: any, cameraModeString: UserLocationCameraMode, nativeMap?: any): Promise<void>;
|
|
@@ -136,15 +138,8 @@ export declare class Mapbox extends MapboxCommon implements MapboxApi {
|
|
|
136
138
|
x: number;
|
|
137
139
|
y: number;
|
|
138
140
|
};
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
constructor(instance: any);
|
|
144
|
-
visibility(): boolean;
|
|
145
|
-
show(): void;
|
|
146
|
-
hide(): void;
|
|
147
|
-
getNativeInstance(): any;
|
|
148
|
-
setFilter(filter: any[]): void;
|
|
149
|
-
getFilter(): any[];
|
|
141
|
+
projectBack(screenCoordinate: {
|
|
142
|
+
x: number;
|
|
143
|
+
y: number;
|
|
144
|
+
}): LatLng;
|
|
150
145
|
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { request } from '@nativescript-community/perms';
|
|
2
|
-
import { AndroidApplication, Application, Color, File, ImageSource, Trace, Utils, knownFolders, path } from '@nativescript/core';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
import { CLog, CLogTypes, MapStyle, MapboxCommon, MapboxTraceCategory, MapboxViewBase, telemetryProperty } from './mapbox.common';
|
|
8
|
-
export { MapboxTraceCategory, MapStyle };
|
|
2
|
+
import { AndroidApplication, Application, Color, File, Http, ImageSource, Trace, Utils, knownFolders, path } from '@nativescript/core';
|
|
3
|
+
import { ExpressionParser } from './expression/expression-parser';
|
|
4
|
+
import { Layer, LayerFactory } from './layers/layer-factory';
|
|
5
|
+
import { CLog, CLogTypes, MapStyle, MapboxCommon, MapboxViewBase, telemetryProperty } from './common';
|
|
6
|
+
export * from './common';
|
|
9
7
|
function _getLocation(loc) {
|
|
10
8
|
if (loc === null) {
|
|
11
9
|
return null;
|
|
@@ -186,6 +184,18 @@ export class MapboxView extends MapboxViewBase {
|
|
|
186
184
|
map: this,
|
|
187
185
|
android: this.nativeMapView
|
|
188
186
|
});
|
|
187
|
+
},
|
|
188
|
+
onMoveEndEvent: (event) => {
|
|
189
|
+
if (Trace.isEnabled()) {
|
|
190
|
+
CLog(CLogTypes.info, 'initMap(): onMoveEndEvent event');
|
|
191
|
+
}
|
|
192
|
+
this.notify({
|
|
193
|
+
eventName: MapboxViewBase.moveEndEvent,
|
|
194
|
+
object: this,
|
|
195
|
+
event,
|
|
196
|
+
map: this,
|
|
197
|
+
android: this.nativeMapView
|
|
198
|
+
});
|
|
189
199
|
}
|
|
190
200
|
};
|
|
191
201
|
if (Trace.isEnabled()) {
|
|
@@ -208,7 +218,9 @@ export class MapboxView extends MapboxViewBase {
|
|
|
208
218
|
}
|
|
209
219
|
}
|
|
210
220
|
[telemetryProperty.setNative](value) {
|
|
211
|
-
com.mapbox.mapboxsdk.Mapbox.getTelemetry()
|
|
221
|
+
if (com.mapbox.mapboxsdk.Mapbox.getTelemetry()) {
|
|
222
|
+
com.mapbox.mapboxsdk.Mapbox.getTelemetry().setUserTelemetryRequestState(value);
|
|
223
|
+
}
|
|
212
224
|
}
|
|
213
225
|
}
|
|
214
226
|
export class Mapbox extends MapboxCommon {
|
|
@@ -294,7 +306,7 @@ export class Mapbox extends MapboxCommon {
|
|
|
294
306
|
if (settings.showUserLocation) {
|
|
295
307
|
this.requestFineLocationPermission()
|
|
296
308
|
.then(() => {
|
|
297
|
-
this.showUserLocationMarker(
|
|
309
|
+
this.showUserLocationMarker(settings.locationComponentOptions);
|
|
298
310
|
if (settings.onLocationPermissionGranted) {
|
|
299
311
|
settings.onLocationPermissionGranted(this._mapboxMapInstance);
|
|
300
312
|
}
|
|
@@ -552,6 +564,22 @@ export class Mapbox extends MapboxCommon {
|
|
|
552
564
|
settings.onMoveBeginEvent(point);
|
|
553
565
|
}
|
|
554
566
|
}, mapboxNativeViewInstance);
|
|
567
|
+
this.setOnMoveEndListener((point) => {
|
|
568
|
+
if (Trace.isEnabled()) {
|
|
569
|
+
CLog(CLogTypes.info, 'Mapbox:initEventHandlerShim(): moveEnd:', point);
|
|
570
|
+
}
|
|
571
|
+
if (typeof settings.onMoveEndEvent != 'undefined') {
|
|
572
|
+
settings.onMoveEndEvent(point);
|
|
573
|
+
}
|
|
574
|
+
}, mapboxNativeViewInstance);
|
|
575
|
+
this.setOnScrollListener((point) => {
|
|
576
|
+
if (Trace.isEnabled()) {
|
|
577
|
+
CLog(CLogTypes.info, 'Mapbox:initEventHandlerShim(): move:', point);
|
|
578
|
+
}
|
|
579
|
+
if (typeof settings.onScrollEvent != 'undefined') {
|
|
580
|
+
settings.onScrollEvent(point);
|
|
581
|
+
}
|
|
582
|
+
}, mapboxNativeViewInstance);
|
|
555
583
|
}
|
|
556
584
|
onMapEvent(eventName, id, callback, nativeMapView) {
|
|
557
585
|
if (typeof this.eventCallbacks[eventName] == 'undefined') {
|
|
@@ -1057,7 +1085,7 @@ export class Mapbox extends MapboxCommon {
|
|
|
1057
1085
|
const mapboxPoint = new com.mapbox.mapboxsdk.geometry.LatLng(options.point.lat, options.point.lng);
|
|
1058
1086
|
const screenLocation = this._mapboxMapInstance.getProjection().toScreenLocation(mapboxPoint);
|
|
1059
1087
|
if (this._mapboxMapInstance.queryRenderedFeatures) {
|
|
1060
|
-
const queryFilter = options.filter ?
|
|
1088
|
+
const queryFilter = options.filter ? ExpressionParser.parseJson(options.filter) : null;
|
|
1061
1089
|
const features = this._mapboxMapInstance.queryRenderedFeatures(screenLocation, queryFilter, options.layers);
|
|
1062
1090
|
const result = [];
|
|
1063
1091
|
for (let i = 0; i < features.size(); i++) {
|
|
@@ -1089,7 +1117,7 @@ export class Mapbox extends MapboxCommon {
|
|
|
1089
1117
|
throw new Error(`Source with id "${sourceId}" not found.`);
|
|
1090
1118
|
}
|
|
1091
1119
|
let features;
|
|
1092
|
-
const queryFilter = options.filter ?
|
|
1120
|
+
const queryFilter = options.filter ? ExpressionParser.parseJson(options.filter) : null;
|
|
1093
1121
|
if (source instanceof com.mapbox.mapboxsdk.style.sources.GeoJsonSource) {
|
|
1094
1122
|
features = source.querySourceFeatures(queryFilter);
|
|
1095
1123
|
}
|
|
@@ -1344,6 +1372,38 @@ export class Mapbox extends MapboxCommon {
|
|
|
1344
1372
|
}
|
|
1345
1373
|
});
|
|
1346
1374
|
}
|
|
1375
|
+
setOnMoveEndListener(listener, nativeMap) {
|
|
1376
|
+
return new Promise((resolve, reject) => {
|
|
1377
|
+
try {
|
|
1378
|
+
if (!this._mapboxMapInstance) {
|
|
1379
|
+
reject('No map has been loaded');
|
|
1380
|
+
return;
|
|
1381
|
+
}
|
|
1382
|
+
if (Trace.isEnabled()) {
|
|
1383
|
+
CLog(CLogTypes.info, 'setOnMoveEndListener():');
|
|
1384
|
+
}
|
|
1385
|
+
this.onMoveListener = new com.mapbox.mapboxsdk.maps.MapboxMap.OnMoveListener({
|
|
1386
|
+
onMoveBegin: (detector) => { },
|
|
1387
|
+
onMove: (detector) => { },
|
|
1388
|
+
onMoveEnd: (detector) => {
|
|
1389
|
+
const coordinate = this._mapboxMapInstance.getCameraPosition().target;
|
|
1390
|
+
return listener({
|
|
1391
|
+
lat: coordinate.getLatitude(),
|
|
1392
|
+
lng: coordinate.getLongitude()
|
|
1393
|
+
});
|
|
1394
|
+
}
|
|
1395
|
+
});
|
|
1396
|
+
this._mapboxMapInstance.addOnMoveListener(this.onMoveListener);
|
|
1397
|
+
resolve();
|
|
1398
|
+
}
|
|
1399
|
+
catch (ex) {
|
|
1400
|
+
if (Trace.isEnabled()) {
|
|
1401
|
+
CLog(CLogTypes.info, 'Error in mapbox.setOnMoveEndListener: ' + ex);
|
|
1402
|
+
}
|
|
1403
|
+
reject(ex);
|
|
1404
|
+
}
|
|
1405
|
+
});
|
|
1406
|
+
}
|
|
1347
1407
|
setOnScrollListener(listener, nativeMap) {
|
|
1348
1408
|
return new Promise((resolve, reject) => {
|
|
1349
1409
|
try {
|
|
@@ -1526,8 +1586,8 @@ export class Mapbox extends MapboxCommon {
|
|
|
1526
1586
|
.build();
|
|
1527
1587
|
const retinaFactor = Utils.layout.getDisplayDensity();
|
|
1528
1588
|
const offlineRegionDefinition = new com.mapbox.mapboxsdk.offline.OfflineTilePyramidRegionDefinition(styleURL, bounds, options.minZoom, options.maxZoom, retinaFactor);
|
|
1529
|
-
const info =
|
|
1530
|
-
const infoStr = new java.lang.String(info);
|
|
1589
|
+
const info = Object.assign({ name: options.name }, options.metadata);
|
|
1590
|
+
const infoStr = new java.lang.String(JSON.stringify(info));
|
|
1531
1591
|
const encodedMetadata = infoStr.getBytes();
|
|
1532
1592
|
if (!this._accessToken && !options.accessToken) {
|
|
1533
1593
|
reject("First show a map, or pass in an 'accessToken' param");
|
|
@@ -1557,7 +1617,7 @@ export class Mapbox extends MapboxCommon {
|
|
|
1557
1617
|
});
|
|
1558
1618
|
}
|
|
1559
1619
|
if (status.isComplete()) {
|
|
1560
|
-
resolve();
|
|
1620
|
+
resolve(status);
|
|
1561
1621
|
}
|
|
1562
1622
|
else if (status.isRequiredResourceCountPrecise()) {
|
|
1563
1623
|
}
|
|
@@ -1603,7 +1663,9 @@ export class Mapbox extends MapboxCommon {
|
|
|
1603
1663
|
const name = this._getRegionName(offlineRegion);
|
|
1604
1664
|
const offlineRegionDefinition = offlineRegion.getDefinition();
|
|
1605
1665
|
const bounds = offlineRegionDefinition.getBounds();
|
|
1666
|
+
const metadata = this._getRegionMetadata(offlineRegion);
|
|
1606
1667
|
regions.push({
|
|
1668
|
+
id: offlineRegion.getID(),
|
|
1607
1669
|
name,
|
|
1608
1670
|
style: offlineRegionDefinition.getStyleURL(),
|
|
1609
1671
|
minZoom: offlineRegionDefinition.getMinZoom(),
|
|
@@ -1613,7 +1675,10 @@ export class Mapbox extends MapboxCommon {
|
|
|
1613
1675
|
east: bounds.getLonEast(),
|
|
1614
1676
|
south: bounds.getLatSouth(),
|
|
1615
1677
|
west: bounds.getLonWest()
|
|
1616
|
-
}
|
|
1678
|
+
},
|
|
1679
|
+
metadata,
|
|
1680
|
+
pixelRatio: offlineRegionDefinition.getPixelRatio(),
|
|
1681
|
+
type: offlineRegionDefinition.getType()
|
|
1617
1682
|
});
|
|
1618
1683
|
}
|
|
1619
1684
|
}
|
|
@@ -1632,8 +1697,8 @@ export class Mapbox extends MapboxCommon {
|
|
|
1632
1697
|
deleteOfflineRegion(options) {
|
|
1633
1698
|
return new Promise((resolve, reject) => {
|
|
1634
1699
|
try {
|
|
1635
|
-
if (!options || !options.name) {
|
|
1636
|
-
reject("Pass in the 'name' param");
|
|
1700
|
+
if (!options || (!options.id && !options.name)) {
|
|
1701
|
+
reject("Pass in the 'id' or 'name' param");
|
|
1637
1702
|
return;
|
|
1638
1703
|
}
|
|
1639
1704
|
this._getOfflineManager().listOfflineRegions(new com.mapbox.mapboxsdk.offline.OfflineManager.ListOfflineRegionsCallback({
|
|
@@ -1646,8 +1711,8 @@ export class Mapbox extends MapboxCommon {
|
|
|
1646
1711
|
if (offlineRegions !== null) {
|
|
1647
1712
|
for (let i = 0; i < offlineRegions.length; i++) {
|
|
1648
1713
|
const offlineRegion = offlineRegions[i];
|
|
1649
|
-
const
|
|
1650
|
-
if (
|
|
1714
|
+
const regionId = options.id ? offlineRegion.getID() : this._getRegionName(offlineRegion);
|
|
1715
|
+
if (regionId === (options.id || options.name)) {
|
|
1651
1716
|
found = true;
|
|
1652
1717
|
offlineRegion.delete(new com.mapbox.mapboxsdk.offline.OfflineRegion.OfflineRegionDeleteCallback({
|
|
1653
1718
|
onError: (error) => {
|
|
@@ -1668,7 +1733,7 @@ export class Mapbox extends MapboxCommon {
|
|
|
1668
1733
|
}
|
|
1669
1734
|
catch (ex) {
|
|
1670
1735
|
if (Trace.isEnabled()) {
|
|
1671
|
-
CLog(CLogTypes.info, 'Error in mapbox.
|
|
1736
|
+
CLog(CLogTypes.info, 'Error in mapbox.deleteOfflineRegion: ' + ex);
|
|
1672
1737
|
}
|
|
1673
1738
|
reject(ex);
|
|
1674
1739
|
}
|
|
@@ -1785,11 +1850,24 @@ export class Mapbox extends MapboxCommon {
|
|
|
1785
1850
|
if (options.maxzoom) {
|
|
1786
1851
|
geojsonOptions.withMaxZoom(options.maxzoom);
|
|
1787
1852
|
}
|
|
1853
|
+
if (options.lineMetrics !== undefined) {
|
|
1854
|
+
geojsonOptions.withLineMetrics(options.lineMetrics);
|
|
1855
|
+
}
|
|
1788
1856
|
if (options.cluster) {
|
|
1789
1857
|
geojsonOptions
|
|
1790
1858
|
.withCluster(true)
|
|
1791
1859
|
.withClusterMaxZoom(options.cluster.maxZoom || 13)
|
|
1792
1860
|
.withClusterRadius(options.cluster.radius || 40);
|
|
1861
|
+
if (options.cluster.properties) {
|
|
1862
|
+
for (const property of Object.keys(options.cluster.properties)) {
|
|
1863
|
+
const propertyValues = options.cluster.properties[property];
|
|
1864
|
+
let operator = propertyValues[0];
|
|
1865
|
+
if (!Array.isArray(operator)) {
|
|
1866
|
+
operator = [operator];
|
|
1867
|
+
}
|
|
1868
|
+
geojsonOptions.withClusterProperty(property, ExpressionParser.parseJson(operator), ExpressionParser.parseJson(propertyValues[1]));
|
|
1869
|
+
}
|
|
1870
|
+
}
|
|
1793
1871
|
}
|
|
1794
1872
|
const geoJsonSource = new com.mapbox.mapboxsdk.style.sources.GeoJsonSource(id, geojsonOptions);
|
|
1795
1873
|
if (options.data) {
|
|
@@ -1896,7 +1974,7 @@ export class Mapbox extends MapboxCommon {
|
|
|
1896
1974
|
if (!lineSource) {
|
|
1897
1975
|
throw new Error(`no source found with id: ${sId}`);
|
|
1898
1976
|
}
|
|
1899
|
-
const lineFeatures = lineSource.querySourceFeatures(
|
|
1977
|
+
const lineFeatures = lineSource.querySourceFeatures(ExpressionParser.parseJson(['==', '$type', 'LineString']));
|
|
1900
1978
|
if (lineFeatures.size() === 0) {
|
|
1901
1979
|
throw new Error('no line string feature found');
|
|
1902
1980
|
}
|
|
@@ -1984,9 +2062,14 @@ export class Mapbox extends MapboxCommon {
|
|
|
1984
2062
|
}
|
|
1985
2063
|
this.requestFineLocationPermission()
|
|
1986
2064
|
.then(() => {
|
|
1987
|
-
this.
|
|
1988
|
-
|
|
1989
|
-
}
|
|
2065
|
+
if (this._locationComponent) {
|
|
2066
|
+
this.changeUserLocationMarkerMode(options.renderMode || 'COMPASS', options.cameraMode || 'TRACKING');
|
|
2067
|
+
}
|
|
2068
|
+
else {
|
|
2069
|
+
this.showUserLocationMarker({
|
|
2070
|
+
useDefaultLocationEngine: true
|
|
2071
|
+
});
|
|
2072
|
+
}
|
|
1990
2073
|
})
|
|
1991
2074
|
.catch((err) => {
|
|
1992
2075
|
console.error('Location permission denied. error:', err);
|
|
@@ -2081,11 +2164,11 @@ export class Mapbox extends MapboxCommon {
|
|
|
2081
2164
|
return modeRef.NONE_GPS;
|
|
2082
2165
|
case 'TRACKING':
|
|
2083
2166
|
return modeRef.TRACKING;
|
|
2084
|
-
case '
|
|
2167
|
+
case 'TRACKING_COMPASS':
|
|
2085
2168
|
return modeRef.TRACKING_COMPASS;
|
|
2086
2169
|
case 'TRACKING_GPS':
|
|
2087
2170
|
return modeRef.TRACKING_GPS;
|
|
2088
|
-
case '
|
|
2171
|
+
case 'TRACKING_GPS_NORTH':
|
|
2089
2172
|
return modeRef.TRACKING_GPS_NORTH;
|
|
2090
2173
|
}
|
|
2091
2174
|
}
|
|
@@ -2115,7 +2198,18 @@ export class Mapbox extends MapboxCommon {
|
|
|
2115
2198
|
const metadata = offlineRegion.getMetadata();
|
|
2116
2199
|
const jsonStr = new java.lang.String(metadata, 'UTF-8');
|
|
2117
2200
|
const jsonObj = new org.json.JSONObject(jsonStr);
|
|
2118
|
-
|
|
2201
|
+
try {
|
|
2202
|
+
return jsonObj.getString('name');
|
|
2203
|
+
}
|
|
2204
|
+
catch (error) {
|
|
2205
|
+
return '';
|
|
2206
|
+
}
|
|
2207
|
+
}
|
|
2208
|
+
_getRegionMetadata(offlineRegion) {
|
|
2209
|
+
const metadata = offlineRegion.getMetadata();
|
|
2210
|
+
const jsonStr = new java.lang.String(metadata, 'UTF-8');
|
|
2211
|
+
const jsonObj = new org.json.JSONObject(jsonStr);
|
|
2212
|
+
return JSON.parse(jsonObj.toString());
|
|
2119
2213
|
}
|
|
2120
2214
|
showUserLocationMarker(options, nativeMap) {
|
|
2121
2215
|
return new Promise((resolve, reject) => {
|
|
@@ -2241,23 +2335,32 @@ export class Mapbox extends MapboxCommon {
|
|
|
2241
2335
|
reject('No location component has been loaded');
|
|
2242
2336
|
return;
|
|
2243
2337
|
}
|
|
2244
|
-
if (
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2338
|
+
if (cameraModeString) {
|
|
2339
|
+
const cameraMode = this._stringToCameraMode(cameraModeString);
|
|
2340
|
+
if (Trace.isEnabled()) {
|
|
2341
|
+
CLog(CLogTypes.info, `Mapbox::changeUserLocationMarkerMode(): current camera mode is: ${this._locationComponent.getCameraMode()}`);
|
|
2342
|
+
CLog(CLogTypes.info, `Mapbox::changeUserLocationMarkerMode(): changing camera mode to: ${cameraMode}`);
|
|
2343
|
+
}
|
|
2344
|
+
this._locationComponent.setCameraMode(cameraMode);
|
|
2345
|
+
if (Trace.isEnabled()) {
|
|
2346
|
+
CLog(CLogTypes.info, `Mapbox::changeUserLocationMarkerMode(): new camera mode is: ${this._locationComponent.getCameraMode()}`);
|
|
2347
|
+
}
|
|
2249
2348
|
}
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2349
|
+
if (renderModeString) {
|
|
2350
|
+
const renderMode = this._stringToRenderMode(renderModeString);
|
|
2351
|
+
if (Trace.isEnabled()) {
|
|
2352
|
+
CLog(CLogTypes.info, `Mapbox::changeUserLocationMarkerMode(): current render mode is: ${this._locationComponent.getRenderMode()}`);
|
|
2353
|
+
CLog(CLogTypes.info, `Mapbox::changeUserLocationMarkerMode(): changing render mode to: '${renderMode}'`);
|
|
2354
|
+
}
|
|
2355
|
+
this._locationComponent.setRenderMode(renderMode);
|
|
2356
|
+
if (Trace.isEnabled()) {
|
|
2357
|
+
CLog(CLogTypes.info, 'changeUserLocationMarkerMode(): new render mode is:', this._locationComponent.getRenderMode());
|
|
2358
|
+
}
|
|
2256
2359
|
}
|
|
2257
2360
|
}
|
|
2258
2361
|
catch (ex) {
|
|
2259
2362
|
if (Trace.isEnabled()) {
|
|
2260
|
-
CLog(CLogTypes.info, 'Error in mapbox.
|
|
2363
|
+
CLog(CLogTypes.info, 'Error in mapbox.changeUserLocationMarkerMode: ' + ex);
|
|
2261
2364
|
}
|
|
2262
2365
|
reject(ex);
|
|
2263
2366
|
}
|
|
@@ -2358,7 +2461,7 @@ export class Mapbox extends MapboxCommon {
|
|
|
2358
2461
|
resolve(marker);
|
|
2359
2462
|
return;
|
|
2360
2463
|
}
|
|
2361
|
-
getImage(marker.icon).then((output) => {
|
|
2464
|
+
Http.getImage(marker.icon).then((output) => {
|
|
2362
2465
|
marker.iconDownloaded = output.android;
|
|
2363
2466
|
this._markerIconDownloadCache[marker.icon] = marker.iconDownloaded;
|
|
2364
2467
|
resolve(marker);
|
|
@@ -2388,31 +2491,15 @@ export class Mapbox extends MapboxCommon {
|
|
|
2388
2491
|
project(data) {
|
|
2389
2492
|
const mapboxPoint = new com.mapbox.mapboxsdk.geometry.LatLng(data.lat, data.lng);
|
|
2390
2493
|
const screenLocation = this._mapboxMapInstance.getProjection().toScreenLocation(mapboxPoint);
|
|
2391
|
-
return { x: layout.toDeviceIndependentPixels(screenLocation.x), y: layout.toDeviceIndependentPixels(screenLocation.y) };
|
|
2392
|
-
}
|
|
2393
|
-
}
|
|
2394
|
-
export class Layer {
|
|
2395
|
-
constructor(instance) {
|
|
2396
|
-
this.instance = instance;
|
|
2397
|
-
this.id = instance.getId();
|
|
2494
|
+
return { x: Utils.layout.toDeviceIndependentPixels(screenLocation.x), y: Utils.layout.toDeviceIndependentPixels(screenLocation.y) };
|
|
2398
2495
|
}
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
this.instance.setProperties([new com.mapbox.mapboxsdk.style.layers.PropertyValue('visibility', 'none')]);
|
|
2407
|
-
}
|
|
2408
|
-
getNativeInstance() {
|
|
2409
|
-
return this.instance;
|
|
2410
|
-
}
|
|
2411
|
-
setFilter(filter) {
|
|
2412
|
-
this.instance.setFilter(FilterParser.parseJson(filter));
|
|
2413
|
-
}
|
|
2414
|
-
getFilter() {
|
|
2415
|
-
return FilterParser.toJson(this.instance.getFilter());
|
|
2496
|
+
projectBack(screenCoordinate) {
|
|
2497
|
+
const pointf = new android.graphics.PointF(screenCoordinate.x, screenCoordinate.y);
|
|
2498
|
+
const coordinate = this._mapboxMapInstance.getProjection().fromScreenLocation(pointf);
|
|
2499
|
+
return {
|
|
2500
|
+
lat: coordinate.getLatitude(),
|
|
2501
|
+
lng: coordinate.getLongitude()
|
|
2502
|
+
};
|
|
2416
2503
|
}
|
|
2417
2504
|
}
|
|
2418
|
-
//# sourceMappingURL=
|
|
2505
|
+
//# sourceMappingURL=index.android.js.map
|
package/index.d.ts
CHANGED
|
@@ -1,8 +1,101 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* It doesn't matter if you export `.ios` or `.android`, either one but only one.
|
|
4
|
-
*/
|
|
5
|
-
export * from './mapbox.ios';
|
|
1
|
+
import { ImageSource } from '@nativescript/core';
|
|
2
|
+
import { AddExtrusionOptions, AddGeoJsonClusteredOptions, AddPolygonOptions, AddPolylineOptions, AddSourceOptions, AnimateCameraOptions, DeleteOfflineRegionOptions, DownloadOfflineRegionOptions, Feature, LatLng, LayerCommon, ListOfflineRegionsOptions, MapboxApi, MapboxCommon, MapboxMarker, MapboxViewBase, MapStyle, OfflineRegion, QueryRenderedFeaturesOptions, QuerySourceFeaturesOptions, SetCenterOptions, SetTiltOptions, SetViewportOptions, SetZoomLevelOptions, ShowOptions, TrackUserOptions, UpdateSourceOptions, UserLocation, UserLocationCameraMode, Viewport } from './common';
|
|
6
3
|
|
|
7
4
|
// Export any shared classes, constants, etc.
|
|
8
|
-
export * from './
|
|
5
|
+
export * from './common';
|
|
6
|
+
|
|
7
|
+
export declare function setLogLevel(level: 'none' | 'info' | 'debug' | 'error' | 'fault' | 'verbose'): void;
|
|
8
|
+
export declare class MapboxView extends MapboxViewBase {
|
|
9
|
+
private nativeMapView;
|
|
10
|
+
private delegate;
|
|
11
|
+
private settings;
|
|
12
|
+
private initialized;
|
|
13
|
+
private initCountHack;
|
|
14
|
+
setConfig(settings: any): void;
|
|
15
|
+
getNativeMapView(): any;
|
|
16
|
+
createNativeView(): Object;
|
|
17
|
+
onLoaded(): void;
|
|
18
|
+
initNativeView(): void;
|
|
19
|
+
disposeNativeView(): Promise<void>;
|
|
20
|
+
getMapboxApi(): any;
|
|
21
|
+
initMap(): void;
|
|
22
|
+
onLayout(left: number, top: number, right: number, bottom: number): void;
|
|
23
|
+
}
|
|
24
|
+
export declare class Mapbox extends MapboxCommon implements MapboxApi {
|
|
25
|
+
private _mapboxViewInstance;
|
|
26
|
+
private eventCallbacks;
|
|
27
|
+
private userLocationRenderMode;
|
|
28
|
+
setMapboxViewInstance(mapboxViewInstance: any): void;
|
|
29
|
+
initEventHandlerShim(settings: any, mapboxNativeViewInstance: any): void;
|
|
30
|
+
onMapEvent(eventName: any, id: any, callback: any, nativeMapView?: any): void;
|
|
31
|
+
offMapEvent(eventName: any, id: any, nativeMapView?: any): void;
|
|
32
|
+
private checkForClickEvent;
|
|
33
|
+
private _addMarkers;
|
|
34
|
+
show(options: ShowOptions): Promise<any>;
|
|
35
|
+
hide(): Promise<void>;
|
|
36
|
+
unhide(): Promise<void>;
|
|
37
|
+
destroy(nativeMap?: any): Promise<void>;
|
|
38
|
+
onStart(nativeMap?: any): Promise<void>;
|
|
39
|
+
onResume(nativeMap?: any): Promise<void>;
|
|
40
|
+
onPause(nativeMap?: any): Promise<void>;
|
|
41
|
+
onStop(nativeMap?: any): Promise<void>;
|
|
42
|
+
onLowMemory(nativeMap?: any): Promise<void>;
|
|
43
|
+
onDestroy(nativeMap?: any): Promise<void>;
|
|
44
|
+
setMapStyle(style: string | MapStyle, nativeMap?: any): Promise<void>;
|
|
45
|
+
getImage(imageId: string, nativeMap?: any): Promise<ImageSource>;
|
|
46
|
+
addImage(imageId: string, image: string, nativeMap?: any): Promise<void>;
|
|
47
|
+
removeImage(imageId: string, nativeMap?: any): Promise<void>;
|
|
48
|
+
addMarkers(markers: MapboxMarker[], nativeMap?: any): Promise<void>;
|
|
49
|
+
removeMarkers(ids?: any, nativeMap?: any): Promise<void>;
|
|
50
|
+
setCenter(options: SetCenterOptions, nativeMap?: any): Promise<void>;
|
|
51
|
+
getCenter(nativeMap?: any): Promise<LatLng>;
|
|
52
|
+
setZoomLevel(options: SetZoomLevelOptions, nativeMap?: any): Promise<void>;
|
|
53
|
+
getZoomLevel(nativeMap?: any): Promise<number>;
|
|
54
|
+
setTilt(options: SetTiltOptions, nativeMap?: any): Promise<void>;
|
|
55
|
+
getTilt(nativeMap?: any): Promise<number>;
|
|
56
|
+
getUserLocation(nativeMap?: any): Promise<UserLocation>;
|
|
57
|
+
_stringToCameraMode(mode: UserLocationCameraMode): any;
|
|
58
|
+
_stringToRenderMode(mode: any): any;
|
|
59
|
+
showUserLocationMarker(options: any, nativeMap?: any): Promise<void>;
|
|
60
|
+
hideUserLocationMarker(nativeMap?: any): Promise<void>;
|
|
61
|
+
changeUserLocationMarkerMode(renderModeString: any, cameraModeString: UserLocationCameraMode, nativeMap?: any): Promise<void>;
|
|
62
|
+
forceUserLocationUpdate(location: any, nativeMap?: any): void;
|
|
63
|
+
queryRenderedFeatures(options: QueryRenderedFeaturesOptions, nativeMap?: any): Promise<Feature[]>;
|
|
64
|
+
querySourceFeatures(sourceId: string, options?: QuerySourceFeaturesOptions, nativeMap?: any): Promise<Feature[]>;
|
|
65
|
+
addPolygon(options: AddPolygonOptions, nativeMap?: any): Promise<void>;
|
|
66
|
+
addPolyline(options: AddPolylineOptions, nativeMap?: any): Promise<void>;
|
|
67
|
+
private removePolyById;
|
|
68
|
+
private removePolys;
|
|
69
|
+
removePolygons(ids?: any[], nativeMap?: any): Promise<void>;
|
|
70
|
+
removePolylines(ids?: any[], nativeMap?: any): Promise<void>;
|
|
71
|
+
animateCamera(options: AnimateCameraOptions, nativeMap?: any): Promise<void>;
|
|
72
|
+
setOnMapClickListener(listener: (data: LatLng) => void, nativeMap?: any): Promise<void>;
|
|
73
|
+
setOnMapLongClickListener(listener: (data: LatLng) => void, nativeMap?: any): Promise<void>;
|
|
74
|
+
setOnScrollListener(listener: (data?: LatLng) => void, nativeMap?: any): Promise<void>;
|
|
75
|
+
setOnMoveBeginListener(listener: (data?: LatLng) => void, nativeMap?: any): Promise<void>;
|
|
76
|
+
setOnFlingListener(listener: () => void, nativeMap?: any): Promise<void>;
|
|
77
|
+
setOnCameraMoveListener(listener: (reason: any, animated?: any) => void, nativeMap?: any): Promise<void>;
|
|
78
|
+
setOnCameraMoveCancelListener(listener: () => void, nativeMap?: any): Promise<void>;
|
|
79
|
+
setOnCameraIdleListener(listener: () => void, nativeMap?: any): Promise<void>;
|
|
80
|
+
getViewport(nativeMap?: any): Promise<Viewport>;
|
|
81
|
+
setViewport(options: SetViewportOptions, nativeMap?: any): Promise<void>;
|
|
82
|
+
downloadOfflineRegion(options: DownloadOfflineRegionOptions): Promise<void>;
|
|
83
|
+
listOfflineRegions(options?: ListOfflineRegionsOptions): Promise<OfflineRegion[]>;
|
|
84
|
+
deleteOfflineRegion(options: DeleteOfflineRegionOptions): Promise<void>;
|
|
85
|
+
addExtrusion(options: AddExtrusionOptions, nativeMap?: any): Promise<void>;
|
|
86
|
+
updateSource(id: string, options: UpdateSourceOptions, nativeMap?: any): Promise<unknown>;
|
|
87
|
+
addSource(id: string, options: AddSourceOptions, nativeMap?: any): Promise<void>;
|
|
88
|
+
removeSource(id: string, nativeMap?: any): Promise<void>;
|
|
89
|
+
addLayer(style: any, belowLayerId?: string, nativeMapView?: any): Promise<void>;
|
|
90
|
+
removeLayer(id: string, nativeMapViewInstance?: any): Promise<void>;
|
|
91
|
+
addLinePoint(id: string, lnglat: any, sourceId?: string, nativeMapView?: any): Promise<void>;
|
|
92
|
+
addGeoJsonClustered(options: AddGeoJsonClusteredOptions, nativeMapViewInstance?: any): Promise<void>;
|
|
93
|
+
trackUser(options: TrackUserOptions, nativeMap?: any): Promise<void>;
|
|
94
|
+
getLayer(name: string, nativeMap?: any): Promise<LayerCommon>;
|
|
95
|
+
getLayers(nativeMap?: any): Promise<LayerCommon[]>;
|
|
96
|
+
project(data: LatLng): {
|
|
97
|
+
x: number;
|
|
98
|
+
y: number;
|
|
99
|
+
};
|
|
100
|
+
projectBack(screenCoordinate: { x: number, y: number }): LatLng;
|
|
101
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ImageSource } from '@nativescript/core';
|
|
2
|
-
import { AddExtrusionOptions, AddGeoJsonClusteredOptions, AddPolygonOptions, AddPolylineOptions, AddSourceOptions, AnimateCameraOptions, DeleteOfflineRegionOptions, DownloadOfflineRegionOptions, Feature, LatLng, LayerCommon, ListOfflineRegionsOptions, MapStyle, MapboxApi, MapboxCommon, MapboxMarker,
|
|
3
|
-
export
|
|
2
|
+
import { AddExtrusionOptions, AddGeoJsonClusteredOptions, AddPolygonOptions, AddPolylineOptions, AddSourceOptions, AnimateCameraOptions, DeleteOfflineRegionOptions, DownloadOfflineRegionOptions, Feature, LatLng, LayerCommon, ListOfflineRegionsOptions, MapStyle, MapboxApi, MapboxCommon, MapboxMarker, MapboxViewBase, OfflineRegion, QueryRenderedFeaturesOptions, QuerySourceFeaturesOptions, SetCenterOptions, SetTiltOptions, SetViewportOptions, SetZoomLevelOptions, ShowOptions, TrackUserOptions, UpdateSourceOptions, UserLocation, UserLocationCameraMode, Viewport } from './common';
|
|
3
|
+
export * from './common';
|
|
4
4
|
export declare function setLogLevel(level: 'none' | 'info' | 'debug' | 'error' | 'fault' | 'verbose'): void;
|
|
5
5
|
export declare class MapboxView extends MapboxViewBase {
|
|
6
6
|
private nativeMapView;
|
|
@@ -18,23 +18,6 @@ export declare class MapboxView extends MapboxViewBase {
|
|
|
18
18
|
initMap(): void;
|
|
19
19
|
onLayout(left: number, top: number, right: number, bottom: number): void;
|
|
20
20
|
}
|
|
21
|
-
export declare class CustomUserLocationAnnotationView extends MGLUserLocationAnnotationView implements MGLUserLocationAnnotationView {
|
|
22
|
-
size: number;
|
|
23
|
-
dot: CALayer;
|
|
24
|
-
arrow: CAShapeLayer;
|
|
25
|
-
private userLocationRenderMode;
|
|
26
|
-
private renderModeChanged;
|
|
27
|
-
init(): this;
|
|
28
|
-
update(): void;
|
|
29
|
-
drawTrackingLocationMarker(): void;
|
|
30
|
-
drawNonTrackingLocationMarker(): void;
|
|
31
|
-
drawTrackingDot(): void;
|
|
32
|
-
drawNonTrackingDot(): void;
|
|
33
|
-
drawArrow(): void;
|
|
34
|
-
updateHeading(): void;
|
|
35
|
-
arrowPath(): any;
|
|
36
|
-
changeUserLocationRenderMode(renderMode: any): void;
|
|
37
|
-
}
|
|
38
21
|
export declare class Mapbox extends MapboxCommon implements MapboxApi {
|
|
39
22
|
private _mapboxViewInstance;
|
|
40
23
|
private eventCallbacks;
|
|
@@ -87,6 +70,7 @@ export declare class Mapbox extends MapboxCommon implements MapboxApi {
|
|
|
87
70
|
setOnMapLongClickListener(listener: (data: LatLng) => void, nativeMap?: any): Promise<void>;
|
|
88
71
|
setOnScrollListener(listener: (data?: LatLng) => void, nativeMap?: any): Promise<void>;
|
|
89
72
|
setOnMoveBeginListener(listener: (data?: LatLng) => void, nativeMap?: any): Promise<void>;
|
|
73
|
+
setOnMoveEndListener(listener: () => void, nativeMap?: any): Promise<void>;
|
|
90
74
|
setOnFlingListener(listener: () => void, nativeMap?: any): Promise<void>;
|
|
91
75
|
setOnCameraMoveListener(listener: (reason: any, animated?: any) => void, nativeMap?: any): Promise<void>;
|
|
92
76
|
setOnCameraMoveCancelListener(listener: () => void, nativeMap?: any): Promise<void>;
|
|
@@ -111,15 +95,8 @@ export declare class Mapbox extends MapboxCommon implements MapboxApi {
|
|
|
111
95
|
x: number;
|
|
112
96
|
y: number;
|
|
113
97
|
};
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
constructor(instance: any);
|
|
119
|
-
visibility(): boolean;
|
|
120
|
-
show(): void;
|
|
121
|
-
hide(): void;
|
|
122
|
-
getNativeInstance(): any;
|
|
123
|
-
setFilter(filter: any[]): void;
|
|
124
|
-
getFilter(): any[];
|
|
98
|
+
projectBack(screenCoordinate: {
|
|
99
|
+
x: number;
|
|
100
|
+
y: number;
|
|
101
|
+
}): LatLng;
|
|
125
102
|
}
|