Я работаю с angular2-google-maps
и последней версией Angular2. Я пытаюсь преобразовать некоторые из компонентов локального компонента карты в службы в свой собственный файл maps.service.ts
. Например:Angular2 Не удается найти пространство имен 'google'
map.component.ts
getGeoLocation(lat: number, lng: number) {
if (navigator.geolocation) {
let geocoder = new google.maps.Geocoder();
let latlng = new google.maps.LatLng(lat, lng);
let request = { latLng: latlng };
geocoder.geocode(request, (results, status) => {
if (status == google.maps.GeocoderStatus.OK) {
let result = results[0];
if (result != null) {
this.fillInputs(result.formatted_address);
} else {
alert("No address available!");
}
}
});
}
}
во что-то вроде: maps.service.ts
getGeoLocation(lat: number, lng: number): Observable<google.maps.GeocoderResult[]> {
let geocoder = new google.maps.Geocoder();
let latlng = new google.maps.LatLng(lat, lng);
let request = { latLng: latlng };
return new Observable((observer: Observer<google.maps.GeocoderResult[]>) => {
geocoder.geocode({ request }, (
(results: google.maps.GeocoderResult[], status: google.maps.GeocoderStatus) => {
if (status == google.maps.GeocoderStatus.OK) {
observer.next(results);
observer.complete();
} else {
console.log('Geocoding service failed due to: ' +status);
observer.error(status);
}
}
));
});
}
вопрос я получаю, что google
переменная не распознается, когда я пытаюсь использовать Observer<google.maps.GeocoderResult[]>
. У меня есть declare var google: any;
вне класса обслуживания.
Переменная работает в моем map.componenet.ts
, но не распознается в maps.service.ts
.
Где вы импортируете 'google'? –
@ GünterZöchbauer Within AppModule: 'AgmCoreModule.forRoot ({ apiKey: '--key--', библиотека: [ 'место'] })' – Milo
Вам нужен импорт машинописи, а что обеспечивает 'google'. Кажется, вы скопировали код откуда-то. Не могли бы вы разместить ссылку? –