[DXCC Mao] Fixed so that worked/confirmed/not worked works with map

这个提交包含在:
Andreas 2022-11-22 17:51:31 +01:00
父节点 1b563b7eb0
当前提交 06028992aa
共有 2 个文件被更改,包括 69 次插入47 次删除

查看文件

@ -644,7 +644,7 @@ class Awards extends CI_Controller {
} }
$newdxcc[$i]['lat'] = $dxcc->lat; $newdxcc[$i]['lat'] = $dxcc->lat;
$newdxcc[$i]['long'] = $dxcc->long; $newdxcc[$i]['long'] = $dxcc->long;
$newdxcc[$i++]['status'] = $this->returnStatus($dxcc_array[$dxcc->adif]); $newdxcc[$i++]['status'] = isset($dxcc_array[$dxcc->adif]) ? $this->returnStatus($dxcc_array[$dxcc->adif]) : 'x';
} }
header('Content-Type: application/json'); header('Content-Type: application/json');

查看文件

@ -23,7 +23,7 @@ function load_dxcc_map() {
Antarctica: +$('#Antarctica').prop('checked'), Antarctica: +$('#Antarctica').prop('checked'),
}, },
success: function(data) { success: function(data) {
load_dxcc_map2(data); load_dxcc_map2(data, worked, confirmed, notworked);
}, },
error: function() { error: function() {
@ -31,7 +31,7 @@ function load_dxcc_map() {
}); });
} }
function load_dxcc_map2(data) { function load_dxcc_map2(data, worked, confirmed, notworked) {
// If map is already initialized // If map is already initialized
var container = L.DomUtil.get('dxccmap'); var container = L.DomUtil.get('dxccmap');
@ -51,61 +51,55 @@ function load_dxcc_map2(data) {
} }
).addTo(map); ).addTo(map);
var notworked = data.length; var notworkedcount = data.length;
var confirmed = 0; var confirmedcount = 0;
var workednotconfirmed = 0; var workednotconfirmedcount = 0;
for (var i = 0; i < data.length; i++) { for (var i = 0; i < data.length; i++) {
var D = data[i]; var D = data[i];
var mapColor = 'red'; if (D['status'] != 'x') {
var mapColor = 'red';
if (D['status'] == 'C') {
mapColor = 'green'; if (D['status'] == 'C') {
confirmed++; mapColor = 'green';
notworked--; if (confirmed != '0') {
} addMarker(L, D, mapColor, map);
if (D['status'] == 'W') { confirmedcount++;
mapColor = 'orange'; notworkedcount--;
workednotconfirmed++; }
notworked--;
}
const markerHtmlStyles = `
background-color: ${mapColor};
width: 1rem;
height: 1rem;
display: block;
position: relative;
border-radius: 3rem 3rem 0;
transform: rotate(45deg);
border: 1px solid #FFFFFF`
const icon = L.divIcon({
className: "my-custom-pin",
iconAnchor: [0, 24],
labelAnchor: [-6, 0],
popupAnchor: [0, -36],
html: `<span style="${markerHtmlStyles}" />`
})
L.marker(
[D['lat'], D['long']], {
icon: icon,
adif: D['adif'],
title: D['prefix'] + ' - ' + D['name'],
} }
).addTo(map).on('click', onClick); if (D['status'] == 'W') {
mapColor = 'orange';
if (worked != '0') {
addMarker(L, D, mapColor, map);
workednotconfirmedcount++;
notworkedcount--;
}
}
// Make a check here and hide what I don't want to show
if (notworked != '0') {
if (mapColor == 'red') {
addMarker(L, D, mapColor, map);
}
}
}
} }
/*Legend specific*/ /*Legend specific*/
var legend = L.control({ position: "topright" }); var legend = L.control({ position: "topright" });
if (notworked.checked == false) {
notworkedcount = 0;
}
legend.onAdd = function(map) { legend.onAdd = function(map) {
var div = L.DomUtil.create("div", "legend"); var div = L.DomUtil.create("div", "legend");
div.innerHTML += "<h4>Colors</h4>"; div.innerHTML += "<h4>Colors</h4>";
div.innerHTML += '<i style="background: green"></i><span>Confirmed ('+confirmed+')</span><br>'; div.innerHTML += '<i style="background: green"></i><span>Confirmed ('+confirmedcount+')</span><br>';
div.innerHTML += '<i style="background: orange"></i><span>Worked not confirmed ('+workednotconfirmed+')</span><br>'; div.innerHTML += '<i style="background: orange"></i><span>Worked not confirmed ('+workednotconfirmedcount+')</span><br>';
div.innerHTML += '<i style="background: red"></i><span>Not worked ('+notworked+')</span><br>'; div.innerHTML += '<i style="background: red"></i><span>Not worked ('+notworkedcount+')</span><br>';
return div; return div;
}; };
@ -114,6 +108,34 @@ function load_dxcc_map2(data) {
map.setView([20, 0], 2); map.setView([20, 0], 2);
} }
function addMarker(L, D, mapColor, map) {
const markerHtmlStyles = `
background-color: ${mapColor};
width: 1rem;
height: 1rem;
display: block;
position: relative;
border-radius: 3rem 3rem 0;
transform: rotate(45deg);
border: 1px solid #FFFFFF`
const icon = L.divIcon({
className: "my-custom-pin",
iconAnchor: [0, 24],
labelAnchor: [-6, 0],
popupAnchor: [0, -36],
html: `<span style="${markerHtmlStyles}" />`
})
L.marker(
[D['lat'], D['long']], {
icon: icon,
adif: D['adif'],
title: D['prefix'] + ' - ' + D['name'],
}
).addTo(map).on('click', onClick);
}
function onClick(e) { function onClick(e) {
var marker = e.target; var marker = e.target;
displayContacts(marker.options.adif, $('#band2').val(), $('#mode').val(), 'DXCC2'); displayContacts(marker.options.adif, $('#band2').val(), $('#mode').val(), 'DXCC2');