2024-03-15 20:07:20 -04:00
|
|
|
import { Controller } from "@hotwired/stimulus"
|
|
|
|
|
import L from "leaflet"
|
|
|
|
|
|
|
|
|
|
// Connects to data-controller="maps"
|
|
|
|
|
export default class extends Controller {
|
|
|
|
|
static targets = ["container"]
|
|
|
|
|
|
|
|
|
|
connect() {
|
2024-03-16 16:31:07 -04:00
|
|
|
console.log("Map controller connected")
|
2024-03-15 20:07:20 -04:00
|
|
|
var markers = JSON.parse(this.element.dataset.coordinates)
|
2024-03-16 16:31:07 -04:00
|
|
|
var center = markers[0]
|
|
|
|
|
var center = (center === undefined) ? [52.516667, 13.383333] : center;
|
|
|
|
|
var map = L.map(this.containerTarget).setView(center, 14);
|
2024-03-15 20:07:20 -04:00
|
|
|
|
|
|
|
|
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
|
|
|
|
maxZoom: 19,
|
|
|
|
|
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
|
|
|
|
|
}).addTo(map);
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < markers.length; i++) {
|
|
|
|
|
|
|
|
|
|
var lat = markers[i][0];
|
|
|
|
|
var lon = markers[i][1];
|
|
|
|
|
|
|
|
|
|
L.marker([lat, lon]).addTo(map);
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-16 16:31:07 -04:00
|
|
|
// L.polyline(markers).addTo(map);
|
2024-03-15 20:07:20 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
disconnect() {
|
|
|
|
|
this.map.remove();
|
|
|
|
|
}
|
|
|
|
|
}
|