<form class="form-inline" role="search" accept-charset="UTF-8" action="<?php echo CONST_Website_BaseURL; ?>reverse.php">
<div class="form-group">
<input name="format" type="hidden" value="html">
+ <input name="prevmapzoom" type="hidden" value="">
<input name="lat" type="text" class="form-control input-sm" placeholder="latitude" value="<?php echo htmlspecialchars($_GET['lat']); ?>" >
<input name="lon" type="text" class="form-control input-sm" placeholder="longitude" value="<?php echo htmlspecialchars($_GET['lon']); ?>" >
</div>
<?php
$aNominatimMapInit = [
- 'zoom' => (isset($_GET['lat'])||$_GET['lat'])?16:NULL,
- 'lat' => isset($_GET['lat'])?htmlspecialchars($_GET['lat']):NULL,
- 'lon' => isset($_GET['lon'])?htmlspecialchars($_GET['lon']):NULL
+ 'prevmapzoom' => isset($_GET['prevmapzoom'])?htmlspecialchars($_GET['prevmapzoom']):NULL,
+ 'zoom' => isset($_GET['zoom'])?htmlspecialchars($_GET['zoom']):NULL,
+ 'lat' => isset($_GET['lat'] )?htmlspecialchars($_GET['lat']):NULL,
+ 'lon' => isset($_GET['lon'] )?htmlspecialchars($_GET['lon']):NULL
];
echo 'var nominatim_map_init = ' . json_encode($aNominatimMapInit, JSON_PRETTY_PRINT) . ';';
}).addTo(map);
if ( nominatim_map_init.lat ){
- map.setView([nominatim_map_init.lat || 0, nominatim_map_init.lon], nominatim_map_init.zoom);
+ map.setView([nominatim_map_init.lat || 0, nominatim_map_init.lon], (nominatim_map_init.prevmapzoom || nominatim_map_init.zoom) );
if ( is_reverse_search ){
// not really a market, but the .circle changes radius once you zoom in/out
var cm = L.circleMarker([nominatim_map_init.lat,nominatim_map_init.lon], { radius: 5, weight: 2, fillColor: '#ff7800', color: 'red', opacity: 0.75, clickable: false});
cm.addTo(map);
}
+
} else {
map.setView([0,0],2);
}
html_viewbox = "viewbox: " + map_viewbox_as_string();
- $('#map-position').html([html_center,html_viewbox,html_click,html_mouse].join('<br/>'));
+ html_zoom = "zoom: " + map.getZoom();
+
+ $('#map-position').html([html_center,html_zoom,html_viewbox,html_click,html_mouse].join('<br/>'));
$('input#use_viewbox').trigger('change');
}
else {
if ( is_reverse_search ){
// make sure the search coordinates are in the map view as well
- map.fitBounds([[result.lat,result.lon], [nominatim_map_init.lat,nominatim_map_init.lon]], {padding: [50,50]});
+ map.fitBounds([[result.lat,result.lon], [nominatim_map_init.lat,nominatim_map_init.lon]], {padding: [50,50], maxZoom: map.getZoom()});
// better, but causes a leaflet warning
// map.panInsideBounds([[result.lat,result.lon], [nominatim_map_init.lat,nominatim_map_init.lon]], {animate: false});
map.on('click', function(e){
$('form input[name=lat]').val( e.latlng.lat);
$('form input[name=lon]').val( e.latlng.lng);
+ if ( map.getZoom() > 2 ){ $('form input[name=prevmapzoom]').val( map.getZoom() ); }
$('form').submit();
});
}