bugfix: invalid lat/lon values when dragging marker across wrapped boundry

refs AREDN->ticket:221

Change-Id: Id60213e72428c86f51b17c9c137785e340bca3eb
This commit is contained in:
Darryl Quinn 2017-03-19 14:55:13 -05:00 committed by K5DLQ
parent 8ee8fbefe0
commit 507ceed577
1 changed files with 16 additions and 12 deletions

View File

@ -224,14 +224,18 @@ if($parms{button_updatelocation})
{
# validate values
if($parms{latitude} =~ /^([-+]?\d{1,2}([.]\d+)?)$/ and $parms{longitude} =~ /^([-+]?\d{1,3}([.]\d+)?)$/) {
# delete/define file
unlink("/etc/latlon") if(-f "/etc/latlon");
$rcgood=open(my $ll, ">", "/etc/latlon");
push @errors, "Cannot open lat/lon file" unless $rcgood;
print $ll "$parms{latitude}\n";
print $ll "$parms{longitude}\n";
close($ll);
push @output, "Lat/lon updated.\n";
if($parms{latitude} >= -90 and $parms{latitude} <= 90 and $parms{longitude} >= -180 and $parms{longitude} <= 180) {
# delete/define file
unlink("/etc/latlon") if(-f "/etc/latlon");
$rcgood=open(my $ll, ">", "/etc/latlon");
push @errors, "Cannot open lat/lon file" unless $rcgood;
print $ll "$parms{latitude}\n";
print $ll "$parms{longitude}\n";
close($ll);
push @output, "Lat/lon updated.\n";
} else {
push @errors, "ERROR: Lat/lon values must be between -90/90 and -180/180, respectively.\n";
}
} else {
push @errors, "ERROR: Lat/lon format is decimal: (ex. 30.121456 or -95.911154)\n";
}
@ -965,10 +969,10 @@ print <<EOF;
var marker;
function onMapClick(e) {
marker= new L.marker(e.latlng,{draggable: true, icon: dotIcon});
marker= new L.marker(e.latlng.wrap(),{draggable: true, icon: dotIcon});
map.addLayer(marker);
document.getElementsByName('latitude')[0].value=e.latlng.lat.toFixed(6).toString();
document.getElementsByName('longitude')[0].value=e.latlng.lng.toFixed(6).toString();
document.getElementsByName('latitude')[0].value=e.latlng.wrap().lat.toFixed(6).toString();
document.getElementsByName('longitude')[0].value=e.latlng.wrap().lng.toFixed(6).toString();
map.off('click', onMapClick);
marker.on('drag', onMarkerDrag);
}
@ -987,7 +991,7 @@ EOF
print <<EOF;
function onMarkerDrag(e) {
var m = e.target;
var p = m.getLatLng();
var p = m.getLatLng().wrap();
document.getElementsByName('latitude')[0].value=p.lat.toFixed(6).toString();
document.getElementsByName('longitude')[0].value=p.lng.toFixed(6).toString();
}