Итак, я сделал карту с точками парковки. Теперь я хотел бы добавить функцию щелчка к функциям, чтобы при нажатии на нее отображалось всплывающее окно с данными этой парковки.
Я искал в Интернете, как это сделать, но не могу найти никакой информации о том, как добавить событие щелчка к объекту, все, что я могу найти, это как добавить событие щелчка ко всей карте. Я также искал документы OpenLayers, но там тоже не много.
export class MapComponent implements OnInit {
map;
testp;
vectorSource;
vectorLayer;
rasterLayer;
//features: Feature[];
constructor(
private _pds: ParkingDataService
) { }
ngOnInit(): void {
let parkingdata = new Array();
this._pds.allParkings$.subscribe((parkings: Parking[])=>{
parkings.forEach(parking => {
let ftre: Feature = new Feature({
geometry: new Point(fromLonLat([parking.longtitude, parking.latitude]))
});
ftre.setStyle(new Style({
image: new Icon(({
color: '#8959A8',
crossOrigin: 'anonymous',
src: 'assets/park.svg',
imgSize: [25, 25]
}))
}));
parkingdata.push(ftre)
});
this.vectorSource = new VectorSource({
features: parkingdata
});
this.vectorLayer = new VectorLayer({
source: this.vectorSource
});
this.initializeMap();
})
console.log(parkingdata)
}
initializeMap(){
this.map = new Map({
target: 'map',
layers: [ new TileLayer({
source: new OSM()
}), this.vectorLayer ],
view: new View({
center: fromLonLat([3.7219431, 51.048919]),
zoom: 15,
})
});
}
}