caprigis/webgis/js/controllers/marker_controller.js

44 lines
1.0 KiB
JavaScript

import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
static targets = ['coords'];
END_ZOOM = 20;
mapAnimate = {
animate: true,
duration: 1,
easeLinearity: 0.25
};
go(event) {
let map = window.LMap;
const coords = event.currentTarget.getAttribute('data-coords').split(' ');
map.setView(
coords,
this.END_ZOOM,
this.mapAnimate
);
let marker = this.getMarker(map, coords);
marker.openTooltip();
}
getMarker(map, coords) {
let marker;
map.eachLayer(l => {
if (l instanceof L.Marker) {
const latLng = l.getLatLng();
const lat = latLng['lat'];
const lng = latLng['lng'];
if (lat === Number(coords[0]) && lng === Number(coords[1])) {
marker = l;
return;
}
}
});
return marker;
}
}