找不到类型为“数字”的其他支持对象“ 33.265625”

时间:2019-04-08 06:23:48

标签: arrays angular google-maps ionic4

我有一个使用Google地图的Ionic应用程序。我正在尝试从数据json api获取经纬度和经度,然后将该数据json api将该数据注入到Google Maps折线中。提取数据json api可以正常工作,没有问题,但是当我将对象放入Google Maps时得到错误Error: Cannot find a differ supporting object '33.265625' of type 'number'. NgFor only supports binding to Iterables such as Arrays.,请使用forEach在数组中移动。

我的代码:

 async getmarker(){
    this.http.get('/v1/flightjson?flightId=201',{},{})
    .then( data=>{

      // this.latitude = JSON.parse(data.data).result.response.data.flight.track.latitude
      // this.longitude = JSON.parse(data.data).result.response.data.flight.track

      for(let datas of JSON.parse(data.data).result.response.data.flight['track']) {
        this.longitude = datas.longitude
        this.latitude  = datas.latitude

        console.log(this.longitude)
        // Do something.
      }



    })

  }

  loadMap() {
    let AIR_PORTS = [
      this.latitude,
      this.longitude
    ];

    this.map = GoogleMaps.create('map_canvas');

    let polyline: Polyline = this.map.addPolylineSync({
      points: AIR_PORTS,
      color: '#AA00FF',
      width: 10,
      geodesic: true,
      clickable: true  // clickable = false in default
    });

    polyline.on(GoogleMapsEvent.POLYLINE_CLICK).subscribe((params: any) => {
      let position: LatLng = <LatLng>params[0];

      let marker: Marker = this.map.addMarkerSync({
        position: position,
        title: position.toUrlValue(),
        disableAutoPan: true
      });
      marker.showInfoWindow();
    });
  }

my data json url

html

  <div id="map_canvas"></div>

1 个答案:

答案 0 :(得分:-1)

for(let datas of JSON.parse(data.data).result.response.data.flight['track']) {
    this.longitude = datas.longitude
    this.latitude  = datas.latitude
}

在上面的for循环中,我假设this.longitudethis.latitude将是数组。 您应该在pushthis.longitude中放置this.latitude个元素(如下所示),而不是替换先前的值。

this.longitude.push(datas.longitude);
this.latitude.push(datas.latitude);

您可能正在使用这些变量遍历地图上的不同点,因为它们是纯数字,ngFor将引发错误,指出ngFor中的内容应为iterableArrayiterable,而number不是。