#javascript #angular #typescript #openlayers #openlayers-6
#javascript #angular #typescript #openlayers #openlayers-6
Вопрос:
Я пытаюсь отобразить очень простую карту в openlayers. У меня включена правильная таблица стилей, и я не понимаю, что не так. Как можно использовать очень простой компонент openlayers в Angular?
У меня действительно есть шаблон с элементом map, да. Я не думаю, что это какая-то тривиальная ошибка, но что я знаю.
import { Component, Input, OnInit, ViewChild } from '@angular/core';
import Map from 'ol/Map.js';
import View from 'ol/View.js';
import TileLayer from 'ol/layer/Tile.js';
import OSM from 'ol/source/OSM.js';
@Component({
selector: 'core-map',
templateUrl: './map.component.html',
styleUrls: ['./map.component.sass']
})
export class MapComponent implements OnInit {
constructor() { }
ngOnInit() {
var map = new Map({
layers: [
new TileLayer({
source: new OSM()
})
],
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
});
}
}
Комментарии:
1. Возможно, вам потребуется установить цель в AfterViewInit вместо ngOnInit, я думаю, причина, по которой это не работает, заключается в том, что в ngOnInit div, который должен отображать карту, не инициализирован, поэтому, если вы установите цель в ngOnInit, это не даст никакого эффекта. Все остальное выглядит нормально (Stackblitz: stackblitz.com/edit /… )
2. Это было смешно. Мне нужно было установить фиксированный размер в CSS для карты.
3. Рад, что вы поняли это: D
4. В моем случае мне нужно было установить дополнительные компоненты: npm install @types /ol