@@ -16,6 +16,19 @@ import MapCircle from './MapCircle';
16
16
import MapCallout from './MapCallout' ;
17
17
import MapUrlTile from './MapUrlTile' ;
18
18
19
+ const MAP_TYPES = {
20
+ STANDARD : 'standard' ,
21
+ SATELLITE : 'satellite' ,
22
+ HYBRID : 'hybrid' ,
23
+ TERRAIN : 'terrain' ,
24
+ NONE : 'none' ,
25
+ } ;
26
+
27
+ const ANDROID_ONLY_MAP_TYPES = [
28
+ MAP_TYPES . TERRAIN ,
29
+ MAP_TYPES . NONE ,
30
+ ] ;
31
+
19
32
const viewConfig = {
20
33
uiViewClassName : 'AIRMap' ,
21
34
validAttributes : {
@@ -172,13 +185,7 @@ const propTypes = {
172
185
* - hybrid: satellite view with roads and points of interest overlayed
173
186
* - terrain: (Android only) topographic view
174
187
*/
175
- mapType : PropTypes . oneOf ( [
176
- 'standard' ,
177
- 'satellite' ,
178
- 'hybrid' ,
179
- 'terrain' ,
180
- 'none' ,
181
- ] ) ,
188
+ mapType : PropTypes . oneOf ( Object . values ( MAP_TYPES ) ) ,
182
189
183
190
/**
184
191
* The region to be displayed by the map.
@@ -452,8 +459,8 @@ class MapView extends React.Component {
452
459
onMapReady : this . _onMapReady ,
453
460
onLayout : this . _onLayout ,
454
461
} ;
455
- if ( Platform . OS === 'ios' && props . mapType === 'terrain' ) {
456
- props . mapType = 'standard' ;
462
+ if ( Platform . OS === 'ios' && ANDROID_ONLY_MAP_TYPES . includes ( props . mapType ) ) {
463
+ props . mapType = MAP_TYPES . STANDARD ;
457
464
}
458
465
props . handlePanDrag = ! ! props . onPanDrag ;
459
466
} else {
@@ -488,6 +495,8 @@ class MapView extends React.Component {
488
495
MapView . propTypes = propTypes ;
489
496
MapView . viewConfig = viewConfig ;
490
497
498
+ MapView . MAP_TYPES = MAP_TYPES ;
499
+
491
500
const AIRMap = requireNativeComponent ( 'AIRMap' , MapView , {
492
501
nativeOnly : {
493
502
onChange : true ,
0 commit comments