【问题标题】:Value for latitude cannot be cast from String to Double in react-native在 react-native 中,纬度值不能从 String 转换为 Double
【发布时间】:2020-10-19 23:27:53
【问题描述】:

我有 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 数据并将其显示在地图上 当我显示我得到一个错误问题 是:

纬度值不能从 String 转换为 Double in 反应原生

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

 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>
      );
    }

【问题讨论】:

    标签: reactjs react-native maps fetch native


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      你必须在状态中使用不带双引号"" 的 lat 或 lng

      例如:

      "lat": -6.2616031,

      不是"lat": "-6.2616031",

      【讨论】:

        【解决方案3】:

        mapview中传递给经纬度的值不能是字符串格式。

        示例:

        &lt;MapView style={{width:100%,height:"100%}} initialRegion={{ latitude : 11.610400, longitute: 76.083000, latitudeDelta:0.003, longitudeDelta:0.003 }} /&gt;

        【讨论】:

          猜你喜欢
          • 2022-01-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-10-20
          • 1970-01-01
          • 1970-01-01
          • 2013-11-10
          相关资源
          最近更新 更多