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

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 © <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, который появляетсяна изображении.Я считаю, что это должно быть какая-то ошибка, потому что он не может подобрать первый элемент, как показано на рисунке.
Спасибо