@maplibre/maplibre-react-native 11.0.0-alpha.13 → 11.0.0-alpha.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/android/src/main/java/org/maplibre/reactnative/MLRNPackage.kt +5 -5
- package/android/src/main/java/org/maplibre/reactnative/components/camera/MLRNCamera.kt +27 -39
- package/android/src/main/java/org/maplibre/reactnative/events/constants/EventKeys.java +0 -4
- package/android/src/main/java/org/maplibre/reactnative/events/constants/EventTypes.java +0 -1
- package/android/src/main/java/org/maplibre/reactnative/location/LocationManager.kt +165 -0
- package/android/src/main/java/org/maplibre/reactnative/location/TrackUserLocationMode.kt +0 -1
- package/android/src/main/java/org/maplibre/reactnative/location/TrackUserLocationState.kt +15 -0
- package/android/src/main/java/org/maplibre/reactnative/location/UserLocation.kt +40 -0
- package/android/src/main/java/org/maplibre/reactnative/location/engine/DefaultLocationEngineProvider.kt +18 -0
- package/android/src/main/java/org/maplibre/reactnative/location/engine/LocationEngineProvidable.kt +8 -0
- package/android/src/main/java/org/maplibre/reactnative/modules/MLRNLocationModule.kt +153 -0
- package/android/src/main/java/org/maplibre/reactnative/modules/MLRNModule.java +0 -5
- package/android/src/main/location-engine-default/org/maplibre/reactnative/location/engine/LocationEngineProvider.kt +10 -0
- package/android/src/main/location-engine-google/org/maplibre/reactnative/location/engine/GoogleLocationEngineImpl.kt +131 -0
- package/android/src/main/location-engine-google/org/maplibre/reactnative/location/engine/GoogleLocationEngineProvider.kt +28 -0
- package/android/src/main/location-engine-google/org/maplibre/reactnative/location/engine/LocationEngineProvider.kt +10 -0
- package/ios/modules/location/MLRNLocation.h +0 -1
- package/ios/modules/location/MLRNLocation.m +3 -3
- package/ios/modules/location/MLRNLocationManager.h +1 -3
- package/ios/modules/location/MLRNLocationManager.m +1 -4
- package/ios/modules/location/MLRNLocationManagerDelegate.h +0 -2
- package/ios/modules/location/MLRNLocationModule.h +4 -4
- package/ios/modules/location/MLRNLocationModule.mm +56 -0
- package/ios/modules/mlrn/MLRNModule.m +0 -5
- package/ios/utils/MLRNEventTypes.h +0 -2
- package/ios/utils/MLRNEventTypes.m +0 -2
- package/lib/commonjs/components/user-location/UserLocation.js +3 -3
- package/lib/commonjs/components/user-location/UserLocation.js.map +1 -1
- package/lib/commonjs/index.js +2 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/modules/location/LocationManager.js +46 -57
- package/lib/commonjs/modules/location/LocationManager.js.map +1 -1
- package/lib/commonjs/modules/location/NativeLocationModule.js +9 -0
- package/lib/commonjs/modules/location/NativeLocationModule.js.map +1 -0
- package/lib/commonjs/modules/location/requestAndroidLocationPermissions.js +14 -0
- package/lib/commonjs/modules/location/requestAndroidLocationPermissions.js.map +1 -0
- package/lib/module/components/user-location/UserLocation.js +3 -3
- package/lib/module/components/user-location/UserLocation.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/modules/location/LocationManager.js +45 -57
- package/lib/module/modules/location/LocationManager.js.map +1 -1
- package/lib/module/modules/location/NativeLocationModule.js +5 -0
- package/lib/module/modules/location/NativeLocationModule.js.map +1 -0
- package/lib/module/modules/location/requestAndroidLocationPermissions.js +11 -0
- package/lib/module/modules/location/requestAndroidLocationPermissions.js.map +1 -0
- package/lib/typescript/commonjs/src/components/user-location/UserLocation.d.ts +3 -3
- package/lib/typescript/commonjs/src/components/user-location/UserLocation.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +2 -2
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/location/LocationManager.d.ts +42 -22
- package/lib/typescript/commonjs/src/modules/location/LocationManager.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/location/NativeLocationModule.d.ts +24 -0
- package/lib/typescript/commonjs/src/modules/location/NativeLocationModule.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/location/requestAndroidLocationPermissions.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/location/requestAndroidLocationPermissions.d.ts.map +1 -0
- package/lib/typescript/module/src/components/user-location/UserLocation.d.ts +3 -3
- package/lib/typescript/module/src/components/user-location/UserLocation.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +2 -2
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/location/LocationManager.d.ts +42 -22
- package/lib/typescript/module/src/modules/location/LocationManager.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/location/NativeLocationModule.d.ts +24 -0
- package/lib/typescript/module/src/modules/location/NativeLocationModule.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/location/requestAndroidLocationPermissions.d.ts +5 -0
- package/lib/typescript/module/src/modules/location/requestAndroidLocationPermissions.d.ts.map +1 -0
- package/package.json +5 -3
- package/src/components/user-location/UserLocation.tsx +9 -7
- package/src/index.ts +3 -2
- package/src/modules/location/LocationManager.ts +90 -97
- package/src/modules/location/NativeLocationModule.ts +31 -0
- package/src/modules/location/requestAndroidLocationPermissions.ts +8 -0
- package/android/src/main/java/org/maplibre/reactnative/events/LocationEvent.java +0 -100
- package/android/src/main/java/org/maplibre/reactnative/events/TrackUserLocationChangeEvent.kt +0 -24
- package/android/src/main/java/org/maplibre/reactnative/location/LocationManager.java +0 -160
- package/android/src/main/java/org/maplibre/reactnative/location/TrackUserLocationState.java +0 -15
- package/android/src/main/java/org/maplibre/reactnative/location/UserLocation.java +0 -59
- package/android/src/main/java/org/maplibre/reactnative/location/engine/DefaultLocationEngineProvider.java +0 -18
- package/android/src/main/java/org/maplibre/reactnative/location/engine/LocationEngineProvidable.java +0 -9
- package/android/src/main/java/org/maplibre/reactnative/modules/MLRNLocationModule.java +0 -158
- package/android/src/main/location-engine-default/org/maplibre/reactnative/location/engine/LocationEngineProvider.java +0 -12
- package/android/src/main/location-engine-google/org/maplibre/reactnative/location/engine/GoogleLocationEngineImpl.java +0 -151
- package/android/src/main/location-engine-google/org/maplibre/reactnative/location/engine/GoogleLocationEngineProvider.java +0 -24
- package/android/src/main/location-engine-google/org/maplibre/reactnative/location/engine/LocationEngineProvider.java +0 -12
- package/ios/modules/location/MLRNLocationModule.m +0 -76
- package/lib/commonjs/requestAndroidLocationPermissions.js +0 -25
- package/lib/commonjs/requestAndroidLocationPermissions.js.map +0 -1
- package/lib/module/requestAndroidLocationPermissions.js +0 -21
- package/lib/module/requestAndroidLocationPermissions.js.map +0 -1
- package/lib/typescript/commonjs/src/requestAndroidLocationPermissions.d.ts +0 -2
- package/lib/typescript/commonjs/src/requestAndroidLocationPermissions.d.ts.map +0 -1
- package/lib/typescript/module/src/requestAndroidLocationPermissions.d.ts +0 -2
- package/lib/typescript/module/src/requestAndroidLocationPermissions.d.ts.map +0 -1
- package/src/requestAndroidLocationPermissions.ts +0 -29
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
package org.maplibre.reactnative.location.engine
|
|
2
|
+
|
|
3
|
+
import android.annotation.SuppressLint
|
|
4
|
+
import android.app.PendingIntent
|
|
5
|
+
import android.content.Context
|
|
6
|
+
import android.location.Location
|
|
7
|
+
import android.os.Looper
|
|
8
|
+
import androidx.annotation.VisibleForTesting
|
|
9
|
+
import com.google.android.gms.location.FusedLocationProviderClient
|
|
10
|
+
import com.google.android.gms.location.LocationCallback
|
|
11
|
+
import com.google.android.gms.location.LocationRequest
|
|
12
|
+
import com.google.android.gms.location.LocationResult
|
|
13
|
+
import com.google.android.gms.location.LocationServices
|
|
14
|
+
import com.google.android.gms.location.Priority
|
|
15
|
+
import com.google.android.gms.tasks.OnFailureListener
|
|
16
|
+
import com.google.android.gms.tasks.OnSuccessListener
|
|
17
|
+
import org.maplibre.android.location.engine.LocationEngineCallback
|
|
18
|
+
import org.maplibre.android.location.engine.LocationEngineImpl
|
|
19
|
+
import org.maplibre.android.location.engine.LocationEngineRequest
|
|
20
|
+
import org.maplibre.android.location.engine.LocationEngineResult
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Wraps implementation of Fused Location Provider
|
|
24
|
+
*/
|
|
25
|
+
class GoogleLocationEngineImpl : LocationEngineImpl<LocationCallback?> {
|
|
26
|
+
private val fusedLocationProviderClient: FusedLocationProviderClient
|
|
27
|
+
|
|
28
|
+
@VisibleForTesting
|
|
29
|
+
internal constructor(fusedLocationProviderClient: FusedLocationProviderClient) {
|
|
30
|
+
this.fusedLocationProviderClient = fusedLocationProviderClient
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
constructor(context: Context) {
|
|
34
|
+
this.fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(context)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
override fun createListener(callback: LocationEngineCallback<LocationEngineResult?>): LocationCallback {
|
|
38
|
+
return GoogleLocationEngineCallbackTransport(callback)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@SuppressLint("MissingPermission")
|
|
42
|
+
@Throws(SecurityException::class)
|
|
43
|
+
override fun getLastLocation(callback: LocationEngineCallback<LocationEngineResult?>) {
|
|
44
|
+
val transport = GoogleLastLocationEngineCallbackTransport(callback)
|
|
45
|
+
fusedLocationProviderClient.lastLocation.addOnSuccessListener(transport)
|
|
46
|
+
.addOnFailureListener(transport)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@SuppressLint("MissingPermission")
|
|
50
|
+
@Throws(SecurityException::class)
|
|
51
|
+
override fun requestLocationUpdates(
|
|
52
|
+
request: LocationEngineRequest, listener: LocationCallback, looper: Looper?
|
|
53
|
+
) {
|
|
54
|
+
fusedLocationProviderClient.requestLocationUpdates(
|
|
55
|
+
toGMSLocationRequest(request), listener, looper
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@SuppressLint("MissingPermission")
|
|
60
|
+
@Throws(SecurityException::class)
|
|
61
|
+
override fun requestLocationUpdates(
|
|
62
|
+
request: LocationEngineRequest, pendingIntent: PendingIntent
|
|
63
|
+
) {
|
|
64
|
+
fusedLocationProviderClient.requestLocationUpdates(
|
|
65
|
+
toGMSLocationRequest(request), pendingIntent
|
|
66
|
+
)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
override fun removeLocationUpdates(listener: LocationCallback?) {
|
|
70
|
+
if (listener != null) {
|
|
71
|
+
fusedLocationProviderClient.removeLocationUpdates(listener)
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
override fun removeLocationUpdates(pendingIntent: PendingIntent?) {
|
|
76
|
+
if (pendingIntent != null) {
|
|
77
|
+
fusedLocationProviderClient.removeLocationUpdates(pendingIntent)
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
private class GoogleLocationEngineCallbackTransport(private val callback: LocationEngineCallback<LocationEngineResult?>) :
|
|
82
|
+
LocationCallback() {
|
|
83
|
+
override fun onLocationResult(locationResult: LocationResult) {
|
|
84
|
+
super.onLocationResult(locationResult)
|
|
85
|
+
val locations = locationResult.locations
|
|
86
|
+
if (!locations.isEmpty()) {
|
|
87
|
+
callback.onSuccess(LocationEngineResult.create(locations))
|
|
88
|
+
} else {
|
|
89
|
+
callback.onFailure(Exception("Unavailable location"))
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
@VisibleForTesting
|
|
95
|
+
internal class GoogleLastLocationEngineCallbackTransport
|
|
96
|
+
(private val callback: LocationEngineCallback<LocationEngineResult?>) :
|
|
97
|
+
OnSuccessListener<Location?>, OnFailureListener {
|
|
98
|
+
override fun onSuccess(location: Location?) {
|
|
99
|
+
callback.onSuccess(
|
|
100
|
+
if (location != null) LocationEngineResult.create(location) else LocationEngineResult.create(
|
|
101
|
+
mutableListOf<Location?>()
|
|
102
|
+
)
|
|
103
|
+
)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
override fun onFailure(e: Exception) {
|
|
107
|
+
callback.onFailure(e)
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
companion object {
|
|
112
|
+
private fun toGMSLocationRequest(request: LocationEngineRequest): LocationRequest {
|
|
113
|
+
val builder = LocationRequest.Builder(request.interval)
|
|
114
|
+
builder.setMinUpdateIntervalMillis(request.fastestInterval)
|
|
115
|
+
builder.setMinUpdateDistanceMeters(request.displacement)
|
|
116
|
+
builder.setMaxUpdateDelayMillis(request.maxWaitTime)
|
|
117
|
+
builder.setPriority(toGMSLocationPriority(request.priority))
|
|
118
|
+
return builder.build()
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
private fun toGMSLocationPriority(enginePriority: Int): Int {
|
|
122
|
+
return when (enginePriority) {
|
|
123
|
+
LocationEngineRequest.PRIORITY_HIGH_ACCURACY -> Priority.PRIORITY_HIGH_ACCURACY
|
|
124
|
+
LocationEngineRequest.PRIORITY_BALANCED_POWER_ACCURACY -> Priority.PRIORITY_BALANCED_POWER_ACCURACY
|
|
125
|
+
LocationEngineRequest.PRIORITY_LOW_POWER -> Priority.PRIORITY_LOW_POWER
|
|
126
|
+
LocationEngineRequest.PRIORITY_NO_POWER -> Priority.PRIORITY_PASSIVE
|
|
127
|
+
else -> Priority.PRIORITY_PASSIVE
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
package org.maplibre.reactnative.location.engine
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.util.Log
|
|
5
|
+
import com.google.android.gms.common.ConnectionResult
|
|
6
|
+
import com.google.android.gms.common.GoogleApiAvailability
|
|
7
|
+
import com.google.android.gms.location.LocationCallback
|
|
8
|
+
import org.maplibre.android.location.engine.LocationEngine
|
|
9
|
+
import org.maplibre.android.location.engine.LocationEngineProxy
|
|
10
|
+
|
|
11
|
+
class GoogleLocationEngineProvider : LocationEngineProvidable {
|
|
12
|
+
override fun getLocationEngine(context: Context): LocationEngine {
|
|
13
|
+
if (GoogleApiAvailability.getInstance()
|
|
14
|
+
.isGooglePlayServicesAvailable(context) == ConnectionResult.SUCCESS
|
|
15
|
+
) {
|
|
16
|
+
val locationEngine: LocationEngine =
|
|
17
|
+
LocationEngineProxy<LocationCallback?>(GoogleLocationEngineImpl(context.applicationContext))
|
|
18
|
+
Log.d(LOG_TAG, "GoogleLocationEngine will be used.")
|
|
19
|
+
return locationEngine
|
|
20
|
+
} else {
|
|
21
|
+
return DefaultLocationEngineProvider().getLocationEngine(context)
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
companion object {
|
|
26
|
+
private const val LOG_TAG = "GoogleLocationEngineProvider"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
package org.maplibre.reactnative.location.engine
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import org.maplibre.android.location.engine.LocationEngine
|
|
5
|
+
|
|
6
|
+
class LocationEngineProvider : LocationEngineProvidable {
|
|
7
|
+
override fun getLocationEngine(context: Context): LocationEngine {
|
|
8
|
+
return GoogleLocationEngineProvider().getLocationEngine(context)
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
NSMutableDictionary<NSString *, NSNumber *> *coords = [[NSMutableDictionary alloc] init];
|
|
9
9
|
coords[@"longitude"] = @(_location.coordinate.longitude);
|
|
10
10
|
coords[@"latitude"] = @(_location.coordinate.latitude);
|
|
11
|
-
coords[@"altitude"] = @(_location.altitude);
|
|
12
11
|
coords[@"accuracy"] = @(_location.horizontalAccuracy);
|
|
13
|
-
coords[@"
|
|
14
|
-
coords[@"
|
|
12
|
+
coords[@"altitude"] = @(_location.altitude);
|
|
13
|
+
coords[@"altitudeAccuracy"] = @(_location.verticalAccuracy);
|
|
14
|
+
coords[@"heading"] = @(_location.course);
|
|
15
15
|
coords[@"speed"] = @(_location.speed);
|
|
16
16
|
|
|
17
17
|
json[@"coords"] = coords;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
#import <Foundation/Foundation.h>
|
|
2
|
-
|
|
3
1
|
#import "MLRNLocation.h"
|
|
4
2
|
#import "MLRNLocationManagerDelegate.h"
|
|
5
3
|
|
|
@@ -11,7 +9,7 @@ typedef void (^MLRNLocationBlock)(MLRNLocation *location);
|
|
|
11
9
|
|
|
12
10
|
+ (id)sharedInstance;
|
|
13
11
|
|
|
14
|
-
- (void)start
|
|
12
|
+
- (void)start;
|
|
15
13
|
- (void)stop;
|
|
16
14
|
- (void)setMinDisplacement:(CLLocationDistance)minDisplacement;
|
|
17
15
|
- (BOOL)isEnabled;
|
|
@@ -36,9 +36,7 @@
|
|
|
36
36
|
[self stop];
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
- (void)start
|
|
40
|
-
displacement = minDisplacement;
|
|
41
|
-
|
|
39
|
+
- (void)start {
|
|
42
40
|
if ([self isEnabled]) {
|
|
43
41
|
return;
|
|
44
42
|
}
|
|
@@ -47,7 +45,6 @@
|
|
|
47
45
|
[self->locationManager requestWhenInUseAuthorization];
|
|
48
46
|
[self->locationManager startUpdatingLocation];
|
|
49
47
|
[self->locationManager startUpdatingHeading];
|
|
50
|
-
[self->locationManager setDistanceFilter:(minDisplacement)];
|
|
51
48
|
self->isListening = YES;
|
|
52
49
|
});
|
|
53
50
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
#import <
|
|
2
|
-
#import <React/RCTBridgeModule.h>
|
|
3
|
-
#import <React/RCTEventEmitter.h>
|
|
1
|
+
#import <MapLibreReactNativeSpec/MapLibreReactNativeSpec.h>
|
|
4
2
|
|
|
5
|
-
|
|
3
|
+
#import "MLRNLocationManagerDelegate.h"
|
|
6
4
|
|
|
5
|
+
@interface MLRNLocationModule
|
|
6
|
+
: NativeLocationModuleSpecBase <NativeLocationModuleSpec, MLRNLocationManagerDelegate>
|
|
7
7
|
@end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#import "MLRNLocationModule.h"
|
|
2
|
+
#import "MLRNEventTypes.h"
|
|
3
|
+
#import "MLRNLocation.h"
|
|
4
|
+
#import "MLRNLocationManager.h"
|
|
5
|
+
#import "MLRNLocationManagerDelegate.h"
|
|
6
|
+
|
|
7
|
+
@implementation MLRNLocationModule {
|
|
8
|
+
MLRNLocationManager *locationManager;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
+ (NSString *)moduleName {
|
|
12
|
+
return @"MLRNLocationModule";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
16
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params {
|
|
17
|
+
return std::make_shared<facebook::react::NativeLocationModuleSpecJSI>(params);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
- (instancetype)init {
|
|
21
|
+
if (self = [super init]) {
|
|
22
|
+
locationManager = [[MLRNLocationManager alloc] init];
|
|
23
|
+
locationManager.delegate = self;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return self;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
- (void)start {
|
|
30
|
+
[locationManager start];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
- (void)pause {
|
|
34
|
+
[locationManager stop];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
- (void)stop {
|
|
38
|
+
[locationManager stop];
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
- (void)setMinDisplacement:(CLLocationDistance)minDisplacement {
|
|
42
|
+
[locationManager setMinDisplacement:minDisplacement];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
- (void)getCurrentPosition:(nonnull RCTPromiseResolveBlock)resolve
|
|
46
|
+
reject:(nonnull RCTPromiseRejectBlock)reject {
|
|
47
|
+
MLRNLocation *lastKnownLocation = [locationManager getLastKnownLocation];
|
|
48
|
+
resolve(lastKnownLocation);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
- (void)locationManager:(MLRNLocationManager *)locationManager
|
|
52
|
+
didUpdateLocation:(MLRNLocation *)location {
|
|
53
|
+
[self emitOnUpdate:[location toJSON]];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@end
|
|
@@ -23,10 +23,6 @@ RCT_EXPORT_MODULE();
|
|
|
23
23
|
[eventTypes setObject:RCT_MLRN_PRESS forKey:@"Press"];
|
|
24
24
|
[eventTypes setObject:RCT_MLRN_LONG_PRESS forKey:@"LongPress"];
|
|
25
25
|
|
|
26
|
-
// location module events
|
|
27
|
-
NSMutableDictionary *locationModuleEvents = [[NSMutableDictionary alloc] init];
|
|
28
|
-
[locationModuleEvents setObject:RCT_MLRN_USER_LOCATION_UPDATE forKey:@"Update"];
|
|
29
|
-
|
|
30
26
|
// style sources
|
|
31
27
|
NSMutableDictionary *styleSourceConsts = [[NSMutableDictionary alloc] init];
|
|
32
28
|
[styleSourceConsts setObject:DEFAULT_SOURCE_ID forKey:@"DefaultSourceID"];
|
|
@@ -47,7 +43,6 @@ RCT_EXPORT_MODULE();
|
|
|
47
43
|
@"StyleSource" : styleSourceConsts,
|
|
48
44
|
@"OfflineCallbackName" : offlineModuleCallbackNames,
|
|
49
45
|
@"OfflinePackDownloadState" : offlinePackDownloadState,
|
|
50
|
-
@"LocationCallbackName" : locationModuleEvents
|
|
51
46
|
};
|
|
52
47
|
}
|
|
53
48
|
|
|
@@ -14,8 +14,6 @@ extern NSString *const RCT_MLRN_OFFLINE_TILE_LIMIT;
|
|
|
14
14
|
extern NSString *const RCT_MLRN_SHAPE_SOURCE_LAYER_PRESS;
|
|
15
15
|
extern NSString *const RCT_MLRN_VECTOR_SOURCE_LAYER_PRESS;
|
|
16
16
|
|
|
17
|
-
extern NSString *const RCT_MLRN_USER_LOCATION_UPDATE;
|
|
18
|
-
|
|
19
17
|
extern NSString *const RCT_MLRN_MISSING_IMAGE;
|
|
20
18
|
|
|
21
19
|
@end
|
|
@@ -62,7 +62,7 @@ const UserLocation = exports.UserLocation = /*#__PURE__*/(0, _react.memo)(/*#__P
|
|
|
62
62
|
if (renderMode === UserLocationRenderMode.Native) {
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
65
|
-
_LocationManager.LocationManager.setMinDisplacement(minDisplacement
|
|
65
|
+
_LocationManager.LocationManager.setMinDisplacement(minDisplacement);
|
|
66
66
|
});
|
|
67
67
|
return () => {
|
|
68
68
|
_isMounted.current = false;
|
|
@@ -73,7 +73,7 @@ const UserLocation = exports.UserLocation = /*#__PURE__*/(0, _react.memo)(/*#__P
|
|
|
73
73
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
74
74
|
}, []);
|
|
75
75
|
(0, _react.useEffect)(() => {
|
|
76
|
-
_LocationManager.LocationManager.setMinDisplacement(minDisplacement
|
|
76
|
+
_LocationManager.LocationManager.setMinDisplacement(minDisplacement);
|
|
77
77
|
}, [minDisplacement]);
|
|
78
78
|
(0, _react.useEffect)(() => {
|
|
79
79
|
if (!_isMounted.current) {
|
|
@@ -90,7 +90,7 @@ const UserLocation = exports.UserLocation = /*#__PURE__*/(0, _react.memo)(/*#__P
|
|
|
90
90
|
locationManagerRunning.current = running;
|
|
91
91
|
if (running) {
|
|
92
92
|
_LocationManager.LocationManager.addListener(_onLocationUpdate);
|
|
93
|
-
const location = await _LocationManager.LocationManager.
|
|
93
|
+
const location = await _LocationManager.LocationManager.getCurrentPosition();
|
|
94
94
|
_onLocationUpdate(location);
|
|
95
95
|
} else {
|
|
96
96
|
_LocationManager.LocationManager.removeListener(_onLocationUpdate);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_NativeUserLocation","_UserLocationPuck","_LocationManager","_Annotation","_jsxRuntime","USER_LOCATION_SOURCE_ID","UserLocationRenderMode","exports","UserLocation","memo","forwardRef","animated","visible","showsUserHeadingIndicator","minDisplacement","renderMode","androidRenderMode","androidPreferredFramesPerSecond","children","onUpdate","onPress","ref","_isMounted","useRef","locationManagerRunning","userLocationState","setUserLocationState","useState","shouldShowUserLocation","useImperativeHandle","setLocationManager","needsLocationManagerRunning","_onLocationUpdate","useEffect","current","running","then","Native","LocationManager","setMinDisplacement","addListener","location","
|
|
1
|
+
{"version":3,"names":["_react","require","_NativeUserLocation","_UserLocationPuck","_LocationManager","_Annotation","_jsxRuntime","USER_LOCATION_SOURCE_ID","UserLocationRenderMode","exports","UserLocation","memo","forwardRef","animated","visible","showsUserHeadingIndicator","minDisplacement","renderMode","androidRenderMode","androidPreferredFramesPerSecond","children","onUpdate","onPress","ref","_isMounted","useRef","locationManagerRunning","userLocationState","setUserLocationState","useState","shouldShowUserLocation","useImperativeHandle","setLocationManager","needsLocationManagerRunning","_onLocationUpdate","useEffect","current","running","then","Native","LocationManager","setMinDisplacement","addListener","location","getCurrentPosition","removeListener","Normal","coordinates","heading","coords","longitude","latitude","props","iosShowsUserHeadingIndicator","jsx","NativeUserLocation","Annotation","id","style","iconRotate","UserLocationPuck","sourceID","undefined"],"sourceRoot":"../../../../src","sources":["components/user-location/UserLocation.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -9,7 +9,6 @@ var _exportNames = {
|
|
|
9
9
|
PointAnnotation: true,
|
|
10
10
|
Annotation: true,
|
|
11
11
|
Callout: true,
|
|
12
|
-
requestAndroidLocationPermissions: true,
|
|
13
12
|
UserLocation: true,
|
|
14
13
|
UserLocationRenderMode: true,
|
|
15
14
|
VectorSource: true,
|
|
@@ -27,6 +26,7 @@ var _exportNames = {
|
|
|
27
26
|
BackgroundLayer: true,
|
|
28
27
|
MarkerView: true,
|
|
29
28
|
LocationManager: true,
|
|
29
|
+
requestAndroidLocationPermissions: true,
|
|
30
30
|
OfflineManager: true,
|
|
31
31
|
OfflinePack: true,
|
|
32
32
|
OfflineCreatePackOptions: true,
|
|
@@ -225,7 +225,6 @@ var _MapView = require("./components/map-view/MapView.js");
|
|
|
225
225
|
var _PointAnnotation = require("./components/annotations/PointAnnotation.js");
|
|
226
226
|
var _Annotation = require("./components/annotations/Annotation.js");
|
|
227
227
|
var _Callout = require("./components/annotations/Callout.js");
|
|
228
|
-
var _requestAndroidLocationPermissions = require("./requestAndroidLocationPermissions.js");
|
|
229
228
|
var _UserLocation = require("./components/user-location/UserLocation.js");
|
|
230
229
|
var _VectorSource = require("./components/sources/VectorSource.js");
|
|
231
230
|
var _ShapeSource = require("./components/sources/ShapeSource.js");
|
|
@@ -242,6 +241,7 @@ var _RasterLayer = require("./components/layers/RasterLayer.js");
|
|
|
242
241
|
var _BackgroundLayer = require("./components/layers/BackgroundLayer.js");
|
|
243
242
|
var _MarkerView = require("./components/annotations/MarkerView.js");
|
|
244
243
|
var _LocationManager = require("./modules/location/LocationManager.js");
|
|
244
|
+
var _requestAndroidLocationPermissions = require("./modules/location/requestAndroidLocationPermissions.js");
|
|
245
245
|
var _OfflineManager = require("./modules/offline/OfflineManager.js");
|
|
246
246
|
var _OfflinePack = require("./modules/offline/OfflinePack.js");
|
|
247
247
|
var _OfflineCreatePackOptions = require("./modules/offline/OfflineCreatePackOptions.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_MLRNModule","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Camera","_MapView","_PointAnnotation","_Annotation","_Callout","
|
|
1
|
+
{"version":3,"names":["_MLRNModule","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Camera","_MapView","_PointAnnotation","_Annotation","_Callout","_UserLocation","_VectorSource","_ShapeSource","_RasterSource","_ImageSource","_Images","_FillLayer","_FillExtrusionLayer","_HeatmapLayer","_LineLayer","_CircleLayer","_SymbolLayer","_RasterLayer","_BackgroundLayer","_MarkerView","_LocationManager","_requestAndroidLocationPermissions","_OfflineManager","_OfflinePack","_OfflineCreatePackOptions","_SnapshotManager","_Animated","_Logger"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,WAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,WAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,WAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAS,OAAA,GAAAb,OAAA;AAiBA,IAAAc,QAAA,GAAAd,OAAA;AAOA,IAAAe,gBAAA,GAAAf,OAAA;AAEA,IAAAgB,WAAA,GAAAhB,OAAA;AACA,IAAAiB,QAAA,GAAAjB,OAAA;AACA,IAAAkB,aAAA,GAAAlB,OAAA;AAKA,IAAAmB,aAAA,GAAAnB,OAAA;AACA,IAAAoB,YAAA,GAAApB,OAAA;AAEA,IAAAqB,aAAA,GAAArB,OAAA;AACA,IAAAsB,YAAA,GAAAtB,OAAA;AACA,IAAAuB,OAAA,GAAAvB,OAAA;AACA,IAAAwB,UAAA,GAAAxB,OAAA;AACA,IAAAyB,mBAAA,GAAAzB,OAAA;AACA,IAAA0B,aAAA,GAAA1B,OAAA;AACA,IAAA2B,UAAA,GAAA3B,OAAA;AACA,IAAA4B,YAAA,GAAA5B,OAAA;AACA,IAAA6B,YAAA,GAAA7B,OAAA;AACA,IAAA8B,YAAA,GAAA9B,OAAA;AACA,IAAA+B,gBAAA,GAAA/B,OAAA;AACA,IAAAgC,WAAA,GAAAhC,OAAA;AAEA,IAAAiC,gBAAA,GAAAjC,OAAA;AAIA,IAAAkC,kCAAA,GAAAlC,OAAA;AAEA,IAAAmC,eAAA,GAAAnC,OAAA;AAGA,IAAAoC,YAAA,GAAApC,OAAA;AACA,IAAAqC,yBAAA,GAAArC,OAAA;AACA,IAAAsC,gBAAA,GAAAtC,OAAA;AAoBA,IAAAuC,SAAA,GAAAvC,OAAA;AACA,IAAAwC,OAAA,GAAAxC,OAAA","ignoreList":[]}
|
|
@@ -3,88 +3,77 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.LocationManager = void 0;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
/*
|
|
13
|
-
* Location sent by LocationManager
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
/*
|
|
17
|
-
* Coordinates sent by LocationManager
|
|
18
|
-
*/
|
|
19
|
-
|
|
8
|
+
var _NativeLocationModule = _interopRequireDefault(require("./NativeLocationModule.js"));
|
|
9
|
+
var _index = require("../../utils/index.js");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
11
|
class LocationManager {
|
|
12
|
+
listeners = [];
|
|
13
|
+
currentPosition = undefined;
|
|
14
|
+
isListening = false;
|
|
15
|
+
subscription = undefined;
|
|
21
16
|
constructor() {
|
|
22
|
-
this.
|
|
23
|
-
this._lastKnownLocation = null;
|
|
24
|
-
this._isListening = false;
|
|
25
|
-
this.onUpdate = this.onUpdate.bind(this);
|
|
26
|
-
this.subscription = null;
|
|
17
|
+
this.handleUpdate = this.handleUpdate.bind(this);
|
|
27
18
|
}
|
|
28
|
-
async
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
// let's silently catch it and simply log out
|
|
35
|
-
// instead of throwing an exception
|
|
36
|
-
try {
|
|
37
|
-
lastKnownLocation = await MLRNLocationModule.getLastKnownLocation();
|
|
38
|
-
} catch (error) {
|
|
39
|
-
console.log("LocationManager Error: ", error);
|
|
40
|
-
}
|
|
41
|
-
if (!this._lastKnownLocation && lastKnownLocation) {
|
|
42
|
-
this._lastKnownLocation = lastKnownLocation;
|
|
43
|
-
}
|
|
19
|
+
async getCurrentPosition() {
|
|
20
|
+
let currentPosition;
|
|
21
|
+
try {
|
|
22
|
+
currentPosition = await _NativeLocationModule.default.getCurrentPosition();
|
|
23
|
+
} catch (error) {
|
|
24
|
+
console.log("LocationManager [error]: ", error);
|
|
44
25
|
}
|
|
45
|
-
|
|
26
|
+
this.currentPosition = currentPosition;
|
|
27
|
+
return this.currentPosition;
|
|
46
28
|
}
|
|
47
|
-
addListener(
|
|
48
|
-
if (!this.
|
|
29
|
+
addListener(newListener) {
|
|
30
|
+
if (!this.isListening) {
|
|
49
31
|
this.start();
|
|
50
32
|
}
|
|
51
|
-
if (!this.
|
|
52
|
-
this.
|
|
53
|
-
if (this.
|
|
54
|
-
|
|
33
|
+
if (!this.listeners.includes(newListener)) {
|
|
34
|
+
this.listeners.push(newListener);
|
|
35
|
+
if (this.currentPosition) {
|
|
36
|
+
newListener(this.currentPosition);
|
|
55
37
|
}
|
|
56
38
|
}
|
|
57
39
|
}
|
|
58
|
-
removeListener(
|
|
59
|
-
this.
|
|
60
|
-
if (this.
|
|
40
|
+
removeListener(oldListener) {
|
|
41
|
+
this.listeners = this.listeners.filter(listener => listener !== oldListener);
|
|
42
|
+
if (this.listeners.length === 0) {
|
|
61
43
|
this.stop();
|
|
62
44
|
}
|
|
63
45
|
}
|
|
64
46
|
removeAllListeners() {
|
|
65
|
-
this.
|
|
47
|
+
this.listeners = [];
|
|
66
48
|
this.stop();
|
|
67
49
|
}
|
|
68
|
-
start(
|
|
69
|
-
if (!this.
|
|
70
|
-
|
|
71
|
-
this.subscription =
|
|
72
|
-
this.
|
|
50
|
+
start() {
|
|
51
|
+
if (!this.isListening) {
|
|
52
|
+
_NativeLocationModule.default.start();
|
|
53
|
+
this.subscription = _NativeLocationModule.default.onUpdate(this.handleUpdate);
|
|
54
|
+
this.isListening = true;
|
|
73
55
|
}
|
|
74
56
|
}
|
|
75
57
|
stop() {
|
|
76
|
-
|
|
77
|
-
if (this.
|
|
58
|
+
_NativeLocationModule.default.stop();
|
|
59
|
+
if (this.isListening) {
|
|
78
60
|
this.subscription?.remove();
|
|
79
61
|
}
|
|
80
|
-
this.
|
|
62
|
+
this.isListening = false;
|
|
81
63
|
}
|
|
82
64
|
setMinDisplacement(minDisplacement) {
|
|
83
|
-
|
|
65
|
+
_NativeLocationModule.default.setMinDisplacement(minDisplacement);
|
|
84
66
|
}
|
|
85
|
-
|
|
86
|
-
this.
|
|
87
|
-
this.
|
|
67
|
+
handleUpdate(location) {
|
|
68
|
+
this.currentPosition = location;
|
|
69
|
+
this.listeners.forEach(listener => listener(location));
|
|
70
|
+
}
|
|
71
|
+
async requestAndroidPermissions() {
|
|
72
|
+
if ((0, _index.isAndroid)()) {
|
|
73
|
+
const res = await _reactNative.PermissionsAndroid.requestMultiple([_reactNative.PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION, _reactNative.PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION]);
|
|
74
|
+
return Object.values(res).every(permission => permission === _reactNative.PermissionsAndroid.RESULTS.GRANTED);
|
|
75
|
+
}
|
|
76
|
+
throw new Error("This method should only be called on Android");
|
|
88
77
|
}
|
|
89
78
|
}
|
|
90
79
|
const locationManager = exports.LocationManager = new LocationManager();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_NativeLocationModule","_interopRequireDefault","_index","e","__esModule","default","LocationManager","listeners","currentPosition","undefined","isListening","subscription","constructor","handleUpdate","bind","getCurrentPosition","NativeLocationModule","error","console","log","addListener","newListener","start","includes","push","removeListener","oldListener","filter","listener","length","stop","removeAllListeners","onUpdate","remove","setMinDisplacement","minDisplacement","location","forEach","requestAndroidPermissions","isAndroid","res","PermissionsAndroid","requestMultiple","PERMISSIONS","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","Object","values","every","permission","RESULTS","GRANTED","Error","locationManager","exports"],"sourceRoot":"../../../../src","sources":["modules/location/LocationManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
var _default = exports.default = _reactNative.TurboModuleRegistry.getEnforcing("MLRNLocationModule");
|
|
9
|
+
//# sourceMappingURL=NativeLocationModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../../src","sources":["modules/location/NativeLocationModule.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GA6BpCC,gCAAmB,CAACC,YAAY,CAAO,oBAAoB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.requestAndroidLocationPermissions = requestAndroidLocationPermissions;
|
|
7
|
+
var _LocationManager = require("./LocationManager.js");
|
|
8
|
+
/**
|
|
9
|
+
* @deprected Use `LocationManager.requestAndroidPermissions` instead
|
|
10
|
+
*/
|
|
11
|
+
async function requestAndroidLocationPermissions() {
|
|
12
|
+
return _LocationManager.LocationManager.requestAndroidPermissions();
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=requestAndroidLocationPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_LocationManager","require","requestAndroidLocationPermissions","LocationManager","requestAndroidPermissions"],"sourceRoot":"../../../../src","sources":["modules/location/requestAndroidLocationPermissions.ts"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACO,eAAeC,iCAAiCA,CAAA,EAAqB;EAC1E,OAAOC,gCAAe,CAACC,yBAAyB,CAAC,CAAC;AACpD","ignoreList":[]}
|