X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/7d2ee0a1dcee1d44655dd55ccd54a93368d7f649..f8ad4c79a4c1880370a035be0c0286a9b4285a69:/app/assets/javascripts/osm.js.erb diff --git a/app/assets/javascripts/osm.js.erb b/app/assets/javascripts/osm.js.erb index 602d3af10..4eebbe871 100644 --- a/app/assets/javascripts/osm.js.erb +++ b/app/assets/javascripts/osm.js.erb @@ -190,13 +190,9 @@ OSM = { layers = args.layers || ""; } - center = center.wrap(); layers = layers.replace("M", ""); - var precision = OSM.zoomPrecision(zoom), - hash = "#map=" + zoom + - "/" + center.lat.toFixed(precision) + - "/" + center.lng.toFixed(precision); + let hash = "#map=" + [zoom, ...OSM.cropLocation(center, zoom)].join("/"); if (layers) { hash += "&layers=" + layers; @@ -211,11 +207,16 @@ OSM = { return Math.ceil(Math.log10(pixels / degrees)); }, + cropLocation: function (latLng, zoom) { + const precision = OSM.zoomPrecision(zoom), + wrapped = latLng.wrap(); + return [wrapped.lat, wrapped.lng].map(c => c.toFixed(precision)); + }, + locationCookie: function (map) { - var center = map.getCenter().wrap(), - zoom = map.getZoom(), - precision = OSM.zoomPrecision(zoom); - return [center.lng.toFixed(precision), center.lat.toFixed(precision), zoom, map.getLayersCode()].join("|"); + const zoom = map.getZoom(), + center = OSM.cropLocation(map.getCenter(), zoom).reverse(); + return [...center, zoom, map.getLayersCode()].join("|"); }, distance: function (latlng1, latlng2) {