Blame view
src/main/kotlin/map/MapDisplayer.kt
3.9 KB
53f01ecc3
|
1 |
package map |
2bbe36a1b
|
2 |
import application.model.observableVessel |
53f01ecc3
|
3 |
|
9e952e84e
|
4 5 6 |
fun clearMap(map: LeafletMapView) { clearMapCanvas(map) clearMapCluster(map) |
79b001037
|
7 |
clearHeatMap(map) |
9e952e84e
|
8 9 10 11 12 |
} fun clearMapCluster(map: LeafletMapView) { map.execScript( """ |
79b001037
|
13 14 |
|myMap.removeLayer(markerClusters); |var markerClusters = L.markerClusterGroup({spiderfyOnMaxZoom: false, disableClusteringAtZoom: 10}); |
9e952e84e
|
15 16 17 |
""".trimMargin() ) } |
43370abfe
|
18 |
fun clearMapCanvas(map: LeafletMapView) { |
9e952e84e
|
19 20 |
map.execScript( """ |
79b001037
|
21 |
|myRenderer.removeFrom(myMap); |
43370abfe
|
22 |
|var myRenderer = L.canvas({ padding: 0.5 }); |
9e952e84e
|
23 24 |
""".trimMargin() ) |
53f01ecc3
|
25 |
} |
79b001037
|
26 27 28 29 30 31 32 33 |
fun clearHeatMap(map: LeafletMapView) { map.execScript( """ |heatLayer.removeFrom(myMap); |var heatLayer = L.heatLayer([]).addTo(myMap); """.trimMargin() ) } |
9e952e84e
|
34 35 |
fun displayAllMessageOnMap(map: LeafletMapView) { clearMap(map) |
2bbe36a1b
|
36 |
observableVessel.vessels.forEach { (_, value) -> |
53f01ecc3
|
37 |
value.messages.forEach { (_, message) -> |
513c0341c
|
38 |
map.execScript("L.circleMarker([${message.latitude.value}, ${message.longitude.value}], {renderer: myRenderer, radius: 0.01, color: '#${message.getHexColorStroke()}'}).addTo(myMap)") |
53f01ecc3
|
39 40 |
} } |
2bbe36a1b
|
41 |
} |
f39d90e60
|
42 |
fun displayAllMessageOnMap(map: LeafletMapView, selectedMMSI: String) { |
9e952e84e
|
43 |
clearMap(map) |
2bbe36a1b
|
44 45 |
observableVessel.vessels.forEach { (_, value) -> value.messages.forEach { (_, message) -> |
513c0341c
|
46 47 |
if (selectedMMSI == message.mmsi.value) { map.execScript("L.circleMarker([${message.latitude.value}, ${message.longitude.value}], {renderer: myRenderer, radius: 2, color: '#ff4040'}).addTo(myMap)") |
79b001037
|
48 |
} else { |
513c0341c
|
49 |
map.execScript("L.circleMarker([${message.latitude.value}, ${message.longitude.value}], {renderer: myRenderer, radius: 0.01, color: '#${message.getHexColorStroke()}'}).addTo(myMap)") |
79b001037
|
50 51 52 53 54 55 56 57 58 |
} } } } fun displayClusterMessageOnMap(map: LeafletMapView) { clearMap(map) observableVessel.vessels.forEach { (_, value) -> value.messages.forEach { (_, message) -> |
513c0341c
|
59 |
map.execScript("markerClusters.addLayer(L.circleMarker([${message.latitude.value}, ${message.longitude.value}], {renderer: myRenderer, radius: 0.01, color: '#${message.getHexColorStroke()}'}));") |
79b001037
|
60 61 62 63 |
} } map.execScript("myMap.addLayer(markerClusters);") } |
f39d90e60
|
64 |
fun displayClusterMessageOnMap(map: LeafletMapView, selectedMMSI: String) { |
79b001037
|
65 66 67 |
clearMap(map) observableVessel.vessels.forEach { (_, value) -> value.messages.forEach { (_, message) -> |
513c0341c
|
68 69 |
if (selectedMMSI == message.mmsi.value) { map.execScript("L.circleMarker([${message.latitude.value}, ${message.longitude.value}], {renderer: myRenderer, radius: 2, color: '#ff4040'}).addTo(myMap);") |
79b001037
|
70 |
} else { |
513c0341c
|
71 |
map.execScript("markerClusters.addLayer(L.circleMarker([${message.latitude.value}, ${message.longitude.value}], {renderer: myRenderer, radius: 0.01, color: '#${message.getHexColorStroke()}'}));") |
79b001037
|
72 73 74 75 76 77 78 79 80 81 |
} } } map.execScript("myMap.addLayer(markerClusters);") } fun displayHeatMapOnMap(map: LeafletMapView) { clearMap(map) observableVessel.vessels.forEach { (_, value) -> value.messages.forEach { (_, message) -> |
513c0341c
|
82 |
map.execScript("heatLayer.addLatLng([${message.latitude.value}, ${message.longitude.value}]);") |
79b001037
|
83 84 |
} } |
79b001037
|
85 |
} |
f39d90e60
|
86 |
fun displayHeatMapOnMap(map: LeafletMapView, selectedMMSI: String) { |
79b001037
|
87 88 89 |
clearMap(map) observableVessel.vessels.forEach { (_, value) -> value.messages.forEach { (_, message) -> |
513c0341c
|
90 91 |
if (selectedMMSI == message.mmsi.value) { map.execScript("L.circleMarker([${message.latitude.value}, ${message.longitude.value}], {renderer: myRenderer, radius: 2, color: '#ff4040'}).addTo(myMap);") |
9e952e84e
|
92 |
} else { |
513c0341c
|
93 |
map.execScript("heatLayer.addLatLng([${message.latitude.value}, ${message.longitude.value}]);") |
2bbe36a1b
|
94 95 96 |
} } } |
79b001037
|
97 |
map.execScript("myMap.addLayer(markerClusters);") |
53f01ecc3
|
98 |
} |