zoomPrecision doesn't need to be higher-order
This commit is contained in:
parent
b5800b4c2f
commit
b28511faca
3 changed files with 18 additions and 22 deletions
|
@ -23,10 +23,7 @@
|
|||
var querystring = require('querystring-component');
|
||||
|
||||
function zoomPrecision(zoom) {
|
||||
var decimals = Math.pow(10, Math.floor(zoom/3));
|
||||
return function(x) {
|
||||
return Math.round(x * decimals) / decimals;
|
||||
};
|
||||
return Math.max(0, Math.ceil(Math.log(zoom) / Math.LN2));
|
||||
}
|
||||
|
||||
function normalBounds(bounds) {
|
||||
|
@ -62,18 +59,17 @@ function remoteEditHandler(bbox, select) {
|
|||
* view tab and various other links
|
||||
*/
|
||||
function updatelinks(loc, zoom, layers, bounds, object) {
|
||||
var toPrecision = zoomPrecision(zoom);
|
||||
var precision = zoomPrecision(zoom);
|
||||
bounds = normalBounds(bounds);
|
||||
var node;
|
||||
|
||||
var lat = toPrecision(loc.lat),
|
||||
lon = toPrecision(loc.lon || loc.lng);
|
||||
var lat = loc.lat.toFixed(precision),
|
||||
lon = (loc.lon || loc.lng).toFixed(precision);
|
||||
|
||||
if (bounds) {
|
||||
var minlon = toPrecision(bounds.getWest()),
|
||||
minlat = toPrecision(bounds.getSouth()),
|
||||
maxlon = toPrecision(bounds.getEast()),
|
||||
maxlat = toPrecision(bounds.getNorth());
|
||||
var minlon = bounds.getWest().toFixed(precision),
|
||||
minlat = bounds.getSouth().toFixed(precision),
|
||||
maxlon = bounds.getEast().toFixed(precision),
|
||||
maxlat = bounds.getNorth().toFixed(precision);
|
||||
}
|
||||
|
||||
$(".geolink").each(setGeolink);
|
||||
|
|
|
@ -150,12 +150,12 @@ function initializeExport(map) {
|
|||
}
|
||||
|
||||
function setBounds(bounds) {
|
||||
var toPrecision = zoomPrecision(map.getZoom());
|
||||
var precision = zoomPrecision(map.getZoom());
|
||||
|
||||
$("#minlon").val(toPrecision(bounds.getWest()));
|
||||
$("#minlat").val(toPrecision(bounds.getSouth()));
|
||||
$("#maxlon").val(toPrecision(bounds.getEast()));
|
||||
$("#maxlat").val(toPrecision(bounds.getNorth()));
|
||||
$("#minlon").val(bounds.getWest().toFixed(precision));
|
||||
$("#minlat").val(bounds.getSouth().toFixed(precision));
|
||||
$("#maxlon").val(bounds.getEast().toFixed(precision));
|
||||
$("#maxlat").val(bounds.getNorth().toFixed(precision));
|
||||
|
||||
mapnikSizeChanged();
|
||||
htmlUrlChanged();
|
||||
|
|
|
@ -31,17 +31,17 @@ L.extend(L.Map.prototype, {
|
|||
getUrl: function(marker) {
|
||||
var center = this.getCenter(),
|
||||
zoom = this.getZoom(),
|
||||
toZoom = zoomPrecision(zoom),
|
||||
precision = zoomPrecision(zoom),
|
||||
params = {
|
||||
lat: toZoom(center.lat),
|
||||
lon: toZoom(center.lng),
|
||||
lat: center.lat.toFixed(precision),
|
||||
lon: center.lng.toFixed(precision),
|
||||
zoom: zoom,
|
||||
layers: this.getLayersCode()
|
||||
};
|
||||
|
||||
if (marker && this.hasLayer(marker)) {
|
||||
params.mlat = toZoom(marker.getLatLng().lat);
|
||||
params.mlon = toZoom(marker.getLatLng().lng);
|
||||
params.mlat = marker.getLatLng().lat.toFixed(precision);
|
||||
params.mlon = marker.getLatLng().lng.toFixed(precision);
|
||||
}
|
||||
|
||||
return 'http://' + OSM.SERVER_URL + '/?' + querystring.stringify(params);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue