react-native-maps 1.20.1 → 1.21.0-alpha.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.
@@ -0,0 +1,862 @@
1
+ /// <reference types="react" />
2
+ import type { HostComponent, ViewProps, ColorValue } from 'react-native';
3
+ import { Double, Int32, WithDefault, Float, DirectEventHandler, BubblingEventHandler } from 'react-native/Libraries/Types/CodegenTypes';
4
+ export type EdgePadding = Readonly<{
5
+ top: Double;
6
+ right: Double;
7
+ bottom: Double;
8
+ left: Double;
9
+ }>;
10
+ export type ActionType = 'callout-press' | 'press' | 'marker-press' | 'long-press' | 'marker-deselect' | 'marker-select';
11
+ export type Frame = Readonly<{
12
+ x: Double;
13
+ y: Double;
14
+ width: Double;
15
+ height: Double;
16
+ }>;
17
+ export type ClickEvent = BubblingEventHandler<Readonly<{
18
+ coordinate: {
19
+ latitude: Double;
20
+ longitude: Double;
21
+ };
22
+ position: {
23
+ x: Double;
24
+ y: Double;
25
+ };
26
+ }>>;
27
+ export type KmlMarker = {
28
+ id: string;
29
+ title: string;
30
+ description: string;
31
+ coordinate: {
32
+ latitude: Double;
33
+ longitude: Double;
34
+ };
35
+ position: {
36
+ x: Double;
37
+ y: Double;
38
+ };
39
+ };
40
+ export type LongPressEventHandler = BubblingEventHandler<Readonly<{
41
+ coordinate: {
42
+ latitude: Double;
43
+ longitude: Double;
44
+ };
45
+ position: {
46
+ x: Double;
47
+ y: Double;
48
+ };
49
+ action?: string;
50
+ }>>;
51
+ export type MarkerDeselectEventHandler = BubblingEventHandler<Readonly<{
52
+ action?: string;
53
+ id: string;
54
+ coordinate: {
55
+ latitude: Double;
56
+ longitude: Double;
57
+ };
58
+ }>>;
59
+ export type MarkerSelectEventHandler = BubblingEventHandler<Readonly<{
60
+ action?: string;
61
+ id: string;
62
+ coordinate: {
63
+ latitude: Double;
64
+ longitude: Double;
65
+ };
66
+ }>>;
67
+ export type CalloutPressEvent = BubblingEventHandler<{
68
+ action?: string;
69
+ /**
70
+ * @platform iOS
71
+ */
72
+ frame?: {
73
+ x: Double;
74
+ y: Double;
75
+ width: Double;
76
+ height: Double;
77
+ };
78
+ /**
79
+ * @platform iOS
80
+ */
81
+ id?: string;
82
+ /**
83
+ * @platform iOS
84
+ */
85
+ point?: {
86
+ x: Double;
87
+ y: Double;
88
+ };
89
+ /**
90
+ * @platform Android
91
+ */
92
+ coordinate?: {
93
+ latitude: Double;
94
+ longitude: Double;
95
+ };
96
+ /**
97
+ * @platform Android
98
+ */
99
+ position?: {
100
+ x: Double;
101
+ y: Double;
102
+ };
103
+ }>;
104
+ export type CalloutPressEventHandler = DirectEventHandler<CalloutPressEvent>;
105
+ export type Camera = Readonly<{
106
+ /**
107
+ * Apple Maps
108
+ */
109
+ altitude?: Double;
110
+ center: LatLng;
111
+ heading: Double;
112
+ pitch: Double;
113
+ /**
114
+ * Google Maps
115
+ */
116
+ zoom?: Float;
117
+ }>;
118
+ export type LatLng = Readonly<{
119
+ latitude: Double;
120
+ longitude: Double;
121
+ }>;
122
+ export type Point = Readonly<{
123
+ x: Double;
124
+ y: Double;
125
+ }>;
126
+ export type Region = Readonly<LatLng & {
127
+ latitudeDelta: Double;
128
+ longitudeDelta: Double;
129
+ }>;
130
+ export type IndoorLevel = Readonly<{
131
+ index: Int32;
132
+ name: string;
133
+ shortName: string;
134
+ }>;
135
+ export type IndoorLevelActivatedEventHandler = DirectEventHandler<Readonly<{
136
+ IndoorLevel: {
137
+ activeLevelIndex: Int32;
138
+ name: string;
139
+ shortName: string;
140
+ };
141
+ }>>;
142
+ export type IndoorBuilding = Readonly<{
143
+ underground: boolean;
144
+ activeLevelIndex: Int32;
145
+ levels: ReadonlyArray<IndoorLevel>;
146
+ }>;
147
+ export type IndoorBuildingEventHandler = DirectEventHandler<Readonly<{
148
+ IndoorBuilding: {
149
+ underground: boolean;
150
+ activeLevelIndex: Int32;
151
+ };
152
+ }>>;
153
+ export type KmlMapEventHandler = DirectEventHandler<Readonly<{}>>;
154
+ export type MapLoadedEventHandler = DirectEventHandler<Readonly<{}>>;
155
+ export type MapReadyEventHandler = DirectEventHandler<Readonly<{}>>;
156
+ export type Details = Readonly<{
157
+ isGesture?: boolean;
158
+ }>;
159
+ export type MarkerDragEventHandler = BubblingEventHandler<Readonly<{
160
+ coordinate: {
161
+ latitude: Double;
162
+ longitude: Double;
163
+ };
164
+ position: {
165
+ x: Double;
166
+ y: Double;
167
+ };
168
+ id?: string;
169
+ }>>;
170
+ export type MarkerDragStartEndEventHandler = BubblingEventHandler<Readonly<{
171
+ coordinate: {
172
+ latitude: Double;
173
+ longitude: Double;
174
+ };
175
+ id?: string;
176
+ position?: {
177
+ x: Double;
178
+ y: Double;
179
+ };
180
+ }>>;
181
+ export type MarkerPressEventHandler = BubblingEventHandler<Readonly<{
182
+ action?: string;
183
+ id: string;
184
+ coordinate: {
185
+ latitude: Double;
186
+ longitude: Double;
187
+ };
188
+ position?: {
189
+ x: Double;
190
+ y: Double;
191
+ };
192
+ }>>;
193
+ export type PanDragEventHandler = BubblingEventHandler<Readonly<{
194
+ coordinate: {
195
+ latitude: Double;
196
+ longitude: Double;
197
+ };
198
+ position: {
199
+ x: Double;
200
+ y: Double;
201
+ };
202
+ }>>;
203
+ export type PoiClickEventHandler = BubblingEventHandler<Readonly<{
204
+ placeId: string;
205
+ name: string;
206
+ coordinate: {
207
+ latitude: Double;
208
+ longitude: Double;
209
+ };
210
+ position?: {
211
+ x: Double;
212
+ y: Double;
213
+ };
214
+ }>>;
215
+ export type MapPressEventHandler = BubblingEventHandler<Readonly<{
216
+ coordinate: {
217
+ latitude: Double;
218
+ longitude: Double;
219
+ };
220
+ position: {
221
+ x: Double;
222
+ y: Double;
223
+ };
224
+ action?: string;
225
+ }>>;
226
+ export type RegionChangeStartEventHandler = DirectEventHandler<Details>;
227
+ export type RegionChangeEvent = Readonly<{
228
+ region: {
229
+ latitude: Double;
230
+ longitude: Double;
231
+ latitudeDelta: Double;
232
+ longitudeDelta: Double;
233
+ };
234
+ continuous?: boolean;
235
+ }>;
236
+ export type RegionChangeEventHandler = BubblingEventHandler<RegionChangeEvent>;
237
+ export type UserLocationChangeEvent = Readonly<{
238
+ coordinate?: {
239
+ latitude: Double;
240
+ longitude: Double;
241
+ altitude: Double;
242
+ timestamp: Double;
243
+ accuracy: Float;
244
+ speed: Float;
245
+ heading: Float;
246
+ /**
247
+ * @platform iOS
248
+ */
249
+ altitudeAccuracy?: Float;
250
+ /**
251
+ * @platform Android
252
+ */
253
+ isFromMockProvider?: boolean;
254
+ };
255
+ /**
256
+ * @platform iOS
257
+ */
258
+ error?: Readonly<{
259
+ message: string;
260
+ }>;
261
+ }>;
262
+ export type UserLocationChangeEventHandler = DirectEventHandler<UserLocationChangeEvent>;
263
+ export type CameraZoomRange = Readonly<{
264
+ minCenterCoordinateDistance?: Double;
265
+ maxCenterCoordinateDistance?: Double;
266
+ animated?: boolean;
267
+ }>;
268
+ export interface MapFabricNativeProps extends ViewProps {
269
+ /**
270
+ * If `true` map will be cached and displayed as an image instead of being interactable, for performance usage.
271
+ *
272
+ * @default false
273
+ * @platform iOS: Apple maps only
274
+ * @platform Android: Supported
275
+ */
276
+ cacheEnabled?: boolean;
277
+ /**
278
+ * The camera view the map should display.
279
+ *
280
+ * Use the camera system, instead of the region system, if you need control over
281
+ * the pitch or heading. Using this will ignore the `region` property.
282
+ * @platform iOS: Supported
283
+ * @platform Android: Supported
284
+ */
285
+ camera?: Camera;
286
+ /**
287
+ * If set, changes the position of the compass.
288
+ *
289
+ * @platform iOS: Apple Maps only
290
+ * @platform Android: Not supported
291
+ */
292
+ compassOffset?: Point;
293
+ /**
294
+ * If `true` the map will focus on the user's location.
295
+ * This only works if `showsUserLocation` is true and the user has shared their location.
296
+ *
297
+ * @default false
298
+ * @platform iOS: Apple Maps only
299
+ * @platform Android: Not supported
300
+ */
301
+ followsUserLocation?: boolean;
302
+ /**
303
+ * If `false` the map will not capture PoI clicks
304
+ * This can improve click handling on the map for android
305
+ *
306
+ * @default true
307
+ * @platform iOS: Not supported
308
+ * @platform Android: supported
309
+ */
310
+ poiClickEnabled?: boolean;
311
+ /**
312
+ * The initial camera view the map should use. Use this prop instead of `camera`
313
+ * only if you don't want to control the camera of the map besides the initial view.
314
+ *
315
+ * Use the camera system, instead of the region system, if you need control over
316
+ * the pitch or heading.
317
+ *
318
+ * Changing this prop after the component has mounted will not result in a camera change.
319
+ *
320
+ * This is similar to the `initialValue` prop of a text input.
321
+ *
322
+ * @platform iOS: Supported
323
+ * @platform Android: Supported
324
+ */
325
+ initialCamera?: Camera;
326
+ /**
327
+ * The initial region to be displayed by the map. Use this prop instead of `region`
328
+ * only if you don't want to control the viewport of the map besides the initial region.
329
+ *
330
+ * Changing this prop after the component has mounted will not result in a region change.
331
+ *
332
+ * This is similar to the `initialValue` prop of a text input.
333
+ *
334
+ * @platform iOS: Supported
335
+ * @platform Android: Supported
336
+ */
337
+ initialRegion?: Region;
338
+ /**
339
+ * The URL for KML file.
340
+ *
341
+ * @platform iOS: Google Maps only
342
+ * @platform Android: Supported
343
+ */
344
+ kmlSrc?: string;
345
+ /**
346
+ * If set, changes the position of the "Legal" label link in Apple maps.
347
+ *
348
+ * @platform iOS: Apple Maps only
349
+ * @platform Android: Not supported
350
+ */
351
+ legalLabelInsets?: EdgePadding;
352
+ /**
353
+ * Enables lite mode on Android
354
+ *
355
+ * @platform iOS: Not supported
356
+ * @platform Android: Supported
357
+ */
358
+ liteMode?: boolean;
359
+ /**
360
+ * https://developers.google.com/maps/documentation/get-map-id
361
+ * google cloud mapId to enable cloud styling and more
362
+ */
363
+ googleMapId?: string;
364
+ /**
365
+ * https://developers.google.com/maps/documentation/android-sdk/renderer
366
+ * google maps renderer
367
+ * @default `LATEST`
368
+ * @platform iOS: Not supported
369
+ * @platform Android: Supported
370
+ */
371
+ googleRenderer?: WithDefault<'LATEST' | 'LEGACY', 'LATEST'>;
372
+ /**
373
+ * Sets loading background color.
374
+ *
375
+ * @default `#FFFFFF`
376
+ * @platform iOS: Supported
377
+ * @platform Android: Supported
378
+ */
379
+ loadingBackgroundColor?: ColorValue;
380
+ /**
381
+ * If `true` a loading indicator will show while the map is loading.
382
+ *
383
+ * @default false
384
+ * @platform iOS: Apple Maps only
385
+ * @platform Android: Supported
386
+ */
387
+ loadingEnabled?: boolean;
388
+ /**
389
+ * Sets loading indicator color.
390
+ *
391
+ * @default `#606060`
392
+ * @platform iOS: Apple Maps only
393
+ * @platform Android: Supported
394
+ */
395
+ loadingIndicatorColor?: ColorValue;
396
+ /**
397
+ * Adds custom padding to each side of the map. Useful when map elements/markers are obscured.
398
+ *
399
+ * @platform iOS: Supported
400
+ * @platform Android: Supported
401
+ */
402
+ mapPadding?: EdgePadding;
403
+ /**
404
+ * The map type to be displayed
405
+ *
406
+ * @default `standard`
407
+ * @platform iOS: hybrid | mutedStandard | satellite | standard | terrain | hybridFlyover | satelliteFlyover
408
+ * @platform Android: hybrid | none | satellite | standard | terrain
409
+ */
410
+ mapType?: WithDefault<'hybrid' | 'mutedStandard' | 'none' | 'satellite' | 'standard' | 'terrain' | 'satelliteFlyover' | 'hybridFlyover', 'standard'>;
411
+ /**
412
+ * TODO: Add documentation
413
+ *
414
+ * @platform iOS: Apple Maps only
415
+ * @platform Android: Not supported
416
+ */
417
+ maxDelta?: Double;
418
+ /**
419
+ * Maximum zoom value for the map, must be between 0 and 20
420
+ *
421
+ * @default 20
422
+ * @platform iOS: Supported
423
+ * @platform Android: Supported
424
+ * @deprecated on Apple Maps, use `cameraZoomRange` instead
425
+ */
426
+ maxZoomLevel?: Int32;
427
+ /**
428
+ * TODO: Add documentation
429
+ *
430
+ * @platform iOS: Apple Maps only
431
+ * @platform Android: Not supported
432
+ */
433
+ minDelta?: Double;
434
+ /**
435
+ * Minimum zoom value for the map, must be between 0 and 20
436
+ *
437
+ * @default 0
438
+ * @platform iOS: Supported
439
+ * @platform Android: Supported
440
+ * @deprecated on Apple Maps, use `cameraZoomRange` instead
441
+ */
442
+ minZoomLevel?: Float;
443
+ /**
444
+ * If `false` the map won't move to the marker when pressed.
445
+ *
446
+ * @default true
447
+ * @platform iOS: Not supported
448
+ * @platform Android: Supported
449
+ */
450
+ moveOnMarkerPress?: boolean;
451
+ /**
452
+ * Callback that is called when a callout is tapped by the user.
453
+ *
454
+ * @platform iOS: Apple Maps only
455
+ * @platform Android: Supported
456
+ */
457
+ onCalloutPress?: CalloutPressEventHandler;
458
+ /**
459
+ * Callback that is called when user double taps on the map.
460
+ *
461
+ * @platform iOS: Apple Maps only
462
+ * @platform Android: Supported
463
+ */
464
+ onDoublePress?: ClickEvent;
465
+ /**
466
+ * Callback that is called when an indoor building is focused/unfocused
467
+ *
468
+ * @platform iOS: Google Maps only
469
+ * @platform Android: Supported
470
+ */
471
+ onIndoorBuildingFocused?: IndoorBuildingEventHandler;
472
+ /**
473
+ * Callback that is called when a level on indoor building is activated
474
+ *
475
+ * @platform iOS: Google Maps only
476
+ * @platform Android: Supported
477
+ */
478
+ onIndoorLevelActivated?: IndoorLevelActivatedEventHandler;
479
+ /**
480
+ * Callback that is called once the kml is fully loaded.
481
+ *
482
+ * @platform iOS: Google Maps only
483
+ * @platform Android: Supported
484
+ */
485
+ onKmlReady?: KmlMapEventHandler;
486
+ /**
487
+ * Callback that is called when user makes a "long press" somewhere on the map.
488
+ *
489
+ * @platform iOS: Supported
490
+ * @platform Android: Supported
491
+ */
492
+ onLongPress?: LongPressEventHandler;
493
+ /**
494
+ * Callback that is called when the map has finished rendering all tiles.
495
+ *
496
+ * @platform iOS: Google Maps only
497
+ * @platform Android: Supported
498
+ */
499
+ onMapLoaded?: MapLoadedEventHandler;
500
+ /**
501
+ * Callback that is called once the map is ready.
502
+ *
503
+ * Event is optional, as the first onMapReady callback is intercepted
504
+ * on Android, and the event is not passed on.
505
+ *
506
+ * @platform iOS: Supported
507
+ * @platform Android: Supported
508
+ */
509
+ onMapReady?: MapReadyEventHandler;
510
+ /**
511
+ * Callback that is called when a marker on the map becomes deselected.
512
+ * This will be called when the callout for that marker is about to be hidden.
513
+ *
514
+ * @platform iOS: Supported
515
+ * @platform Android: Supported
516
+ */
517
+ onMarkerDeselect?: MarkerDeselectEventHandler;
518
+ /**
519
+ * Callback called continuously as a marker is dragged
520
+ *
521
+ * @platform iOS: Apple Maps only
522
+ * @platform Android: Supported
523
+ */
524
+ onMarkerDrag?: MarkerDragEventHandler;
525
+ /**
526
+ * Callback that is called when a drag on a marker finishes.
527
+ * This is usually the point you will want to setState on the marker's coordinate again
528
+ *
529
+ * @platform iOS: Apple Maps only
530
+ * @platform Android: Supported
531
+ */
532
+ onMarkerDragEnd?: MarkerDragStartEndEventHandler;
533
+ /**
534
+ * Callback that is called when the user initiates a drag on a marker (if it is draggable)
535
+ *
536
+ * @platform iOS: Apple Maps only
537
+ * @platform Android: Supported
538
+ */
539
+ onMarkerDragStart?: MarkerDragStartEndEventHandler;
540
+ /**
541
+ * Callback that is called when a marker on the map is tapped by the user.
542
+ *
543
+ * @platform iOS: Supported
544
+ * @platform Android: Supported
545
+ */
546
+ onMarkerPress?: MarkerPressEventHandler;
547
+ /**
548
+ * Callback that is called when a marker on the map becomes selected.
549
+ * This will be called when the callout for that marker is about to be shown.
550
+ *
551
+ * @platform iOS: Supported.
552
+ * @platform Android: Supported
553
+ */
554
+ onMarkerSelect?: MarkerSelectEventHandler;
555
+ /**
556
+ * Callback that is called when user presses and drags the map.
557
+ * **NOTE**: for iOS `scrollEnabled` should be set to false to trigger the event
558
+ *
559
+ * @platform iOS: Supported
560
+ * @platform Android: Supported
561
+ */
562
+ onPanDrag?: PanDragEventHandler;
563
+ /**
564
+ * Callback that is called when user click on a POI.
565
+ *
566
+ * @platform iOS: Google Maps only
567
+ * @platform Android: Supported
568
+ */
569
+ onPoiClick?: PoiClickEventHandler;
570
+ /**
571
+ * Callback that is called when user taps on the map.
572
+ *
573
+ * @platform iOS: Supported
574
+ * @platform Android: Supported
575
+ */
576
+ onPress?: MapPressEventHandler;
577
+ /**
578
+ * Callback that is called once before the region changes, such as when the user starts moving the map.
579
+ * `isGesture` property indicates if the move was from the user (true) or an animation (false).
580
+ * **Note**: `isGesture` is supported by Google Maps only.
581
+ *
582
+ * @platform iOS: Supported
583
+ * @platform Android: Supported
584
+ */
585
+ onRegionChangeStart?: RegionChangeEventHandler;
586
+ /**
587
+ * Callback that is called continuously when the region changes, such as when a user is dragging the map.
588
+ * `isGesture` property indicates if the move was from the user (true) or an animation (false).
589
+ * **Note**: `isGesture` is supported by Google Maps only.
590
+ *
591
+ * @platform iOS: Supported
592
+ * @platform Android: Supported
593
+ */
594
+ onRegionChange?: RegionChangeEventHandler;
595
+ /**
596
+ * Callback that is called once when the region changes, such as when the user is done moving the map.
597
+ * `isGesture` property indicates if the move was from the user (true) or an animation (false).
598
+ * **Note**: `isGesture` is supported by Google Maps only.
599
+ *
600
+ * @platform iOS: Supported
601
+ * @platform Android: Supported
602
+ */
603
+ onRegionChangeComplete?: RegionChangeEventHandler;
604
+ /**
605
+ * Callback that is called when the underlying map figures our users current location
606
+ * (coordinate also includes isFromMockProvider value for Android API 18 and above).
607
+ * Make sure **showsUserLocation** is set to *true*.
608
+ *
609
+ * @platform iOS: Supported
610
+ * @platform Android: Supported
611
+ */
612
+ onUserLocationChange?: UserLocationChangeEventHandler;
613
+ /**
614
+ * Indicates how/when to affect padding with safe area insets
615
+ *
616
+ * @platform iOS: Google Maps only
617
+ * @platform Android: Not supported
618
+ */
619
+ paddingAdjustmentBehavior?: WithDefault<'always' | 'automatic' | 'never', 'never'>;
620
+ /**
621
+ * If `false` the user won't be able to adjust the camera’s pitch angle.
622
+ *
623
+ * @default true
624
+ * @platform iOS: Google Maps only
625
+ * @platform Android: Supported
626
+ */
627
+ pitchEnabled?: boolean;
628
+ /**
629
+ * The map framework to use.
630
+ * Either `"google"` for GoogleMaps, otherwise `undefined` to use the native map framework (`MapKit` in iOS and `GoogleMaps` in android).
631
+ *
632
+ * @platform iOS: Supported
633
+ * @platform Android: Supported
634
+ */
635
+ /**
636
+ * The region to be displayed by the map.
637
+ * The region is defined by the center coordinates and the span of coordinates to display.
638
+ *
639
+ * @platform iOS: Supported
640
+ * @platform Android: Supported
641
+ */
642
+ region?: Region;
643
+ /**
644
+ * If `false` the user won't be able to adjust the camera’s pitch angle.
645
+ *
646
+ * @default true
647
+ * @platform iOS: Google Maps only
648
+ * @platform Android: Supported
649
+ */
650
+ rotateEnabled?: boolean;
651
+ /**
652
+ * If `false` the map will stay centered while rotating or zooming.
653
+ *
654
+ * @default true
655
+ * @platform iOS: Google Maps only
656
+ * @platform Android: Supported
657
+ */
658
+ scrollDuringRotateOrZoomEnabled?: boolean;
659
+ /**
660
+ * If `false` the user won't be able to change the map region being displayed.
661
+ *
662
+ * @default true
663
+ * @platform iOS: Supported
664
+ * @platform Android: Supported
665
+ */
666
+ scrollEnabled?: boolean;
667
+ /**
668
+ * A Boolean indicating whether the map displays extruded building information.
669
+ *
670
+ * @default true
671
+ * @platform iOS: Not supported
672
+ * @platform Android: Supported
673
+ */
674
+ showsBuildings?: boolean;
675
+ /**
676
+ * If `false` compass won't be displayed on the map.
677
+ *
678
+ * @default true
679
+ * @platform iOS: Supported
680
+ * @platform Android: Supported
681
+ */
682
+ showsCompass?: boolean;
683
+ /**
684
+ * A Boolean indicating whether indoor level picker should be enabled.
685
+ *
686
+ * @default false
687
+ * @platform iOS: Google Maps only
688
+ * @platform Android: Supported
689
+ */
690
+ showsIndoorLevelPicker?: boolean;
691
+ /**
692
+ * A Boolean indicating whether indoor maps should be enabled.
693
+ *
694
+ * @default true
695
+ * @platform iOS: Google Maps only
696
+ * @platform Android: Supported
697
+ */
698
+ showsIndoors?: boolean;
699
+ /**
700
+ * If `false` hide the button to move map to the current user's location.
701
+ *
702
+ * @default true
703
+ * @platform iOS: Google Maps only
704
+ * @platform Android: Supported
705
+ */
706
+ showsMyLocationButton?: boolean;
707
+ /**
708
+ * If `false` points of interest won't be displayed on the map.
709
+ * TODO: DEPRECATED? Doesn't seem to do anything
710
+ *
711
+ * @default true
712
+ * @platform iOS: Maybe Apple Maps?
713
+ * @platform Android: Not supported
714
+ */
715
+ showsPointsOfInterest?: boolean;
716
+ /**
717
+ * A Boolean indicating whether the map shows scale information.
718
+ *
719
+ * @default true
720
+ * @platform iOS: Apple Maps only
721
+ * @platform Android: Not supported
722
+ */
723
+ showsScale?: boolean;
724
+ /**
725
+ * A Boolean value indicating whether the map displays traffic information.
726
+ * TODO: Look into android support
727
+ *
728
+ * @default false
729
+ * @platform iOS: Supported
730
+ * @platform Android: Not supported?
731
+ */
732
+ showsTraffic?: boolean;
733
+ /**
734
+ * If `true` the users location will be displayed on the map.
735
+ *
736
+ * This will cause iOS to ask for location permissions.
737
+ * For iOS see: [DOCS](https://github.com/react-native-maps/react-native-maps/blob/master/docs/installation.md#set-the-usage-description-property)
738
+ * @default false
739
+ * @platform iOS: Supported
740
+ * @platform Android: Supported
741
+ */
742
+ showsUserLocation?: boolean;
743
+ /**
744
+ * Sets the tint color of the map. (Changes the color of the position indicator)
745
+ *
746
+ * @default System Blue
747
+ * @platform iOS: Apple Maps only
748
+ * @platform Android: Not supported
749
+ */
750
+ tintColor?: ColorValue;
751
+ /**
752
+ * If `false` will hide 'Navigate' and 'Open in Maps' buttons on marker press
753
+ *
754
+ * @default true
755
+ * @platform iOS: Not supported
756
+ * @platform Android: Supported
757
+ */
758
+ toolbarEnabled?: boolean;
759
+ /**
760
+ * Sets the map to the style selected.
761
+ *
762
+ * @default System setting
763
+ * @platform iOS: Apple Maps only (iOS >= 13.0)
764
+ * @platform Android: Not supported
765
+ */
766
+ userInterfaceStyle?: WithDefault<'system' | 'light' | 'dark', 'system'>;
767
+ /**
768
+ * The title of the annotation for current user location.
769
+ *
770
+ * This only works if `showsUserLocation` is true.
771
+ *
772
+ * @default `My Location`
773
+ * @platform iOS: Apple Maps only
774
+ * @platform Android: Not supported
775
+ */
776
+ userLocationAnnotationTitle?: string;
777
+ /**
778
+ * If `true` clicking user location will show the default callout for userLocation annotation.
779
+ *
780
+ * @default false
781
+ * @platform iOS: Apple Maps only
782
+ * @platform Android: Not supported
783
+ */
784
+ userLocationCalloutEnabled?: boolean;
785
+ /**
786
+ * Fastest interval the application will actively acquire locations.
787
+ *
788
+ * See [Google APIs documentation](https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html)
789
+ *
790
+ * @default 5000
791
+ * @platform iOS: Not supported
792
+ * @platform Android: Supported
793
+ */
794
+ userLocationFastestInterval?: Int32;
795
+ /**
796
+ * Set power priority of user location tracking.
797
+ *
798
+ * See [Google APIs documentation](https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html)
799
+ *
800
+ * @default `high`
801
+ * @platform iOS: Not supported
802
+ * @platform Android: Supported
803
+ */
804
+ userLocationPriority?: WithDefault<'balanced' | 'high' | 'low' | 'passive', 'high'>;
805
+ /**
806
+ * Interval of user location updates in milliseconds.
807
+ *
808
+ * See [Google APIs documentation](https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html)
809
+ *
810
+ * @default 5000
811
+ * @platform iOS: Not supported
812
+ * @platform Android: Supported
813
+ */
814
+ userLocationUpdateInterval?: Int32;
815
+ /**
816
+ * If `false` the zoom control at the bottom right of the map won't be visible.
817
+ *
818
+ * @default true
819
+ * @platform iOS: Not supported
820
+ * @platform Android: Supported
821
+ */
822
+ zoomControlEnabled?: boolean;
823
+ /**
824
+ * If `false` the user won't be able to pinch/zoom the map.
825
+ *
826
+ * TODO: Why is the Android reactprop defaultvalue set to false?
827
+ *
828
+ * @default true
829
+ * @platform iOS: Supported
830
+ * @platform Android: Supported
831
+ */
832
+ zoomEnabled?: boolean;
833
+ /**
834
+ * If `false` the user won't be able to double tap to zoom the map.
835
+ * **Note:** But it will greatly decrease delay of tap gesture recognition.
836
+ *
837
+ * @default true
838
+ * @platform iOS: Google Maps only
839
+ * @platform Android: Not supported
840
+ */
841
+ zoomTapEnabled?: boolean;
842
+ /**
843
+ * Map camera distance limits. `minCenterCoordinateDistance` for minimum distance, `maxCenterCoordinateDistance` for maximum.
844
+ * `animated` for animated zoom changes.
845
+ * Takes precedence if conflicting with `minZoomLevel`, `maxZoomLevel`.
846
+ *
847
+ * @platform iOS: 13.0+
848
+ * @platform Android: Not supported
849
+ */
850
+ cameraZoomRange?: CameraZoomRange;
851
+ }
852
+ export interface NativeCommands {
853
+ animateToRegion: (viewRef: React.ElementRef<React.ComponentType>, regionJSON: string, duration: Int32) => void;
854
+ setCamera: (viewRef: React.ElementRef<React.ComponentType>, cameraJSON: string) => void;
855
+ animateCamera: (viewRef: React.ElementRef<React.ComponentType>, cameraJSON: string, duration: Int32) => void;
856
+ fitToElements: (viewRef: React.ElementRef<React.ComponentType>, edgePaddingJSON: string, animated: boolean) => void;
857
+ fitToSuppliedMarkers: (viewRef: React.ElementRef<React.ComponentType>, markersJSON: string, edgePaddingJSON: string, animated: boolean) => void;
858
+ fitToCoordinates: (viewRef: React.ElementRef<React.ComponentType>, coordinatesJSON: string, edgePaddingJSON: string, animated: boolean) => void;
859
+ }
860
+ export declare const Commands: NativeCommands;
861
+ declare const _default: HostComponent<MapFabricNativeProps>;
862
+ export default _default;