我最近开始研究react-native地图,现在我正试图访问react-native-maps,原因是我单击地图的任何地方都应该给我坐标。我安装了react-native-map并尝试使用以下方法
navigator.geolocation.getCurrentPosition((position) => {
我遇到了错误。
E | ReactNativeJS ▶︎ TypeError: undefined is not an object (evaluating 'navigator.geolocation.getCurrentPosition') │ │ This error is located at: │ in App (at renderApplication.js:40) │ in RCTView (at View.js:35) │ in View (at AppContainer.js:98) │ in RCTView (at View.js:35) │ in View (at AppContainer.js:115) └ in AppContainer (at renderApplication.js:39)
我的代码看起来像这样。
componentDidMount() {
navigator.geolocation.getCurrentPosition((position) => {
var lat = parseFloat(position.coords.latitude)
var long = parseFloat(position.coords.longitude)
var initialRegion = {
latitude: lat,
longitude: long,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA,
}
this.setState({initialPosition: initialRegion})
},
(error) => alert(JSON.stringify(error)),
{enableHighAccuracy: true, timeout: 20000});
}
我也尝试了其他方法,例如
this.watchID = navigator.geolocation.watchPosition((position) => {
和
navigator.geolocation.clearWatch(this.watchID);
如何解决此问题并使这些方法在react-native-maps中起作用
我正在使用import MapView from 'react-native-maps';
此导入
答案 0 :(得分:1)
我不确定这是否是您要寻找的答案,但是如果您使用react-native-community中的react-native-geolocation库没有任何问题,则可以轻松地遵循example。请不要忘记在这样的AndroidManifest.xml文件中添加权限-
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
您还需要在清单文件中添加元数据-
<meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY"/>
您可以使用Google API控制台轻松生成API密钥