Позвольте мне кратко объяснить, чего я хочу.У меня есть модуль, который содержит 2 страницы.Один предназначен для создания новой компании, а другой - для предварительного просмотра информации о компании + редактирования этой информации о компании.
Все работает отлично.Теперь, когда я щелкаю в своей таблице одну из этих компаний, она открывает «Изменить / IDOFORGANIZATIONHERE» и отображает всю информацию для выбранной организации (компании).
Теперь мне нужно реализовать функцию для карты Google, чтобыотображать местоположение компании на основе адреса компании, города, почтового индекса и страны.
Я успешно внедрил Карты Google.
this.gMapsService.getLatLan('London' )
.subscribe(
result => {
this.__zone.run(() => {
this.lat = result.lat();
this.lng = result.lng();
})
},
error => console.log(error),
() => console.log('Geocoding completed!')
);
В моем gMapsService у меня есть следующее
import { Injectable, NgZone } from '@angular/core';
import { GoogleMapsAPIWrapper } from '@agm/core';
import { MapsAPILoader } from '@agm/core';
import { Observable, Observer } from 'rxjs';
import {} from '@types/googlemaps';
declare var google: any;
@Injectable()
export class GMapsService extends GoogleMapsAPIWrapper{
constructor(private __loader: MapsAPILoader, private __zone: NgZone) {
super(__loader, __zone);
}
getLatLan(address) {
console.log('Getting Address - ', address);
let geocoder = new google.maps.Geocoder();
return Observable.create(observer => {
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
observer.next(results[0].geometry.location);
observer.complete();
} else {
console.log('Error - ', results, ' & Status - ', status);
observer.next({});
observer.complete();
}
});
})
}
}
Теперь, если вы посмотрите на первый фрагмент, на нем будет отображаться карта Google с центром Лондона, и это тоже отлично работает.
Теперь я хочу изменить эту строку Лондон на значение информации компании, например:
organization.address
organization.city
organization.postalcode
organization.countryname
Если я напишу это следующим образом, код this.gMapsService.getLatLan (this.address) или this.gMapsService.getLatLan (organization.address) успешно компилируется, но в консоли я вижу этот адрес, которыйпередаваемое значение «неопределено».
Однако мой адрес хорошо отображается в моей HTML-части сети, где написано
Address: {{organization ? organization.address : ''}}<br>
Теперь мне интересно, как превратить этот текст, который отображается после адреса: в строку, которую необходимо передать вместе с функцией getLatLan.
Я попытался сделать
let fulladdress = organization.address + organization...bla bla
и передает this.fulladdress, но он по-прежнему отображает этот адрес, почтовый индекс, город не определен
Любая помощь приветствуется.