0
我有一個角度2應用程序,我整合了谷歌地圖。 我有兩個geojson文件,我從服務器獲取並需要在地圖上顯示。這些文件包含每個功能的屬性顏色。如何確保geojson文件已正確加載?
我在獲取文件後動態地包含顏色。
在我的地圖組件我有以下幾點:
ngOnInit() {
this.subscription = this.service.loadGeoJson().subscribe(() => this.geoJsonInit());
}
ngOnDestroy() { this.subscription.unsubscribe(); }
private geoJsonInit() {
Promise.resolve(dashboardMapService.getAllGeoJsonData().then(geoData => this.geoJsonData.push(...geoData))).then(() => dashboardMapService.loadAPI().then(res => this.onMapsReady()));
}
在地圖服務,我有以下幾點:
const GEO_JSON: Array<Object> = [];
let GeoJsonPromise = Promise.resolve(GEO_JSON);
//rest of service
static getAllGeoJsonData() {
return GeoJsonPromise;
}
loadGeoJson(): Observable<any> {
if (GEO_JSON && GEO_JSON.length > 0) return Observable.of(GEO_JSON);
else
return Observable.forkJoin([ this.loadDistrictsGeoJson(), this.loadSubDistrictsGeoJson() ]).switchMap(d => this.GeoJsonInit(d));
}
我現在面臨的問題是,在最初的負載時,多邊形顯示在地圖上但沒有顏色。 但如果我切換路線並返回到地圖路線,則會顯示顏色。
在控制檯中。 feature.getProperty('color')最初顯示爲undefined, ,但是在從地圖路線來回移動後,它們被定義。
所以我假設傳遞的geojsons文件最初不包含顏色。
如何確保geojsons在加載到地圖前正確提取?