How to get the user location in react-native-mapbox-gl?

Viewed 6685

i'm using react-native-mapbox-gl to show the map in my react app, on page load it should show the location of the user like how the google maps shows, but it fails to show instead it will show some other region of the map,

Can someone help?

Thanks in advance.

here is the snippet

import { StyleSheet, View } from "react-native";
import MapboxGL from "@react-native-mapbox-gl/maps";

MapboxGL.setAccessToken("<YOUR_ACCESSTOKEN>");

const styles = StyleSheet.create({
  page: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: "#F5FCFF"
  },
  container: {
    height: 300,
    width: 300,
    backgroundColor: "tomato"
  },
  map: {
    flex: 1
  }
});

export default class App extends Component {
  componentDidMount() {
    MapboxGL.setTelemetryEnabled(false);
  }

  render() {
    return (
      <View style={styles.page}>
        <View style={styles.container}>
          <MapboxGL.MapView style={styles.map} />
          <MapboxGL.UserLocation />
        </View>
      </View>
    );
  }
}
3 Answers

You can pass children the MapboxGL.Mapview.

<MapboxGL.MapView style={styles.map}>
  <MapboxGL.UserLocation/>
</MapboxGL.MapView>

For me, it works(was showing the wrong location as of now):

<MapboxGL.MapView style={styles.map} zoomEnabled logoEnabled={false}>
  <MapboxGL.UserLocation visible={true} />
</MapboxGL.MapView>

enter image description here

For more information you can refer to official docs.

https://github.com/nitaliano/react-native-mapbox-gl/blob/master/docs/MapView.md https://github.com/rnmapbox/maps/blob/main/docs/UserLocation.md

P.S: MapboxGL.MapView has one props showUserLocation but it seems now working now, I also tried several other props as mentioned in docs they are also not working, look docs are not updated!!

Related