@rnmapbox/maps 10.0.15-rc.0 → 10.1.0-beta.2
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/android/build.gradle +20 -0
- package/android/src/main/java-v10/com/mapbox/rctmgl/RCTMGLPackage.java +109 -12
- package/android/src/main/java-v10/com/mapbox/rctmgl/components/AbstractEventEmitter.kt +2 -3
- package/android/src/main/java-v10/com/mapbox/rctmgl/components/mapview/NativeMapViewModule.kt +193 -0
- package/android/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapViewManager.kt +16 -2
- package/android/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLMapView.kt +1 -1
- package/android/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLMapViewManager.kt +75 -160
- package/android/src/main/java-v10/com/mapbox/rctmgl/components/styles/layers/RCTLayer.kt +3 -3
- package/android/src/main/java-v10/com/mapbox/rctmgl/mapbox/Light.kt +6 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/MBXAndroidTextureMapViewManagerDelegate.java +89 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/MBXAndroidTextureMapViewManagerInterface.java +37 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/MBXMapViewManagerDelegate.java +89 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/MBXMapViewManagerInterface.java +37 -0
- package/android/src/main/old-arch/com/mapbox/rctmgl/NativeMapViewModuleSpec.java +88 -0
- package/ios/RCTMGL-v10/CustomHttpHeaders.swift +18 -0
- package/ios/RCTMGL-v10/MBXMapViewComponentView.h +18 -0
- package/ios/RCTMGL-v10/MBXMapViewComponentView.mm +203 -0
- package/ios/RCTMGL-v10/MBXMapViewManager.m +37 -0
- package/ios/RCTMGL-v10/MBXMapViewManager.swift +250 -0
- package/ios/RCTMGL-v10/MBXMapViewModule.h +18 -0
- package/ios/RCTMGL-v10/MBXMapViewModule.mm +167 -0
- package/ios/RCTMGL-v10/MGLModule.swift +15 -1
- package/ios/RCTMGL-v10/MGLSnapshotModule.swift +7 -1
- package/ios/RCTMGL-v10/RCTMGLAtmosphere.swift +4 -0
- package/ios/RCTMGL-v10/RCTMGLBackgroundLayer.swift +2 -1
- package/ios/RCTMGL-v10/RCTMGLCamera.swift +23 -0
- package/ios/RCTMGL-v10/RCTMGLCircleLayer.swift +4 -0
- package/ios/RCTMGL-v10/RCTMGLFillExtrustionLayer.swift +4 -0
- package/ios/RCTMGL-v10/RCTMGLFillLayer.swift +4 -0
- package/ios/RCTMGL-v10/RCTMGLHeatmapLayer.swift +4 -1
- package/ios/RCTMGL-v10/RCTMGLImageSource.swift +4 -0
- package/ios/RCTMGL-v10/RCTMGLImages.swift +14 -2
- package/ios/RCTMGL-v10/RCTMGLLayer.swift +35 -11
- package/ios/RCTMGL-v10/RCTMGLLight.swift +14 -4
- package/ios/RCTMGL-v10/RCTMGLLineLayer.swift +4 -0
- package/ios/RCTMGL-v10/RCTMGLLocationModule.swift +65 -12
- package/ios/RCTMGL-v10/RCTMGLLocationModuleV11.swift +32 -0
- package/ios/RCTMGL-v10/RCTMGLMapView.swift +115 -27
- package/ios/RCTMGL-v10/RCTMGLNativeUserLocation.swift +4 -0
- package/ios/RCTMGL-v10/RCTMGLOfflineModule.swift +17 -0
- package/ios/RCTMGL-v10/RCTMGLRasterDemSource.swift +4 -0
- package/ios/RCTMGL-v10/RCTMGLRasterLayer.swift +4 -0
- package/ios/RCTMGL-v10/RCTMGLRasterSource.swift +4 -0
- package/ios/RCTMGL-v10/RCTMGLShapeSource.swift +65 -3
- package/ios/RCTMGL-v10/RCTMGLSource.swift +4 -0
- package/ios/RCTMGL-v10/RCTMGLStyleValue.swift +60 -1
- package/ios/RCTMGL-v10/RCTMGLSymbolLayer.swift +4 -0
- package/ios/RCTMGL-v10/RCTMGLVectorSource.swift +4 -0
- package/ios/RCTMGL-v10/rnmapbox_maps.h +1 -0
- package/lib/commonjs/components/MapView.js +47 -11
- package/lib/commonjs/components/MapView.js.map +1 -1
- package/lib/commonjs/specs/MBXAndroidTextureMapViewNativeComponent.js +13 -0
- package/lib/commonjs/specs/MBXAndroidTextureMapViewNativeComponent.js.map +1 -0
- package/lib/commonjs/specs/MBXMapViewNativeComponent.js +11 -0
- package/lib/commonjs/specs/MBXMapViewNativeComponent.js.map +1 -0
- package/lib/commonjs/specs/NativeMapViewModule.js +11 -0
- package/lib/commonjs/specs/NativeMapViewModule.js.map +1 -0
- package/lib/commonjs/specs/codegenUtils.js +2 -0
- package/lib/commonjs/specs/codegenUtils.js.map +1 -0
- package/lib/module/components/MapView.js +47 -10
- package/lib/module/components/MapView.js.map +1 -1
- package/lib/module/specs/MBXAndroidTextureMapViewNativeComponent.js +5 -0
- package/lib/module/specs/MBXAndroidTextureMapViewNativeComponent.js.map +1 -0
- package/lib/module/specs/MBXMapViewNativeComponent.js +3 -0
- package/lib/module/specs/MBXMapViewNativeComponent.js.map +1 -0
- package/lib/module/specs/NativeMapViewModule.js +5 -0
- package/lib/module/specs/NativeMapViewModule.js.map +1 -0
- package/lib/module/specs/codegenUtils.js +2 -0
- package/lib/module/specs/codegenUtils.js.map +1 -0
- package/lib/typescript/components/MapView.d.ts +13 -3
- package/lib/typescript/components/MapView.d.ts.map +1 -1
- package/lib/typescript/specs/MBXAndroidTextureMapViewNativeComponent.d.ts +52 -0
- package/lib/typescript/specs/MBXAndroidTextureMapViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/specs/MBXMapViewNativeComponent.d.ts +52 -0
- package/lib/typescript/specs/MBXMapViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/specs/NativeMapViewModule.d.ts +21 -0
- package/lib/typescript/specs/NativeMapViewModule.d.ts.map +1 -0
- package/lib/typescript/specs/codegenUtils.d.ts +2 -0
- package/lib/typescript/specs/codegenUtils.d.ts.map +1 -0
- package/package.json +9 -1
- package/rnmapbox-maps.podspec +22 -4
- package/setup-jest.js +16 -0
- package/src/components/MapView.tsx +56 -12
- package/src/specs/MBXAndroidTextureMapViewNativeComponent.ts +63 -0
- package/src/specs/MBXMapViewNativeComponent.ts +63 -0
- package/src/specs/NativeMapViewModule.ts +54 -0
- package/src/specs/codegenUtils.ts +4 -0
- package/ios/RCTMGL-v10/RCTMGLMapViewManager.m +0 -107
- package/ios/RCTMGL-v10/RCTMGLMapViewManager.swift +0 -285
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/ban-types */
|
|
2
|
+
import type { TurboModule } from 'react-native/Libraries/TurboModule/RCTExport';
|
|
3
|
+
import { Int32 } from 'react-native/Libraries/Types/CodegenTypes';
|
|
4
|
+
import { TurboModuleRegistry } from 'react-native';
|
|
5
|
+
|
|
6
|
+
export interface Spec extends TurboModule {
|
|
7
|
+
takeSnap: (viewRef: Int32 | null, writeToDisk: boolean) => Promise<Object>;
|
|
8
|
+
queryTerrainElevation: (
|
|
9
|
+
viewRef: Int32 | null,
|
|
10
|
+
coordinates: ReadonlyArray<number>,
|
|
11
|
+
) => Promise<Object>;
|
|
12
|
+
setSourceVisibility: (
|
|
13
|
+
viewRef: Int32 | null,
|
|
14
|
+
visible: boolean,
|
|
15
|
+
sourceId: string,
|
|
16
|
+
sourceLayerId: string,
|
|
17
|
+
) => Promise<Object>;
|
|
18
|
+
getCenter: (viewRef: Int32 | null) => Promise<Object>;
|
|
19
|
+
getCoordinateFromView: (
|
|
20
|
+
viewRef: Int32 | null,
|
|
21
|
+
atPoint: ReadonlyArray<number>,
|
|
22
|
+
) => Promise<Object>;
|
|
23
|
+
getPointInView: (
|
|
24
|
+
viewRef: Int32 | null,
|
|
25
|
+
atCoordinate: ReadonlyArray<number>,
|
|
26
|
+
) => Promise<Object>;
|
|
27
|
+
getZoom: (viewRef: Int32 | null) => Promise<Object>;
|
|
28
|
+
getVisibleBounds: (viewRef: Int32 | null) => Promise<Object>;
|
|
29
|
+
queryRenderedFeaturesAtPoint: (
|
|
30
|
+
viewRef: Int32 | null,
|
|
31
|
+
atPoint: ReadonlyArray<number>,
|
|
32
|
+
withFilter: ReadonlyArray<Object>,
|
|
33
|
+
withLayerIDs: ReadonlyArray<string>,
|
|
34
|
+
) => Promise<Object>;
|
|
35
|
+
queryRenderedFeaturesInRect: (
|
|
36
|
+
viewRef: Int32 | null,
|
|
37
|
+
withBBox: ReadonlyArray<number>,
|
|
38
|
+
withFilter: ReadonlyArray<Object>,
|
|
39
|
+
withLayerIDs: ReadonlyArray<string>,
|
|
40
|
+
) => Promise<Object>;
|
|
41
|
+
setHandledMapChangedEvents: (
|
|
42
|
+
viewRef: Int32 | null,
|
|
43
|
+
events: ReadonlyArray<string>,
|
|
44
|
+
) => Promise<Object>;
|
|
45
|
+
clearData: (viewRef: Int32 | null) => Promise<Object>;
|
|
46
|
+
querySourceFeatures: (
|
|
47
|
+
viewRef: Int32 | null,
|
|
48
|
+
sourceId: string,
|
|
49
|
+
withFilter: ReadonlyArray<Object>,
|
|
50
|
+
withSourceLayerIDs: ReadonlyArray<string>,
|
|
51
|
+
) => Promise<Object>;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export default TurboModuleRegistry.getEnforcing<Spec>('MBXMapViewModule');
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
#import <React/RCTBridgeModule.h>
|
|
2
|
-
#import <React/RCTViewManager.h>
|
|
3
|
-
|
|
4
|
-
@interface RCT_EXTERN_REMAP_MODULE(RCTMGLMapView, RCTMGLMapViewManager, RCTViewManager)
|
|
5
|
-
|
|
6
|
-
RCT_EXPORT_VIEW_PROPERTY(onCameraChanged, RCTDirectEventBlock)
|
|
7
|
-
|
|
8
|
-
RCT_REMAP_VIEW_PROPERTY(attributionEnabled, reactAttributionEnabled, BOOL)
|
|
9
|
-
RCT_REMAP_VIEW_PROPERTY(attributionPosition, reactAttributionPosition, NSDictionary)
|
|
10
|
-
|
|
11
|
-
RCT_REMAP_VIEW_PROPERTY(logoEnabled, reactLogoEnabled, BOOL)
|
|
12
|
-
RCT_REMAP_VIEW_PROPERTY(logoPosition, reactLogoPosition, NSDictionary)
|
|
13
|
-
|
|
14
|
-
RCT_REMAP_VIEW_PROPERTY(compassEnabled, reactCompassEnabled, BOOL)
|
|
15
|
-
RCT_REMAP_VIEW_PROPERTY(compassFadeWhenNorth, reactCompassFadeWhenNorth, BOOL)
|
|
16
|
-
RCT_REMAP_VIEW_PROPERTY(compassPosition, reactCompassPosition, NSDictionary)
|
|
17
|
-
RCT_REMAP_VIEW_PROPERTY(compassViewPosition, reactCompassViewPosition, NSInteger)
|
|
18
|
-
RCT_REMAP_VIEW_PROPERTY(compassViewMargins, reactCompassViewMargins, CGPoint)
|
|
19
|
-
RCT_REMAP_VIEW_PROPERTY(compassImage, reactCompassImage, NSString)
|
|
20
|
-
|
|
21
|
-
RCT_REMAP_VIEW_PROPERTY(scaleBarEnabled, reactScaleBarEnabled, BOOL)
|
|
22
|
-
RCT_REMAP_VIEW_PROPERTY(scaleBarPosition, reactScaleBarPosition, NSDictionary)
|
|
23
|
-
|
|
24
|
-
RCT_REMAP_VIEW_PROPERTY(zoomEnabled, reactZoomEnabled, BOOL)
|
|
25
|
-
RCT_REMAP_VIEW_PROPERTY(scrollEnabled, reactScrollEnabled, BOOL)
|
|
26
|
-
RCT_REMAP_VIEW_PROPERTY(rotateEnabled, reactRotateEnabled, BOOL)
|
|
27
|
-
RCT_REMAP_VIEW_PROPERTY(pitchEnabled, reactPitchEnabled, BOOL)
|
|
28
|
-
|
|
29
|
-
RCT_REMAP_VIEW_PROPERTY(projection, reactProjection, NSString)
|
|
30
|
-
RCT_REMAP_VIEW_PROPERTY(localizeLabels, reactLocalizeLabels, NSDictionary)
|
|
31
|
-
|
|
32
|
-
RCT_REMAP_VIEW_PROPERTY(styleURL, reactStyleURL, NSString)
|
|
33
|
-
RCT_REMAP_VIEW_PROPERTY(onPress, reactOnPress, RCTBubblingEventBlock)
|
|
34
|
-
RCT_REMAP_VIEW_PROPERTY(onLongPress, reactOnLongPress, RCTBubblingEventBlock)
|
|
35
|
-
RCT_REMAP_VIEW_PROPERTY(onMapChange, reactOnMapChange, RCTBubblingEventBlock)
|
|
36
|
-
|
|
37
|
-
RCT_EXTERN_METHOD(takeSnap:(nonnull NSNumber*)reactTag
|
|
38
|
-
writeToDisk:(BOOL)writeToDisk
|
|
39
|
-
resolver:(RCTPromiseResolveBlock)resolve
|
|
40
|
-
rejecter:(RCTPromiseRejectBlock)reject)
|
|
41
|
-
|
|
42
|
-
RCT_EXTERN_METHOD(queryTerrainElevation:(nonnull NSNumber*)reactTag
|
|
43
|
-
coordinates: (nonnull NSArray<NSNumber>*)coordinates
|
|
44
|
-
resolver:(RCTPromiseResolveBlock)resolve
|
|
45
|
-
rejecter:(RCTPromiseRejectBlock)reject)
|
|
46
|
-
|
|
47
|
-
RCT_EXTERN_METHOD(setSourceVisibility:(nonnull NSNumber *)reactTag
|
|
48
|
-
visible:(BOOL)visible
|
|
49
|
-
sourceId:(nonnull NSString*)sourceId
|
|
50
|
-
sourceLayerId:(nullable NSString*)sourceLayerId
|
|
51
|
-
resolver:(RCTPromiseResolveBlock)resolve
|
|
52
|
-
rejecter:(RCTPromiseRejectBlock)reject)
|
|
53
|
-
|
|
54
|
-
RCT_EXTERN_METHOD(getCenter:(nonnull NSNumber*)reactTag
|
|
55
|
-
resolver:(RCTPromiseResolveBlock)resolve
|
|
56
|
-
rejecter:(RCTPromiseRejectBlock)reject)
|
|
57
|
-
|
|
58
|
-
RCT_EXTERN_METHOD(getCoordinateFromView:(nonnull NSNumber*)reactTag
|
|
59
|
-
atPoint:(CGPoint)point
|
|
60
|
-
resolver:(RCTPromiseResolveBlock)resolve
|
|
61
|
-
rejecter:(RCTPromiseRejectBlock)reject)
|
|
62
|
-
|
|
63
|
-
RCT_EXTERN_METHOD(getPointInView:(nonnull NSNumber*)reactTag
|
|
64
|
-
atCoordinate:(NSArray<NSNumber*>*)coordinate
|
|
65
|
-
resolver:(RCTPromiseResolveBlock)resolve
|
|
66
|
-
rejecter:(RCTPromiseRejectBlock)reject)
|
|
67
|
-
|
|
68
|
-
RCT_EXTERN_METHOD(getZoom:(nonnull NSNumber*)reactTag
|
|
69
|
-
resolver:(RCTPromiseResolveBlock)resolve
|
|
70
|
-
rejecter:(RCTPromiseRejectBlock)reject)
|
|
71
|
-
|
|
72
|
-
RCT_EXTERN_METHOD(getVisibleBounds:(nonnull NSNumber*)reactTag
|
|
73
|
-
resolver:(RCTPromiseResolveBlock)resolve
|
|
74
|
-
rejecter:(RCTPromiseRejectBlock)reject)
|
|
75
|
-
|
|
76
|
-
RCT_EXTERN_METHOD(queryRenderedFeaturesAtPoint:(nonnull NSNumber*)reactTag
|
|
77
|
-
atPoint:(NSArray<NSNumber*>*)point
|
|
78
|
-
withFilter:(NSArray*)filter
|
|
79
|
-
withLayerIDs:(NSArray<NSString*>*)layerIDs
|
|
80
|
-
resolver:(RCTPromiseResolveBlock)resolve
|
|
81
|
-
rejecter:(RCTPromiseRejectBlock)reject)
|
|
82
|
-
|
|
83
|
-
RCT_EXTERN_METHOD(queryRenderedFeaturesInRect:(nonnull NSNumber*)reactTag
|
|
84
|
-
withBBox:(NSArray<NSNumber*>*)bbox
|
|
85
|
-
withFilter:(NSArray*)filter
|
|
86
|
-
withLayerIDs:(NSArray<NSString*>*)layerIDs
|
|
87
|
-
resolver:(RCTPromiseResolveBlock)resolve
|
|
88
|
-
rejecter:(RCTPromiseRejectBlock)reject)
|
|
89
|
-
|
|
90
|
-
RCT_EXTERN_METHOD(querySourceFeatures:(nonnull NSNumber*)reactTag
|
|
91
|
-
withSourceId:(NSString*)sourceId
|
|
92
|
-
withFilter:(NSArray)filter
|
|
93
|
-
withSourceLayerIds:(NSArray<NSString*>*)sourceLayerIds
|
|
94
|
-
resolver:(RCTPromiseResolveBlock)resolve
|
|
95
|
-
rejecter:(RCTPromiseRejectBlock)reject)
|
|
96
|
-
|
|
97
|
-
RCT_EXTERN_METHOD(setHandledMapChangedEvents:(nonnull NSNumber*)reactTag
|
|
98
|
-
events:(NSArray<NSString*>*)events
|
|
99
|
-
resolver:(RCTPromiseResolveBlock)resolve
|
|
100
|
-
rejecter:(RCTPromiseRejectBlock)reject)
|
|
101
|
-
|
|
102
|
-
RCT_EXTERN_METHOD(clearData: (nonnull NSNumber*)reactTag
|
|
103
|
-
resolver:(RCTPromiseResolveBlock)resolve
|
|
104
|
-
rejecter:(RCTPromiseRejectBlock)reject
|
|
105
|
-
)
|
|
106
|
-
|
|
107
|
-
@end
|
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
import MapboxMaps
|
|
2
|
-
|
|
3
|
-
@objc(RCTMGLMapViewManager)
|
|
4
|
-
class RCTMGLMapViewManager: RCTViewManager {
|
|
5
|
-
@objc
|
|
6
|
-
override static func requiresMainQueueSetup() -> Bool {
|
|
7
|
-
return true
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
func defaultFrame() -> CGRect {
|
|
11
|
-
return UIScreen.main.bounds
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
override func view() -> UIView! {
|
|
15
|
-
let result = RCTMGLMapView(frame: self.defaultFrame(), eventDispatcher: self.bridge.eventDispatcher())
|
|
16
|
-
return result
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// MARK: helpers
|
|
21
|
-
|
|
22
|
-
extension RCTMGLMapViewManager {
|
|
23
|
-
func withMapView(
|
|
24
|
-
_ reactTag: NSNumber,
|
|
25
|
-
name: String,
|
|
26
|
-
rejecter: @escaping RCTPromiseRejectBlock,
|
|
27
|
-
fn: @escaping (_: RCTMGLMapView) -> Void) -> Void
|
|
28
|
-
{
|
|
29
|
-
self.bridge.uiManager.addUIBlock { (manager, viewRegistry) in
|
|
30
|
-
let view = viewRegistry![reactTag]
|
|
31
|
-
|
|
32
|
-
guard let view = view, let view = view as? RCTMGLMapView else {
|
|
33
|
-
RCTMGLLogError("Invalid react tag, could not find RCTMGLMapView");
|
|
34
|
-
rejecter(name, "Unknown find reactTag: \(reactTag)", nil)
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
fn(view)
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
func withMapboxMap(
|
|
43
|
-
_ reactTag: NSNumber,
|
|
44
|
-
name: String,
|
|
45
|
-
rejecter: @escaping RCTPromiseRejectBlock,
|
|
46
|
-
fn: @escaping (_: MapboxMap) -> Void) -> Void
|
|
47
|
-
{
|
|
48
|
-
withMapView(reactTag, name: name, rejecter: rejecter) { view in
|
|
49
|
-
guard let mapboxMap = view.mapboxMap else {
|
|
50
|
-
RCTMGLLogError("MapboxMap is not yet available");
|
|
51
|
-
rejecter(name, "Map not loaded yet", nil)
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
fn(mapboxMap)
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// MARK: - react methods
|
|
61
|
-
|
|
62
|
-
extension RCTMGLMapViewManager {
|
|
63
|
-
@objc
|
|
64
|
-
func takeSnap(_ reactTag: NSNumber,
|
|
65
|
-
writeToDisk: Bool,
|
|
66
|
-
resolver: @escaping RCTPromiseResolveBlock,
|
|
67
|
-
rejecter: @escaping RCTPromiseRejectBlock
|
|
68
|
-
) -> Void {
|
|
69
|
-
withMapView(reactTag, name:"takeSnap", rejecter: rejecter) { view in
|
|
70
|
-
let uri = view.takeSnap(writeToDisk: writeToDisk)
|
|
71
|
-
resolver(["uri": uri.absoluteString])
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
@objc
|
|
76
|
-
func queryTerrainElevation(_ reactTag: NSNumber,
|
|
77
|
-
coordinates: [NSNumber],
|
|
78
|
-
resolver: @escaping RCTPromiseResolveBlock,
|
|
79
|
-
rejecter: @escaping RCTPromiseRejectBlock
|
|
80
|
-
) -> Void {
|
|
81
|
-
withMapView(reactTag, name:"queryTerrainElevation", rejecter: rejecter) { view in
|
|
82
|
-
let result = view.queryTerrainElevation(coordinates: coordinates)
|
|
83
|
-
if let result = result {
|
|
84
|
-
resolver(["data": NSNumber(value: result)])
|
|
85
|
-
} else {
|
|
86
|
-
resolver(nil)
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
@objc
|
|
92
|
-
func setSourceVisibility(_ reactTag: NSNumber,
|
|
93
|
-
visible: Bool,
|
|
94
|
-
sourceId: String,
|
|
95
|
-
sourceLayerId: String?,
|
|
96
|
-
resolver: @escaping RCTPromiseResolveBlock,
|
|
97
|
-
rejecter: @escaping RCTPromiseRejectBlock) -> Void {
|
|
98
|
-
withMapView(reactTag, name:"setSourceVisibility", rejecter: rejecter) { view in
|
|
99
|
-
view.setSourceVisibility(visible, sourceId: sourceId, sourceLayerId:sourceLayerId)
|
|
100
|
-
resolver(nil)
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
@objc
|
|
105
|
-
func getCenter(_ reactTag: NSNumber,
|
|
106
|
-
resolver: @escaping RCTPromiseResolveBlock,
|
|
107
|
-
rejecter: @escaping RCTPromiseRejectBlock) -> Void {
|
|
108
|
-
withMapboxMap(reactTag, name:"getCenter", rejecter: rejecter) { mapboxMap in
|
|
109
|
-
resolver(["center": [
|
|
110
|
-
mapboxMap.cameraState.center.longitude,
|
|
111
|
-
mapboxMap.cameraState.center.latitude
|
|
112
|
-
]])
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
@objc
|
|
117
|
-
func getCoordinateFromView(
|
|
118
|
-
_ reactTag: NSNumber,
|
|
119
|
-
atPoint point: CGPoint,
|
|
120
|
-
resolver: @escaping RCTPromiseResolveBlock,
|
|
121
|
-
rejecter: @escaping RCTPromiseRejectBlock) {
|
|
122
|
-
withMapboxMap(reactTag, name:"getCoordinateFromView", rejecter: rejecter) { mapboxMap in
|
|
123
|
-
let coordinates = mapboxMap.coordinate(for: point)
|
|
124
|
-
resolver(["coordinateFromView": [coordinates.longitude, coordinates.latitude]])
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
@objc
|
|
129
|
-
func getPointInView(
|
|
130
|
-
_ reactTag: NSNumber,
|
|
131
|
-
atCoordinate coordinate: [NSNumber],
|
|
132
|
-
resolver: @escaping RCTPromiseResolveBlock,
|
|
133
|
-
rejecter: @escaping RCTPromiseRejectBlock) {
|
|
134
|
-
withMapboxMap(reactTag, name:"getPointInView", rejecter: rejecter) { mapboxMap in
|
|
135
|
-
let coordinate = CLLocationCoordinate2DMake(coordinate[1].doubleValue, coordinate[0].doubleValue)
|
|
136
|
-
let point = mapboxMap.point(for: coordinate)
|
|
137
|
-
resolver(["pointInView": [(point.x), (point.y)]])
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
@objc
|
|
142
|
-
func setHandledMapChangedEvents(
|
|
143
|
-
_ reactTag: NSNumber,
|
|
144
|
-
events: [String],
|
|
145
|
-
resolver: @escaping RCTPromiseResolveBlock,
|
|
146
|
-
rejecter: @escaping RCTPromiseRejectBlock) {
|
|
147
|
-
withMapView(reactTag, name:"setHandledMapChangedEvents", rejecter: rejecter) { mapView in
|
|
148
|
-
mapView.handleMapChangedEvents = Set(events.compactMap {
|
|
149
|
-
RCTMGLEvent.EventType(rawValue: $0)
|
|
150
|
-
})
|
|
151
|
-
resolver(nil);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
@objc
|
|
156
|
-
func getZoom(
|
|
157
|
-
_ reactTag: NSNumber,
|
|
158
|
-
resolver: @escaping RCTPromiseResolveBlock,
|
|
159
|
-
rejecter: @escaping RCTPromiseRejectBlock) {
|
|
160
|
-
withMapboxMap(reactTag, name:"getZoom", rejecter: rejecter) { mapboxMap in
|
|
161
|
-
resolver(["zoom": mapboxMap.cameraState.zoom])
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
@objc
|
|
166
|
-
func getVisibleBounds(
|
|
167
|
-
_ reactTag: NSNumber,
|
|
168
|
-
resolver: @escaping RCTPromiseResolveBlock,
|
|
169
|
-
rejecter: @escaping RCTPromiseRejectBlock) {
|
|
170
|
-
withMapView(reactTag, name:"getVisibleBounds", rejecter: rejecter) { mapView in
|
|
171
|
-
resolver(["visibleBounds": mapView.mapboxMap.coordinateBounds(for: mapView.bounds).toArray()])
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
// MARK: - queryRenderedFeatures
|
|
177
|
-
|
|
178
|
-
extension RCTMGLMapViewManager {
|
|
179
|
-
@objc
|
|
180
|
-
func queryRenderedFeaturesAtPoint(
|
|
181
|
-
_ reactTag: NSNumber,
|
|
182
|
-
atPoint point: [NSNumber],
|
|
183
|
-
withFilter filter: [Any]?,
|
|
184
|
-
withLayerIDs layerIDs: [String]?,
|
|
185
|
-
resolver: @escaping RCTPromiseResolveBlock,
|
|
186
|
-
rejecter: @escaping RCTPromiseRejectBlock) -> Void {
|
|
187
|
-
withMapboxMap(reactTag, name:"queryRenderedFeaturesAtPoint", rejecter: rejecter) { mapboxMap in
|
|
188
|
-
let point = CGPoint(x: CGFloat(point[0].floatValue), y: CGFloat(point[1].floatValue))
|
|
189
|
-
|
|
190
|
-
logged("queryRenderedFeaturesAtPoint.option", rejecter: rejecter) {
|
|
191
|
-
let options = try RenderedQueryOptions(layerIds: (layerIDs ?? []).isEmpty ? nil : layerIDs, filter: filter?.asExpression())
|
|
192
|
-
|
|
193
|
-
mapboxMap.queryRenderedFeatures(with: point, options: options) { result in
|
|
194
|
-
switch result {
|
|
195
|
-
case .success(let features):
|
|
196
|
-
resolver([
|
|
197
|
-
"data": ["type": "FeatureCollection", "features": features.compactMap { queriedFeature in
|
|
198
|
-
logged("queryRenderedFeaturesAtPoint.feature.toJSON") { try queriedFeature.feature.toJSON() }
|
|
199
|
-
}]
|
|
200
|
-
])
|
|
201
|
-
case .failure(let error):
|
|
202
|
-
rejecter("queryRenderedFeaturesAtPoint","failed to query features", error)
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
@objc
|
|
210
|
-
func queryRenderedFeaturesInRect(
|
|
211
|
-
_ reactTag: NSNumber,
|
|
212
|
-
withBBox bbox: [NSNumber],
|
|
213
|
-
withFilter filter: [Any]?,
|
|
214
|
-
withLayerIDs layerIDs: [String]?,
|
|
215
|
-
resolver: @escaping RCTPromiseResolveBlock,
|
|
216
|
-
rejecter: @escaping RCTPromiseRejectBlock) -> Void {
|
|
217
|
-
withMapView(reactTag, name:"queryRenderedFeaturesInRect", rejecter: rejecter) { mapView in
|
|
218
|
-
let top = bbox.isEmpty ? 0.0 : CGFloat(bbox[0].floatValue)
|
|
219
|
-
let right = bbox.isEmpty ? 0.0 : CGFloat(bbox[1].floatValue)
|
|
220
|
-
let bottom = bbox.isEmpty ? 0.0 : CGFloat(bbox[2].floatValue)
|
|
221
|
-
let left = bbox.isEmpty ? 0.0 : CGFloat(bbox[3].floatValue)
|
|
222
|
-
let rect = bbox.isEmpty ? CGRect(x: 0.0, y: 0.0, width: mapView.bounds.size.width, height: mapView.bounds.size.height) : CGRect(x: [left,right].min()!, y: [top,bottom].min()!, width: abs(right-left), height: abs(bottom-top))
|
|
223
|
-
logged("queryRenderedFeaturesInRect.option", rejecter: rejecter) {
|
|
224
|
-
let options = try RenderedQueryOptions(layerIds: layerIDs?.isEmpty ?? true ? nil : layerIDs, filter: filter?.asExpression())
|
|
225
|
-
mapView.mapboxMap.queryRenderedFeatures(with: rect, options: options) { result in
|
|
226
|
-
switch result {
|
|
227
|
-
case .success(let features):
|
|
228
|
-
resolver([
|
|
229
|
-
"data": ["type": "FeatureCollection", "features": features.compactMap { queriedFeature in
|
|
230
|
-
logged("queryRenderedFeaturesInRect.queriedfeature.map") { try queriedFeature.feature.toJSON() }
|
|
231
|
-
}]
|
|
232
|
-
])
|
|
233
|
-
case .failure(let error):
|
|
234
|
-
rejecter("queryRenderedFeaturesInRect","failed to query features", error)
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
@objc
|
|
242
|
-
func querySourceFeatures(
|
|
243
|
-
_ reactTag: NSNumber,
|
|
244
|
-
withSourceId sourceId: String,
|
|
245
|
-
withFilter filter: [Any]?,
|
|
246
|
-
withSourceLayerIds sourceLayerIds: [String]?,
|
|
247
|
-
resolver: @escaping RCTPromiseResolveBlock,
|
|
248
|
-
rejecter: @escaping RCTPromiseRejectBlock) -> Void {
|
|
249
|
-
withMapView(reactTag, name:"querySourceFeatures", rejecter: rejecter) { mapView in
|
|
250
|
-
let sourceLayerIds = sourceLayerIds?.isEmpty ?? true ? nil : sourceLayerIds
|
|
251
|
-
logged("querySourceFeatures.option", rejecter: rejecter) {
|
|
252
|
-
let options = SourceQueryOptions(sourceLayerIds: sourceLayerIds, filter: filter ?? Exp(arguments: []))
|
|
253
|
-
mapView.mapboxMap.querySourceFeatures(for: sourceId, options: options) { result in
|
|
254
|
-
switch result {
|
|
255
|
-
case .success(let features):
|
|
256
|
-
resolver([
|
|
257
|
-
"data": ["type": "FeatureCollection", "features": features.compactMap { queriedFeature in
|
|
258
|
-
logged("querySourceFeatures.queriedfeature.map") { try queriedFeature.feature.toJSON() }
|
|
259
|
-
}] as [String : Any]
|
|
260
|
-
])
|
|
261
|
-
case .failure(let error):
|
|
262
|
-
rejecter("querySourceFeatures", "failed to query source features: \(error.localizedDescription)", error)
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
@objc
|
|
270
|
-
func clearData(
|
|
271
|
-
_ reactTag: NSNumber,
|
|
272
|
-
resolver: @escaping RCTPromiseResolveBlock,
|
|
273
|
-
rejecter: @escaping RCTPromiseRejectBlock
|
|
274
|
-
) {
|
|
275
|
-
withMapView(reactTag, name:"clearDataPath", rejecter: rejecter) { mapView in
|
|
276
|
-
mapView.mapboxMap.clearData { error in
|
|
277
|
-
if let error = error {
|
|
278
|
-
rejecter("clearData","failed to clearData: \(error.localizedDescription)", error)
|
|
279
|
-
} else {
|
|
280
|
-
resolver(nil)
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
}
|