листовка карта от JSON - PullRequest
       14

листовка карта от JSON

0 голосов
/ 19 сентября 2018

При добавлении этих точек на карту json, которая находится на изображении, memso возвращает ошибку 'undefined', что я должен пропустить FOR?

enter image description here

Code.ts

import { Component,ViewChild, ElementRef } from '@angular/core';
import { IonicPage, NavController, NavParams, ViewController } from 'ionic-angular';
import { UrbsProvider } from '../../providers/urbs/urbs';
import { Geolocation } from '@ionic-native/geolocation';
import leaflet from 'leaflet';
import L from 'leaflet';
import 'rxjs/add/operator/map';


@IonicPage()
@Component({
  selector: 'page-infolinha',
  templateUrl: 'infolinha.html',
  providers: [
    UrbsProvider
  ]
})


export class InfolinhaPage {
  @ViewChild('map') mapContainer: ElementRef;
  public linhaid;
  public linha;
  public rota;
  map: any;
  storage: any;

  constructor( public navCtrl: NavController, private view: ViewController,public navParams: NavParams,private urbsProvider:UrbsProvider,private geolocation: Geolocation) {


  }

  closeModal() {
    this.view.dismiss();
  }

  ionViewDidLoad() {
    this.loadmap();
    this.getMarkers();
    this.addMarkers();
    this.linhaid = this.navParams.get("COD");
    this.urbsProvider.getLinhaDetalhes(this.linhaid).subscribe(
      data => {
      let retorno = (data as any);
      this.linha = retorno;
      console.log(retorno);
      }, error => {
      })
   }


   loadmap() {
    this.map = leaflet.map("map").fitWorld();
    leaflet.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
      attributions: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
      maxZoom: 18
    }).addTo(this.map);
    this.map.locate({
      setView: true,
      maxZoom: 10
    }).on('locationfound', (e) => {
      console.log('found you');
      })

  }


  getMarkers() {
    this.linhaid = this.navParams.get("COD");
    this.urbsProvider.getLinhaCoordenadas(this.linhaid).subscribe(
      data => {
        let retorno = (data as any);
        this.rota = retorno;

    });
  }


  addMarkers(){
    for (var i in this.rota) {
      var latlng = L.latLng({ lat: this.rota[i].LAT, lng: this.rota[i].LON });
    }
    var polyline = new L.Polyline([latlng], {
          color: 'red',
          weight: 5,
          opacity: 0.65
      });
      polyline.addTo(this.map);
  }


  }

Если вы вводите координаты вручную внутри массива, он работает нормально, но необходимо, чтобы карта отображалась в ответе json, который появляетсяна изображении.Я считаю, что это должно быть какая-то ошибка, потому что он не может подобрать первый элемент, как показано на рисунке.

Спасибо

...