react-native-maps 2.0.0-beta.1 → 2.0.0-beta.10
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/README.md +34 -11
- package/android/build.gradle +41 -10
- package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapCalloutManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapCircleManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapGradientPolyline.java +4 -4
- package/android/src/main/java/com/rnmaps/maps/MapGradientPolylineManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapHeatmapManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapLiteManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapLocalTile.java +4 -4
- package/android/src/main/java/com/rnmaps/maps/MapLocalTileManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapManager.java +6 -63
- package/android/src/main/java/com/rnmaps/maps/MapMarker.java +2 -2
- package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +10 -27
- package/android/src/main/java/com/rnmaps/maps/MapOverlayManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapPolygonManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapPolylineManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapTileProvider.java +7 -5
- package/android/src/main/java/com/rnmaps/maps/MapUrlTileManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapView.java +72 -150
- package/android/src/main/java/com/rnmaps/maps/MapViewModule.java +598 -0
- package/android/src/main/java/com/rnmaps/maps/MapWMSTile.java +6 -6
- package/android/src/main/java/com/rnmaps/maps/MapWMSTileManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapsPackage.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/SizeReportingShadowNode.java +1 -1
- package/ios/{AirGoogleMaps → GoogleMaps}/RCTConvert+GMSMapViewType.m +8 -0
- package/ios/{AirGoogleMaps/AIRDummyView.h → GoogleMaps/RNMDummyView.h} +3 -3
- package/ios/{AirGoogleMaps/AIRDummyView.m → GoogleMaps/RNMDummyView.m} +4 -4
- package/ios/{AirGoogleMaps/AIRGMSMarker.h → GoogleMaps/RNMGMSMarker.h} +6 -6
- package/ios/{AirGoogleMaps/AIRGMSMarker.m → GoogleMaps/RNMGMSMarker.m} +4 -4
- package/ios/{AirGoogleMaps/AIRGMSPolygon.h → GoogleMaps/RNMGMSPolygon.h} +4 -4
- package/ios/{AirGoogleMaps/AIRGMSPolygon.m → GoogleMaps/RNMGMSPolygon.m} +4 -4
- package/ios/{AirGoogleMaps/AIRGMSPolyline.h → GoogleMaps/RNMGMSPolyline.h} +4 -4
- package/ios/{AirGoogleMaps/AIRGMSPolyline.m → GoogleMaps/RNMGMSPolyline.m} +4 -4
- package/ios/{AirGoogleMaps/AIRGoogleMap.h → GoogleMaps/RNMGoogleMap.h} +5 -5
- package/ios/{AirGoogleMaps/AIRGoogleMap.m → GoogleMaps/RNMGoogleMap.m} +81 -77
- package/ios/{AirGoogleMaps/AIRGoogleMapCallout.h → GoogleMaps/RNMGoogleMapCallout.h} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapCallout.m → GoogleMaps/RNMGoogleMapCallout.m} +4 -4
- package/ios/{AirGoogleMaps/AIRGoogleMapCalloutManager.h → GoogleMaps/RNMGoogleMapCalloutManager.h} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapCalloutManager.m → GoogleMaps/RNMGoogleMapCalloutManager.m} +7 -7
- package/ios/{AirGoogleMaps/AIRGoogleMapCalloutSubview.h → GoogleMaps/RNMGoogleMapCalloutSubview.h} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapCalloutSubview.m → GoogleMaps/RNMGoogleMapCalloutSubview.m} +4 -4
- package/ios/{AirGoogleMaps/AIRGoogleMapCalloutSubviewManager.h → GoogleMaps/RNMGoogleMapCalloutSubviewManager.h} +3 -3
- package/ios/GoogleMaps/RNMGoogleMapCalloutSubviewManager.m +28 -0
- package/ios/{AirGoogleMaps/AIRGoogleMapCircle.h → GoogleMaps/RNMGoogleMapCircle.h} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapCircle.m → GoogleMaps/RNMGoogleMapCircle.m} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapCircleManager.h → GoogleMaps/RNMGoogleMapCircleManager.h} +2 -2
- package/ios/{AirGoogleMaps/AIRGoogleMapCircleManager.m → GoogleMaps/RNMGoogleMapCircleManager.m} +7 -7
- package/ios/{AirGoogleMaps/AIRGoogleMapHeatmap.h → GoogleMaps/RNMGoogleMapHeatmap.h} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapHeatmap.m → GoogleMaps/RNMGoogleMapHeatmap.m} +4 -4
- package/ios/GoogleMaps/RNMGoogleMapHeatmapManager.h +11 -0
- package/ios/{AirGoogleMaps/AIRGoogleMapHeatmapManager.m → GoogleMaps/RNMGoogleMapHeatmapManager.m} +9 -9
- package/ios/{AirGoogleMaps/AIRGoogleMapManager.h → GoogleMaps/RNMGoogleMapManager.h} +3 -3
- package/ios/GoogleMaps/RNMGoogleMapManager.m +256 -0
- package/ios/{AirGoogleMaps/AIRGoogleMapMarker.h → GoogleMaps/RNMGoogleMapMarker.h} +15 -15
- package/ios/{AirGoogleMaps/AIRGoogleMapMarker.m → GoogleMaps/RNMGoogleMapMarker.m} +23 -23
- package/ios/{AirGoogleMaps/AIRGoogleMapMarkerManager.h → GoogleMaps/RNMGoogleMapMarkerManager.h} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapMarkerManager.m → GoogleMaps/RNMGoogleMapMarkerManager.m} +20 -20
- package/ios/{AirGoogleMaps/AIRGoogleMapOverlay.h → GoogleMaps/RNMGoogleMapOverlay.h} +4 -4
- package/ios/{AirGoogleMaps/AIRGoogleMapOverlay.m → GoogleMaps/RNMGoogleMapOverlay.m} +4 -4
- package/ios/{AirGoogleMaps/AIRGoogleMapOverlayManager.h → GoogleMaps/RNMGoogleMapOverlayManager.h} +2 -2
- package/ios/{AirGoogleMaps/AIRGoogleMapOverlayManager.m → GoogleMaps/RNMGoogleMapOverlayManager.m} +6 -6
- package/ios/{AirGoogleMaps/AIRGoogleMapPolygon.h → GoogleMaps/RNMGoogleMapPolygon.h} +7 -7
- package/ios/{AirGoogleMaps/AIRGoogleMapPolygon.m → GoogleMaps/RNMGoogleMapPolygon.m} +7 -7
- package/ios/{AirGoogleMaps/AIRGoogleMapPolylineManager.h → GoogleMaps/RNMGoogleMapPolygonManager.h} +2 -2
- package/ios/{AirGoogleMaps/AIRGoogleMapPolygonManager.m → GoogleMaps/RNMGoogleMapPolygonManager.m} +10 -10
- package/ios/{AirGoogleMaps/AIRGoogleMapPolyline.h → GoogleMaps/RNMGoogleMapPolyline.h} +7 -7
- package/ios/{AirGoogleMaps/AIRGoogleMapPolyline.m → GoogleMaps/RNMGoogleMapPolyline.m} +9 -9
- package/ios/{AirGoogleMaps/AIRGoogleMapPolygonManager.h → GoogleMaps/RNMGoogleMapPolylineManager.h} +2 -2
- package/ios/{AirGoogleMaps/AIRGoogleMapPolylineManager.m → GoogleMaps/RNMGoogleMapPolylineManager.m} +9 -9
- package/ios/{AirGoogleMaps/AIRGoogleMapUrlTile.h → GoogleMaps/RNMGoogleMapUrlTile.h} +2 -2
- package/ios/{AirGoogleMaps/AIRGoogleMapUrlTile.m → GoogleMaps/RNMGoogleMapUrlTile.m} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapUrlTileManager.h → GoogleMaps/RNMGoogleMapUrlTileManager.h} +2 -2
- package/ios/{AirGoogleMaps/AIRGoogleMapURLTileManager.m → GoogleMaps/RNMGoogleMapUrlTileManager.m} +7 -7
- package/ios/GoogleMaps/RNMGoogleMapViewModule.h +5 -0
- package/ios/GoogleMaps/RNMGoogleMapViewModule.m +380 -0
- package/ios/{AirGoogleMaps/AIRGoogleMapWMSTile.h → GoogleMaps/RNMGoogleMapWMSTile.h} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapWMSTile.m → GoogleMaps/RNMGoogleMapWMSTile.m} +4 -4
- package/ios/{AirGoogleMaps/AIRGoogleMapWMSTileManager.h → GoogleMaps/RNMGoogleMapWMSTileManager.h} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapWMSTileManager.m → GoogleMaps/RNMGoogleMapWMSTileManager.m} +8 -8
- package/ios/{AirMaps → Maps}/Callout/SMCalloutView.h +4 -4
- package/ios/{AirMaps/RCTConvert+AirMap.h → Maps/RCTConvert+RNMMap.h} +1 -1
- package/ios/{AirMaps/RCTConvert+AirMap.m → Maps/RCTConvert+RNMMap.m} +25 -8
- package/ios/{AirMaps/AIRMap.h → Maps/RNMMap.h} +8 -8
- package/ios/{AirMaps/AIRMap.m → Maps/RNMMap.m} +60 -56
- package/ios/{AirMaps/AIRMapCallout.h → Maps/RNMMapCallout.h} +1 -1
- package/ios/{AirMaps/AIRMapCallout.m → Maps/RNMMapCallout.m} +2 -2
- package/ios/{AirMaps/AIRMapCircleManager.h → Maps/RNMMapCalloutManager.h} +2 -2
- package/ios/{AirMaps/AIRMapCalloutManager.m → Maps/RNMMapCalloutManager.m} +7 -7
- package/ios/{AirMaps/AIRMapCalloutSubview.h → Maps/RNMMapCalloutSubview.h} +3 -3
- package/ios/{AirMaps/AIRMapCalloutSubview.m → Maps/RNMMapCalloutSubview.m} +4 -4
- package/ios/Maps/RNMMapCalloutSubviewManager.h +14 -0
- package/ios/Maps/RNMMapCalloutSubviewManager.m +24 -0
- package/ios/{AirMaps/AIRMapCircle.h → Maps/RNMMapCircle.h} +5 -5
- package/ios/{AirMaps/AIRMapCircle.m → Maps/RNMMapCircle.m} +3 -3
- package/ios/{AirMaps/AIRMapCalloutManager.h → Maps/RNMMapCircleManager.h} +2 -2
- package/ios/{AirMaps/AIRMapCircleManager.m → Maps/RNMMapCircleManager.m} +7 -7
- package/ios/{AirMaps/AIRMapCoordinate.h → Maps/RNMMapCoordinate.h} +2 -2
- package/ios/{AirMaps/AIRMapCoordinate.m → Maps/RNMMapCoordinate.m} +3 -3
- package/ios/{AirMaps/AIRMapLocalTile.h → Maps/RNMMapLocalTile.h} +7 -7
- package/ios/{AirMaps/AIRMapLocalTile.m → Maps/RNMMapLocalTile.m} +6 -6
- package/ios/{AirMaps/AIRMapLocalTileManager.h → Maps/RNMMapLocalTileManager.h} +3 -3
- package/ios/{AirMaps/AIRMapLocalTileManager.m → Maps/RNMMapLocalTileManager.m} +9 -9
- package/ios/{AirMaps/AIRMapLocalTileOverlay.h → Maps/RNMMapLocalTileOverlay.h} +2 -2
- package/ios/{AirMaps/AIRMapLocalTileOverlay.m → Maps/RNMMapLocalTileOverlay.m} +5 -5
- package/ios/{AirMaps/AIRMapManager.h → Maps/RNMMapManager.h} +6 -6
- package/ios/Maps/RNMMapManager.m +854 -0
- package/ios/{AirMaps/AIRMapMarker.h → Maps/RNMMapMarker.h} +8 -8
- package/ios/{AirMaps/AIRMapMarker.m → Maps/RNMMapMarker.m} +13 -13
- package/ios/{AirMaps/AIRMapMarkerManager.h → Maps/RNMMapMarkerManager.h} +1 -1
- package/ios/{AirMaps/AIRMapMarkerManager.m → Maps/RNMMapMarkerManager.m} +14 -14
- package/ios/{AirMaps/AIRMapOverlay.h → Maps/RNMMapOverlay.h} +7 -7
- package/ios/{AirMaps/AIRMapOverlay.m → Maps/RNMMapOverlay.m} +4 -4
- package/ios/Maps/RNMMapOverlayManager.h +5 -0
- package/ios/{AirMaps/AIRMapOverlayManager.m → Maps/RNMMapOverlayManager.m} +6 -6
- package/ios/{AirMaps/AIRMapOverlayRenderer.h → Maps/RNMMapOverlayRenderer.h} +1 -1
- package/ios/{AirMaps/AIRMapOverlayRenderer.m → Maps/RNMMapOverlayRenderer.m} +5 -5
- package/ios/{AirMaps/AIRMapPolygon.h → Maps/RNMMapPolygon.h} +7 -7
- package/ios/{AirMaps/AIRMapPolygon.m → Maps/RNMMapPolygon.m} +4 -4
- package/ios/{AirMaps/AIRMapPolygonManager.h → Maps/RNMMapPolygonManager.h} +2 -2
- package/ios/{AirMaps/AIRMapPolygonManager.m → Maps/RNMMapPolygonManager.m} +10 -10
- package/ios/{AirMaps/AIRMapPolyline.h → Maps/RNMMapPolyline.h} +6 -6
- package/ios/{AirMaps/AIRMapPolyline.m → Maps/RNMMapPolyline.m} +11 -11
- package/ios/{AirMaps/AIRMapPolylineManager.h → Maps/RNMMapPolylineManager.h} +2 -2
- package/ios/{AirMaps/AIRMapPolylineManager.m → Maps/RNMMapPolylineManager.m} +9 -9
- package/ios/{AirMaps/AIRMapPolylineRenderer.h → Maps/RNMMapPolylineRenderer.h} +2 -2
- package/ios/{AirMaps/AIRMapPolylineRenderer.m → Maps/RNMMapPolylineRenderer.m} +10 -10
- package/ios/{AirMaps/AIRMapSnapshot.h → Maps/RNMMapSnapshot.h} +6 -6
- package/ios/{AirMaps/AIRMapUrlTile.h → Maps/RNMMapUrlTile.h} +18 -18
- package/ios/{AirMaps/AIRMapUrlTile.m → Maps/RNMMapUrlTile.m} +7 -7
- package/ios/{AirMaps/AIRMapUrlTileCachedOverlay.h → Maps/RNMMapUrlTileCachedOverlay.h} +3 -3
- package/ios/{AirMaps/AIRMapUrlTileCachedOverlay.m → Maps/RNMMapUrlTileCachedOverlay.m} +10 -10
- package/ios/{AirMaps/AIRMapUrlTileManager.h → Maps/RNMMapUrlTileManager.h} +3 -3
- package/ios/{AirMaps/AIRMapUrlTileManager.m → Maps/RNMMapUrlTileManager.m} +9 -9
- package/ios/Maps/RNMMapViewModule.h +5 -0
- package/ios/Maps/RNMMapViewModule.m +459 -0
- package/ios/{AirMaps/AIRMapWMSTile.h → Maps/RNMMapWMSTile.h} +11 -11
- package/ios/{AirMaps/AIRMapWMSTile.m → Maps/RNMMapWMSTile.m} +15 -15
- package/ios/{AirMaps/AIRMapWMSTileManager.h → Maps/RNMMapWMSTileManager.h} +3 -3
- package/ios/{AirMaps/AIRMapWMSTileManager.m → Maps/RNMMapWMSTileManager.m} +9 -9
- package/ios/RNMaps.xcodeproj/project.pbxproj +647 -0
- package/lib/Geojson.d.ts +1 -1
- package/lib/MapCallout.js +2 -2
- package/lib/MapCalloutSubview.js +2 -2
- package/lib/MapCircle.js +2 -2
- package/lib/MapHeatmap.js +2 -2
- package/lib/MapLocalTile.js +2 -2
- package/lib/MapMarker.d.ts +2 -3
- package/lib/MapMarker.js +2 -4
- package/lib/MapOverlay.d.ts +1 -2
- package/lib/MapOverlay.js +2 -4
- package/lib/MapPolygon.js +2 -2
- package/lib/MapPolyline.js +2 -2
- package/lib/MapUrlTile.js +2 -2
- package/lib/MapView.d.ts +14 -14
- package/lib/MapView.js +92 -107
- package/lib/MapView.types.d.ts +8 -3
- package/lib/MapViewNativeComponent.d.ts +1 -8
- package/lib/MapViewNativeComponent.js +1 -10
- package/lib/MapWMSTile.js +2 -2
- package/lib/NativeGoogleMapViewModule.d.ts +25 -0
- package/lib/NativeGoogleMapViewModule.js +4 -0
- package/lib/NativeMapViewModule.d.ts +29 -0
- package/lib/NativeMapViewModule.js +4 -0
- package/lib/decorateMapComponent.d.ts +1 -1
- package/lib/decorateMapComponent.js +3 -3
- package/lib/index.d.ts +14 -21
- package/lib/index.js +10 -38
- package/package.json +6 -6
- package/react-native-google-maps.podspec +1 -1
- package/react-native-maps.podspec +2 -2
- package/android/src/main/java/com/rnmaps/maps/MapModule.java +0 -380
- package/ios/AirGoogleMaps/AIRGoogleMapCalloutSubviewManager.m +0 -28
- package/ios/AirGoogleMaps/AIRGoogleMapHeatmapManager.h +0 -11
- package/ios/AirGoogleMaps/AIRGoogleMapManager.m +0 -597
- package/ios/AirMaps/AIRMapCalloutSubviewManager.h +0 -14
- package/ios/AirMaps/AIRMapCalloutSubviewManager.m +0 -24
- package/ios/AirMaps/AIRMapManager.m +0 -1253
- package/ios/AirMaps/AIRMapOverlayManager.h +0 -5
- package/ios/AirMaps/AIRWeakMapReference.h +0 -24
- package/ios/AirMaps/AIRWeakMapReference.m +0 -23
- package/ios/AirMaps/AIRWeakTimerReference.h +0 -21
- package/ios/AirMaps/AIRWeakTimerReference.m +0 -42
- package/ios/AirMaps.xcodeproj/project.pbxproj +0 -587
- /package/ios/{AirGoogleMaps → GoogleMaps}/RCTConvert+GMSMapViewType.h +0 -0
- /package/ios/{AirMaps → Maps}/Callout/SMCalloutView.m +0 -0
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ See [Setup Instructions for the Included Example Project](docs/examples-setup.md
|
|
|
14
14
|
|
|
15
15
|
## Compatibility
|
|
16
16
|
|
|
17
|
-
`react-native-maps` requires `react-native >= 0.
|
|
17
|
+
`react-native-maps` requires `react-native >= 0.69.0`.
|
|
18
18
|
|
|
19
19
|
## Component API
|
|
20
20
|
|
|
@@ -52,9 +52,30 @@ This MapView component is built so that features on the map (such as Markers, Po
|
|
|
52
52
|
specified as children of the MapView itself. This provides an intuitive and react-like API for
|
|
53
53
|
declaratively controlling features on the map.
|
|
54
54
|
|
|
55
|
+
### Getting a component reference when using typescript
|
|
56
|
+
|
|
57
|
+
Most components besides the `MapView` is dynamically exported from `react-native-maps`. This means that typescript isn't able to automatically infer the instance type for the compoenent, which is needed when adding a reference. To fix this, use the `InstanceType` utility type, e.g.:
|
|
58
|
+
|
|
59
|
+
```tsx
|
|
60
|
+
import React from 'react';
|
|
61
|
+
import MapView, {Marker} from 'react-native-maps';
|
|
62
|
+
|
|
63
|
+
export default function App() {
|
|
64
|
+
const markerRef = React.useRef<InstanceType<typeof Marker>>(null);
|
|
65
|
+
return (
|
|
66
|
+
<MapView style={{flex: 1}}>
|
|
67
|
+
<Marker
|
|
68
|
+
ref={markerRef}
|
|
69
|
+
coordinate={{latitude: 37.78825, longitude: -122.4324}}
|
|
70
|
+
/>
|
|
71
|
+
</MapView>
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
55
76
|
### Rendering a Map with an initial region
|
|
56
77
|
|
|
57
|
-
|
|
78
|
+
### MapView
|
|
58
79
|
|
|
59
80
|
```jsx
|
|
60
81
|
<MapView
|
|
@@ -278,11 +299,7 @@ import MapView, { PROVIDER_GOOGLE } from 'react-native-maps'
|
|
|
278
299
|
>
|
|
279
300
|
```
|
|
280
301
|
|
|
281
|
-
Then add the
|
|
282
|
-
|
|
283
|
-
https://github.com/react-native-maps/react-native-maps/blob/1e71a21f39e7b88554852951f773c731c94680c9/docs/installation.md#ios
|
|
284
|
-
|
|
285
|
-
An unofficial step-by-step guide is also available at https://gist.github.com/heron2014/e60fa003e9b117ce80d56bb1d5bfe9e0
|
|
302
|
+
Then update your Podfile and add the Google API key as described in the [installation docs](docs/installation.md#ios).
|
|
286
303
|
|
|
287
304
|
### MapView Events
|
|
288
305
|
|
|
@@ -397,7 +414,10 @@ Poi are clickable, you can catch the event to get its information (usually to ge
|
|
|
397
414
|
The MapView can accept an `AnimatedRegion` value as its `region` prop. This allows you to utilize the Animated API to control the map's center and zoom.
|
|
398
415
|
|
|
399
416
|
```jsx
|
|
400
|
-
import
|
|
417
|
+
import {Animated} from 'react-native'
|
|
418
|
+
import MapView, { AnimatedRegion } from 'react-native-maps';
|
|
419
|
+
|
|
420
|
+
const AnimatedMapView = Animated.createAnimatedComponent(MapView);
|
|
401
421
|
|
|
402
422
|
getInitialState() {
|
|
403
423
|
return {
|
|
@@ -416,7 +436,7 @@ onRegionChange(region) {
|
|
|
416
436
|
|
|
417
437
|
render() {
|
|
418
438
|
return (
|
|
419
|
-
<
|
|
439
|
+
<AnimatedMapView
|
|
420
440
|
region={this.state.region}
|
|
421
441
|
onRegionChange={this.onRegionChange}
|
|
422
442
|
/>
|
|
@@ -429,7 +449,10 @@ render() {
|
|
|
429
449
|
Markers can also accept an `AnimatedRegion` value as a coordinate.
|
|
430
450
|
|
|
431
451
|
```jsx
|
|
432
|
-
import
|
|
452
|
+
import {Animated} from 'react-native';
|
|
453
|
+
import Mapview, { AnimatedRegion, Marker } from 'react-native-maps';
|
|
454
|
+
|
|
455
|
+
const AnimatedMarker = Animated.createAnimatedComponent(Marker);
|
|
433
456
|
|
|
434
457
|
getInitialState() {
|
|
435
458
|
return {
|
|
@@ -464,7 +487,7 @@ componentWillReceiveProps(nextProps) {
|
|
|
464
487
|
render() {
|
|
465
488
|
return (
|
|
466
489
|
<MapView initialRegion={...}>
|
|
467
|
-
<
|
|
490
|
+
<AnimatedMarker
|
|
468
491
|
ref={marker => { this.marker = marker }}
|
|
469
492
|
coordinate={this.state.coordinate}
|
|
470
493
|
/>
|
package/android/build.gradle
CHANGED
|
@@ -12,7 +12,7 @@ buildscript {
|
|
|
12
12
|
mavenCentral()
|
|
13
13
|
}
|
|
14
14
|
dependencies {
|
|
15
|
-
classpath("com.android.tools.build:gradle:
|
|
15
|
+
classpath("com.android.tools.build:gradle:7.1.1")
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -29,24 +29,55 @@ android {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
repositories {
|
|
32
|
-
mavenLocal()
|
|
33
|
-
mavenCentral()
|
|
34
32
|
maven {
|
|
35
33
|
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
|
36
|
-
url
|
|
34
|
+
url("$rootDir/../node_modules/react-native/android")
|
|
37
35
|
}
|
|
38
36
|
maven {
|
|
39
37
|
// Android JSC is installed from npm
|
|
40
|
-
url
|
|
38
|
+
url("$rootDir/../node_modules/jsc-android/dist")
|
|
39
|
+
}
|
|
40
|
+
mavenCentral {
|
|
41
|
+
// We don't want to fetch react-native from Maven Central as there are
|
|
42
|
+
// older versions over there.
|
|
43
|
+
content {
|
|
44
|
+
excludeGroup "com.facebook.react"
|
|
45
|
+
}
|
|
41
46
|
}
|
|
42
47
|
google()
|
|
48
|
+
maven { url 'https://www.jitpack.io' }
|
|
43
49
|
}
|
|
44
50
|
|
|
45
51
|
dependencies {
|
|
46
52
|
implementation 'com.facebook.react:react-native:+'
|
|
47
|
-
implementation
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
53
|
+
implementation('com.google.android.gms:play-services-base') {
|
|
54
|
+
version {
|
|
55
|
+
strictly '[18.0.1, 19.0.0['
|
|
56
|
+
prefer '18.2.0'
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
implementation('com.google.android.gms:play-services-maps') {
|
|
60
|
+
version {
|
|
61
|
+
strictly '[18.0.0, 19.0.0['
|
|
62
|
+
prefer '18.1.0'
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
implementation('com.google.android.gms:play-services-location') {
|
|
66
|
+
version {
|
|
67
|
+
strictly '[21.0.1, 22.0.0['
|
|
68
|
+
prefer '21.0.1'
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
implementation('com.google.maps.android:android-maps-utils') {
|
|
72
|
+
version {
|
|
73
|
+
strictly '[3.0.0, 4.0.0['
|
|
74
|
+
prefer '3.4.0'
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
implementation('androidx.work:work-runtime') {
|
|
78
|
+
version {
|
|
79
|
+
strictly '[2.7.1, 3.0.0['
|
|
80
|
+
prefer '2.7.1'
|
|
81
|
+
}
|
|
82
|
+
}
|
|
52
83
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
distributionBase=GRADLE_USER_HOME
|
|
2
2
|
distributionPath=wrapper/dists
|
|
3
|
-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.
|
|
3
|
+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
|
|
4
4
|
zipStoreBase=GRADLE_USER_HOME
|
|
5
5
|
zipStorePath=wrapper/dists
|
|
@@ -86,7 +86,7 @@ public class MapGradientPolyline extends MapFeature {
|
|
|
86
86
|
private TileOverlayOptions createTileOverlayOptions() {
|
|
87
87
|
TileOverlayOptions options = new TileOverlayOptions();
|
|
88
88
|
options.zIndex(zIndex);
|
|
89
|
-
|
|
89
|
+
MapGradientPolylineProvider tileProvider = new MapGradientPolylineProvider(context, points, colors, width);
|
|
90
90
|
options.tileProvider(tileProvider);
|
|
91
91
|
return options;
|
|
92
92
|
}
|
|
@@ -110,7 +110,7 @@ public class MapGradientPolyline extends MapFeature {
|
|
|
110
110
|
return Color.rgb(rTotal, gTotal, bTotal);
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
public class
|
|
113
|
+
public class MapGradientPolylineProvider implements TileProvider {
|
|
114
114
|
|
|
115
115
|
public static final int BASE_TILE_SIZE = 256;
|
|
116
116
|
|
|
@@ -126,7 +126,7 @@ public class MapGradientPolyline extends MapFeature {
|
|
|
126
126
|
protected Point[] projectedPts;
|
|
127
127
|
protected Point[] projectedPtMids;
|
|
128
128
|
|
|
129
|
-
public
|
|
129
|
+
public MapGradientPolylineProvider(Context context, List<LatLng> points, int[] colors,
|
|
130
130
|
float width) {
|
|
131
131
|
super();
|
|
132
132
|
|
|
@@ -239,7 +239,7 @@ public class MapGradientPolyline extends MapFeature {
|
|
|
239
239
|
float interp2 = ((float)i - 1) / points.size();
|
|
240
240
|
float interp1to2 = (interp1 + interp2) / 2;
|
|
241
241
|
|
|
242
|
-
Log.d("
|
|
242
|
+
Log.d("MapGradientPolyline", String.valueOf(interp1to2));
|
|
243
243
|
|
|
244
244
|
// Circle for the corner (removes the weird empty corners that occur otherwise)
|
|
245
245
|
colorPaint.setStyle(Paint.Style.FILL);
|
|
@@ -5,7 +5,7 @@ import com.google.android.gms.maps.GoogleMapOptions;
|
|
|
5
5
|
|
|
6
6
|
public class MapLiteManager extends MapManager {
|
|
7
7
|
|
|
8
|
-
private static final String REACT_CLASS = "
|
|
8
|
+
private static final String REACT_CLASS = "RNMMapLite";
|
|
9
9
|
|
|
10
10
|
@Override
|
|
11
11
|
public String getName() {
|
|
@@ -15,14 +15,14 @@ import java.io.InputStream;
|
|
|
15
15
|
|
|
16
16
|
public class MapLocalTile extends MapFeature {
|
|
17
17
|
|
|
18
|
-
class
|
|
18
|
+
class MapLocalTileProvider implements TileProvider {
|
|
19
19
|
private static final int BUFFER_SIZE = 16 * 1024;
|
|
20
20
|
private int tileSize;
|
|
21
21
|
private String pathTemplate;
|
|
22
22
|
private final boolean useAssets;
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
public
|
|
25
|
+
public MapLocalTileProvider(int tileSizet, String pathTemplate, boolean useAssets) {
|
|
26
26
|
this.tileSize = tileSizet;
|
|
27
27
|
this.pathTemplate = pathTemplate;
|
|
28
28
|
this.useAssets = useAssets;
|
|
@@ -80,7 +80,7 @@ public class MapLocalTile extends MapFeature {
|
|
|
80
80
|
|
|
81
81
|
private TileOverlayOptions tileOverlayOptions;
|
|
82
82
|
private TileOverlay tileOverlay;
|
|
83
|
-
private MapLocalTile.
|
|
83
|
+
private MapLocalTile.MapLocalTileProvider tileProvider;
|
|
84
84
|
|
|
85
85
|
private String pathTemplate;
|
|
86
86
|
private float tileSize;
|
|
@@ -129,7 +129,7 @@ public class MapLocalTile extends MapFeature {
|
|
|
129
129
|
private TileOverlayOptions createTileOverlayOptions() {
|
|
130
130
|
TileOverlayOptions options = new TileOverlayOptions();
|
|
131
131
|
options.zIndex(zIndex);
|
|
132
|
-
this.tileProvider = new MapLocalTile.
|
|
132
|
+
this.tileProvider = new MapLocalTile.MapLocalTileProvider((int)this.tileSize, this.pathTemplate, this.useAssets);
|
|
133
133
|
options.tileProvider(this.tileProvider);
|
|
134
134
|
return options;
|
|
135
135
|
}
|
|
@@ -20,14 +20,12 @@ import com.facebook.react.uimanager.events.RCTEventEmitter;
|
|
|
20
20
|
import com.google.android.gms.location.Priority;
|
|
21
21
|
import com.google.android.gms.maps.GoogleMap;
|
|
22
22
|
import com.google.android.gms.maps.GoogleMapOptions;
|
|
23
|
-
import com.google.android.gms.maps.model.LatLng;
|
|
24
|
-
import com.google.android.gms.maps.model.LatLngBounds;
|
|
25
23
|
|
|
26
24
|
import java.util.Map;
|
|
27
25
|
|
|
28
26
|
public class MapManager extends ViewGroupManager<MapView> {
|
|
29
27
|
|
|
30
|
-
private static final String REACT_CLASS = "
|
|
28
|
+
private static final String REACT_CLASS = "RNMMap";
|
|
31
29
|
|
|
32
30
|
private final Map<String, Integer> MAP_TYPES = MapBuilder.of(
|
|
33
31
|
"standard", GoogleMap.MAP_TYPE_NORMAL,
|
|
@@ -276,14 +274,13 @@ public class MapManager extends ViewGroupManager<MapView> {
|
|
|
276
274
|
}
|
|
277
275
|
}
|
|
278
276
|
|
|
277
|
+
@ReactProp(name = "boundary")
|
|
278
|
+
public void setBoundary(MapView view, ReadableMap boundary) {
|
|
279
|
+
view.setBoundary(boundary);
|
|
280
|
+
}
|
|
281
|
+
|
|
279
282
|
@Override
|
|
280
283
|
public void receiveCommand(@NonNull MapView view, String commandId, @Nullable ReadableArray args) {
|
|
281
|
-
int duration;
|
|
282
|
-
double lat;
|
|
283
|
-
double lng;
|
|
284
|
-
double lngDelta;
|
|
285
|
-
double latDelta;
|
|
286
|
-
ReadableMap region;
|
|
287
284
|
ReadableMap camera;
|
|
288
285
|
|
|
289
286
|
switch (commandId) {
|
|
@@ -295,60 +292,6 @@ public class MapManager extends ViewGroupManager<MapView> {
|
|
|
295
292
|
view.animateToCamera(camera, 0);
|
|
296
293
|
break;
|
|
297
294
|
|
|
298
|
-
case "animateCamera":
|
|
299
|
-
if(args == null) {
|
|
300
|
-
break;
|
|
301
|
-
}
|
|
302
|
-
camera = args.getMap(0);
|
|
303
|
-
duration = args.getInt(1);
|
|
304
|
-
view.animateToCamera(camera, duration);
|
|
305
|
-
break;
|
|
306
|
-
|
|
307
|
-
case "animateToRegion":
|
|
308
|
-
if(args == null) {
|
|
309
|
-
break;
|
|
310
|
-
}
|
|
311
|
-
region = args.getMap(0);
|
|
312
|
-
duration = args.getInt(1);
|
|
313
|
-
lng = region.getDouble("longitude");
|
|
314
|
-
lat = region.getDouble("latitude");
|
|
315
|
-
lngDelta = region.getDouble("longitudeDelta");
|
|
316
|
-
latDelta = region.getDouble("latitudeDelta");
|
|
317
|
-
LatLngBounds bounds = new LatLngBounds(
|
|
318
|
-
new LatLng(lat - latDelta / 2, lng - lngDelta / 2), // southwest
|
|
319
|
-
new LatLng(lat + latDelta / 2, lng + lngDelta / 2) // northeast
|
|
320
|
-
);
|
|
321
|
-
view.animateToRegion(bounds, duration);
|
|
322
|
-
break;
|
|
323
|
-
|
|
324
|
-
case "fitToElements":
|
|
325
|
-
if(args == null) {
|
|
326
|
-
break;
|
|
327
|
-
}
|
|
328
|
-
view.fitToElements(args.getMap(0), args.getBoolean(1));
|
|
329
|
-
break;
|
|
330
|
-
|
|
331
|
-
case "fitToSuppliedMarkers":
|
|
332
|
-
if(args == null) {
|
|
333
|
-
break;
|
|
334
|
-
}
|
|
335
|
-
view.fitToSuppliedMarkers(args.getArray(0), args.getMap(1), args.getBoolean(2));
|
|
336
|
-
break;
|
|
337
|
-
|
|
338
|
-
case "fitToCoordinates":
|
|
339
|
-
if(args == null) {
|
|
340
|
-
break;
|
|
341
|
-
}
|
|
342
|
-
view.fitToCoordinates(args.getArray(0), args.getMap(1), args.getBoolean(2));
|
|
343
|
-
break;
|
|
344
|
-
|
|
345
|
-
case "setMapBoundaries":
|
|
346
|
-
if(args == null) {
|
|
347
|
-
break;
|
|
348
|
-
}
|
|
349
|
-
view.setMapBoundaries(args.getMap(0), args.getMap(1));
|
|
350
|
-
break;
|
|
351
|
-
|
|
352
295
|
case "setIndoorActiveLevelIndex":
|
|
353
296
|
if(args == null) {
|
|
354
297
|
break;
|
|
@@ -74,7 +74,7 @@ public class MapMarker extends MapFeature {
|
|
|
74
74
|
private float calloutAnchorY;
|
|
75
75
|
private boolean calloutAnchorIsSet;
|
|
76
76
|
|
|
77
|
-
private boolean tracksViewChanges =
|
|
77
|
+
private boolean tracksViewChanges = false;
|
|
78
78
|
private boolean tracksViewChangesActive = false;
|
|
79
79
|
|
|
80
80
|
private boolean hasCustomMarkerView = false;
|
|
@@ -332,7 +332,7 @@ public class MapMarker extends MapFeature {
|
|
|
332
332
|
}
|
|
333
333
|
if (uri != null) {
|
|
334
334
|
// listening for marker bitmap descriptor update, as well as check whether to load the image.
|
|
335
|
-
MapMarkerManager.
|
|
335
|
+
MapMarkerManager.MapMarkerSharedIcon sharedIcon = this.markerManager.getSharedIcon(uri);
|
|
336
336
|
sharedIcon.addMarker(this);
|
|
337
337
|
shouldLoadImage = sharedIcon.shouldLoadImage();
|
|
338
338
|
}
|
|
@@ -25,20 +25,20 @@ import java.util.concurrent.ConcurrentHashMap;
|
|
|
25
25
|
|
|
26
26
|
public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
27
27
|
|
|
28
|
-
public static class
|
|
28
|
+
public static class MapMarkerSharedIcon {
|
|
29
29
|
private BitmapDescriptor iconBitmapDescriptor;
|
|
30
30
|
private Bitmap bitmap;
|
|
31
31
|
private final Map<MapMarker, Boolean> markers;
|
|
32
32
|
private boolean loadImageStarted;
|
|
33
33
|
|
|
34
|
-
public
|
|
34
|
+
public MapMarkerSharedIcon(){
|
|
35
35
|
this.markers = new WeakHashMap<>();
|
|
36
36
|
this.loadImageStarted = false;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
/**
|
|
40
40
|
* check whether the load image process started.
|
|
41
|
-
* caller
|
|
41
|
+
* caller MapMarker will only need to load it when this returns true.
|
|
42
42
|
*
|
|
43
43
|
* @return true if it is not started, false otherwise.
|
|
44
44
|
*/
|
|
@@ -109,7 +109,7 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
-
private final Map<String,
|
|
112
|
+
private final Map<String, MapMarkerSharedIcon> sharedIcons = new ConcurrentHashMap<>();
|
|
113
113
|
|
|
114
114
|
/**
|
|
115
115
|
* get the shared icon object, if not existed, create a new one and store it.
|
|
@@ -117,12 +117,12 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
117
117
|
* @param uri
|
|
118
118
|
* @return the icon object for the given uri.
|
|
119
119
|
*/
|
|
120
|
-
public
|
|
121
|
-
|
|
120
|
+
public MapMarkerSharedIcon getSharedIcon(String uri) {
|
|
121
|
+
MapMarkerSharedIcon icon = this.sharedIcons.get(uri);
|
|
122
122
|
if (icon == null) {
|
|
123
123
|
synchronized (this) {
|
|
124
124
|
if((icon = this.sharedIcons.get(uri)) == null) {
|
|
125
|
-
icon = new
|
|
125
|
+
icon = new MapMarkerSharedIcon();
|
|
126
126
|
this.sharedIcons.put(uri, icon);
|
|
127
127
|
}
|
|
128
128
|
}
|
|
@@ -136,7 +136,7 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
136
136
|
* @param uri
|
|
137
137
|
*/
|
|
138
138
|
public void removeSharedIconIfEmpty(String uri) {
|
|
139
|
-
|
|
139
|
+
MapMarkerSharedIcon icon = this.sharedIcons.get(uri);
|
|
140
140
|
if (icon == null) {return;}
|
|
141
141
|
if (!icon.hasMarker()) {
|
|
142
142
|
synchronized (this) {
|
|
@@ -152,7 +152,7 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
152
152
|
|
|
153
153
|
@Override
|
|
154
154
|
public String getName() {
|
|
155
|
-
return "
|
|
155
|
+
return "RNMMapMarker";
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
@Override
|
|
@@ -180,20 +180,6 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
180
180
|
view.setSnippet(description);
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
// NOTE(lmr):
|
|
184
|
-
// android uses normalized coordinate systems for this, and is provided through the
|
|
185
|
-
// `anchor` property and `calloutAnchor` instead. Perhaps some work could be done
|
|
186
|
-
// to normalize iOS and android to use just one of the systems.
|
|
187
|
-
// @ReactProp(name = "centerOffset")
|
|
188
|
-
// public void setCenterOffset(AirMapMarker view, ReadableMap map) {
|
|
189
|
-
//
|
|
190
|
-
// }
|
|
191
|
-
//
|
|
192
|
-
// @ReactProp(name = "calloutOffset")
|
|
193
|
-
// public void setCalloutOffset(AirMapMarker view, ReadableMap map) {
|
|
194
|
-
//
|
|
195
|
-
// }
|
|
196
|
-
|
|
197
183
|
@ReactProp(name = "anchor")
|
|
198
184
|
public void setAnchor(MapMarker view, ReadableMap map) {
|
|
199
185
|
// should default to (0.5, 1) (bottom middle)
|
|
@@ -214,9 +200,6 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
214
200
|
public void setImage(MapMarker view, @Nullable String source) {
|
|
215
201
|
view.setImage(source);
|
|
216
202
|
}
|
|
217
|
-
// public void setImage(AirMapMarker view, ReadableMap image) {
|
|
218
|
-
// view.setImage(image);
|
|
219
|
-
// }
|
|
220
203
|
|
|
221
204
|
@ReactProp(name = "icon")
|
|
222
205
|
public void setIcon(MapMarker view, @Nullable String source) {
|
|
@@ -261,7 +244,7 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
261
244
|
view.setOpacity(opacity);
|
|
262
245
|
}
|
|
263
246
|
|
|
264
|
-
@ReactProp(name = "tracksViewChanges", defaultBoolean =
|
|
247
|
+
@ReactProp(name = "tracksViewChanges", defaultBoolean = false)
|
|
265
248
|
public void setTracksViewChanges(MapMarker view, boolean tracksViewChanges) {
|
|
266
249
|
view.setTracksViewChanges(tracksViewChanges);
|
|
267
250
|
}
|
|
@@ -43,10 +43,10 @@ import java.net.URLConnection;
|
|
|
43
43
|
|
|
44
44
|
public class MapTileProvider implements TileProvider {
|
|
45
45
|
|
|
46
|
-
class
|
|
46
|
+
class MapUrlTileProvider extends UrlTileProvider {
|
|
47
47
|
private String urlTemplate;
|
|
48
48
|
|
|
49
|
-
public
|
|
49
|
+
public MapUrlTileProvider(int width, int height, String urlTemplate) {
|
|
50
50
|
super(width, height);
|
|
51
51
|
this.urlTemplate = urlTemplate;
|
|
52
52
|
}
|
|
@@ -104,7 +104,7 @@ public class MapTileProvider implements TileProvider {
|
|
|
104
104
|
public MapTileProvider(int tileSizet, boolean doubleTileSize, String urlTemplate,
|
|
105
105
|
int maximumZ, int maximumNativeZ, int minimumZ, boolean flipY, String tileCachePath,
|
|
106
106
|
int tileCacheMaxAge, boolean offlineMode, Context context, boolean customMode) {
|
|
107
|
-
this.tileProvider = new
|
|
107
|
+
this.tileProvider = new MapUrlTileProvider(tileSizet, tileSizet, urlTemplate);
|
|
108
108
|
|
|
109
109
|
this.tileSize = tileSizet;
|
|
110
110
|
this.doubleTileSize = doubleTileSize;
|
|
@@ -213,7 +213,9 @@ public class MapTileProvider implements TileProvider {
|
|
|
213
213
|
} catch (Exception e) {
|
|
214
214
|
e.printStackTrace();
|
|
215
215
|
}
|
|
216
|
-
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
if (image == null && !this.offlineMode) {
|
|
217
219
|
Log.d("urlTile", "Normal fetch");
|
|
218
220
|
image = fetchTile(x, y, zoom);
|
|
219
221
|
if (image == null) {
|
|
@@ -448,7 +450,7 @@ public class MapTileProvider implements TileProvider {
|
|
|
448
450
|
|
|
449
451
|
public void setTileSize(int tileSize) {
|
|
450
452
|
if (this.tileSize != tileSize) {
|
|
451
|
-
this.tileProvider = new
|
|
453
|
+
this.tileProvider = new MapUrlTileProvider(tileSize, tileSize, urlTemplate);
|
|
452
454
|
}
|
|
453
455
|
this.tileSize = tileSize;
|
|
454
456
|
}
|