我正在使用react-native-maps
,使用这段代码会很久很久:
callLocation(that) {
navigator.geolocation.getCurrentPosition(
position => {
const currentLongitude = JSON.stringify(position.coords.longitude);
const currentLatitude = JSON.stringify(position.coords.latitude);
that.setState({ currentLongitude: currentLongitude });
that.setState({ currentLatitude: currentLatitude });
},
error => alert(error.message),
{ enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 }
);
that.watchID = navigator.geolocation.watchPosition(position => {
console.log(position);
const currentLongitude = JSON.stringify(position.coords.longitude);
const currentLatitude = JSON.stringify(position.coords.latitude);
that.setState({ currentLongitude: currentLongitude });
that.setState({ currentLatitude: currentLatitude });
});
}
这是我的地图视图代码:
<MapView
style={styles.map}
initialRegion={{
latitude: this.state.currentLatitude,
longitude: this.state.currentLongitude,
latitudeDelta: 0.0922,
longitudeDelta: 0.0421
}}
/>
在我的代码中粘贴此经纬度较长的代码时,出现以下错误:
答案 0 :(得分:2)
您的问题是,您要将坐标设为字符串,并且必须为双精度。
您不应该使用JSON.stringify
const currentLongitude = JSON.stringify(position.coords.longitude);
const currentLatitude = JSON.stringify(position.coords.latitude);
您应该改为
const currentLongitude = position.coords.longitude;
const currentLatitude = position.coords.latitude;
答案 1 :(得分:0)
当您的经纬度为String时,将其转换为float。
答案 2 :(得分:0)
const currentLongitude = position.coords.longitude;
const currentLatitude = position.coords.latitude;
我的问题已经通过使用上面的代码解决了
答案 3 :(得分:0)
没有比解析这样的坐标位置容易的事情了
{
latitude: parseFloat(myObj.latitude),
longitude: parseFloat(myObj.longitude)
}