Вам необходимо расширить управление Leaflet во время прослушивания события mousemove:
const Coordinates = L.Control.extend({
onAdd: map => {
const container = L.DomUtil.create("div");
map.addEventListener("mousemove", e => {
container.innerHTML = `
<h2>Latitude is
${e.latlng.lat.toFixed(4)} <br>
and Longitude is ${e.latlng.lng.toFixed(4)}
</h2>
`;
});
return container;
}
});
map.addControl(new Coordinates({ position: "bottomleft" }));
Demo
Обратите внимание, что Angular 7 используется вместо 6
Обновление :
Второй способ - использовать внешнюю библиотеку Leaflet.MousePosition и интегрировать ее с Angular
Просто установите библиотеку, импортируйте ее, добавьте соответствующуюcss & используйте эту строку кода внутри ngOnInit
для создания экземпляра mousePosition.
...
import * as L from "leaflet";
import "leaflet-mouse-position";
ngOnInit() {
const map = L.map("map").setView([51.505, -0.09], 13);
...
L.control.mousePosition().addTo(map);
}
и на styles.css добавить
.leaflet-container .leaflet-control-mouseposition {
background-color: rgba(255, 255, 255, 0.7);
box-shadow: 0 0 5px #bbb;
padding: 0 5px;
margin: 0;
color: #333;
font: 11px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
}
Альтернативный метод demo