package map import application.model.observableVessel fun clearMap(map: LeafletMapView) { clearMapCanvas(map) clearMapCluster(map) } fun clearMapCluster(map: LeafletMapView) { map.execScript( """ |myMap.removeLayer(markerClusters) |var markerClusters = L.markerClusterGroup({spiderfyOnMaxZoom: false, disableClusteringAtZoom: 9}); """.trimMargin() ) } fun clearMapCanvas(map: LeafletMapView) { map.execScript( """ |myRenderer.removeFrom(myMap) |var myRenderer = L.canvas({ padding: 0.5 }); """.trimMargin() ) } fun displayAllMessageOnMap(map: LeafletMapView) { clearMap(map) observableVessel.vessels.forEach { (_, value) -> value.messages.forEach { (_, message) -> map.execScript("L.circleMarker([${message.latitude}, ${message.longitude}], {renderer: myRenderer, radius: 0.01, color: '#${message.getHexColor()}'}).addTo(myMap)") } } } fun displayAllMessageOnMap(map: LeafletMapView, selectedMMSI: Int) { clearMap(map) observableVessel.vessels.forEach { (_, value) -> value.messages.forEach { (_, message) -> if (selectedMMSI == message.mmsi) { map.execScript("L.circleMarker([${message.latitude}, ${message.longitude}], {renderer: myRenderer, radius: 2, color: '#ff001e'}).addTo(myMap)") } else { map.execScript("L.circleMarker([${message.latitude}, ${message.longitude}], {renderer: myRenderer, radius: 0.01, color: '#${message.getHexColor()}'}).addTo(myMap)") } } } }