纬度值不能在 react-native 中从字符串转换为双精度



i have json

{
"status": 200,
"error": false,
"driver": [
{
"id": "7",
"name": "Kevin",
"lat": "-6.2616031",
"lon": "106.8424822"
},
{
"id": "9",
"name": "jhon",
"lat": "-6.20032449",
"lon": "106.6372306"
},
}

在这里,我正在捕获或检索json数据并将其显示在地图上 当我显示我遇到一个错误问题时 是:

纬度值不能从字符串转换为双精度值 反应原生

错误在哪里? 这是我的代码

componentDidMount() {
fetch('https://example.com/myjson')
.then(res => res.json())
.then(data => {
this.setState({ data: data.driver })
})
.catch(console.error)
}
mapMarkers = () => {
return this.state.data.map((driver) => <MapView.Marker
key={driver.id}
coordinate={{ "latitude": driver.lat, "longitude": driver.lon }}
title={driver.name}
description={driver.division}
/>)
}
render() {
return (
<View style={styles.container}>
<View style={{ flex: 2 }}>

<MapView
style={{ flex: 1, width: window.width }} //window pake Dimensions
Region={{
latitude: 106.8424822,
longitude: -6.2616031,
latitudeDelta: 70,
longitudeDelta: 45
}} >
{this.mapMarkers()}
</MapView>
</View>
</View>
);
}

JSON 中纬度和经度数据的类型为字符串。在将它们传递给标记组件的坐标道具时,您可能必须将它们转换为双精度。那么你可以试试这个吗?

coordinate={{ "latitude": parseFloat(driver.lat), "longitude": parseFloat(driver.lon) }}

您必须在州中使用不带双引号""的纬度或液化天然气

例如:

"lat": -6.2616031,

"lat": "-6.2616031",

在 mapview 中传递给纬度和经度的值不得采用字符串格式。

例:

<MapView style={{width:100%,height:"100%}} initialRegion={{ latitude : 11.610400, longitute: 76.083000, latitudeDelta:0.003, longitudeDelta:0.003 }} />

最新更新