diff --git a/Examples/UIExplorer/MapViewExample.js b/Examples/UIExplorer/MapViewExample.js
index 498a5f83df0d91..bd1173a83fea79 100644
--- a/Examples/UIExplorer/MapViewExample.js
+++ b/Examples/UIExplorer/MapViewExample.js
@@ -290,9 +290,15 @@ exports.examples = [
}
},
{
- title: 'Map shows user location',
+ title: 'showsUserLocation + followUserLocation',
render() {
- return ;
+ return (
+
+ );
}
},
{
diff --git a/Libraries/Components/MapView/MapView.js b/Libraries/Components/MapView/MapView.js
index 2ccb4b8cb4d541..ec25733039bef1 100644
--- a/Libraries/Components/MapView/MapView.js
+++ b/Libraries/Components/MapView/MapView.js
@@ -49,15 +49,22 @@ const MapView = React.createClass({
style: View.propTypes.style,
/**
- * If `true` the app will ask for the user's location and focus on it.
- * Default value is `false`.
+ * If `true` the app will ask for the user's location and display it on
+ * the map. Default value is `false`.
*
- * **NOTE**: You need to add NSLocationWhenInUseUsageDescription key in
- * Info.plist to enable geolocation, otherwise it is going
- * to *fail silently*!
+ * **NOTE**: on iOS, you need to add the `NSLocationWhenInUseUsageDescription`
+ * key in Info.plist to enable geolocation, otherwise it will fail silently.
*/
showsUserLocation: React.PropTypes.bool,
+ /**
+ * If `true` the map will follow the user's location whenever it changes.
+ * Note that this has no effect unless `showsUserLocation` is enabled.
+ * Default value is `true`.
+ * @platform ios
+ */
+ followUserLocation: React.PropTypes.bool,
+
/**
* If `false` points of interest won't be displayed on the map.
* Default value is `true`.
@@ -156,13 +163,11 @@ const MapView = React.createClass({
/**
* Whether the pin should be draggable or not
- * @platform ios
*/
draggable: React.PropTypes.bool,
/**
* Event that fires when the annotation drag state changes.
- * @platform ios
*/
onDragStateChange: React.PropTypes.func,
@@ -282,7 +287,7 @@ const MapView = React.createClass({
},
render: function() {
- let children = [], {annotations, overlays} = this.props;
+ let children = [], {annotations, overlays, followUserLocation} = this.props;
annotations = annotations && annotations.map((annotation: Object) => {
let {
id,
@@ -430,11 +435,17 @@ const MapView = React.createClass({
};
}
+ // followUserLocation defaults to true if showUserLocation is set
+ if (followUserLocation === undefined) {
+ followUserLocation = this.props.showUserLocation;
+ }
+
return (