X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/72d78db168e6ee52d53c5ccbb5adae1402186465..118347444f0564d427b62535a953401549063303:/app/assets/javascripts/leaflet.map.js
diff --git a/app/assets/javascripts/leaflet.map.js b/app/assets/javascripts/leaflet.map.js
index ffb9218ba..797a57e20 100644
--- a/app/assets/javascripts/leaflet.map.js
+++ b/app/assets/javascripts/leaflet.map.js
@@ -1,3 +1,5 @@
+//= require querystring
+
L.extend(L.LatLngBounds.prototype, {
getSize: function () {
return (this._northEast.lat - this._southWest.lat) *
@@ -13,9 +15,9 @@ L.OSM.Map = L.Map.extend({
initialize: function (id, options) {
L.Map.prototype.initialize.call(this, id, options);
- var copyright = I18n.t('javascripts.map.copyright', {copyright_url: '/copyright'});
- var donate = I18n.t('javascripts.map.donate_link_text', {donate_url: 'https://donate.openstreetmap.org'});
- var terms = I18n.t('javascripts.map.terms', {terms_url: 'https://wiki.osmfoundation.org/wiki/Terms_of_Use'});
+ var copyright = I18n.t("javascripts.map.copyright", { copyright_url: "/copyright" });
+ var donate = I18n.t("javascripts.map.donate_link_text", { donate_url: "https://donate.openstreetmap.org" });
+ var terms = I18n.t("javascripts.map.terms", { terms_url: "https://wiki.osmfoundation.org/wiki/Terms_of_Use" });
this.baseLayers = [];
@@ -28,7 +30,7 @@ L.OSM.Map = L.Map.extend({
if (OSM.THUNDERFOREST_KEY) {
this.baseLayers.push(new L.OSM.CycleMap({
- attribution: copyright + ". Tiles courtesy of Andy Allan" + ". " + terms,
+ attribution: copyright + ". Tiles courtesy of Andy Allan. " + terms,
apikey: OSM.THUNDERFOREST_KEY,
code: "C",
keyid: "cyclemap",
@@ -36,7 +38,7 @@ L.OSM.Map = L.Map.extend({
}));
this.baseLayers.push(new L.OSM.TransportMap({
- attribution: copyright + ". Tiles courtesy of Andy Allan" + ". " + terms,
+ attribution: copyright + ". Tiles courtesy of Andy Allan. " + terms,
apikey: OSM.THUNDERFOREST_KEY,
code: "T",
keyid: "transportmap",
@@ -45,7 +47,7 @@ L.OSM.Map = L.Map.extend({
}
this.baseLayers.push(new L.OSM.HOT({
- attribution: copyright + ". Tiles style by Humanitarian OpenStreetMap Team" + " hosted by OpenStreetMap France" + ". " + terms,
+ attribution: copyright + ". Tiles style by Humanitarian OpenStreetMap Team hosted by OpenStreetMap France. " + terms,
code: "H",
keyid: "hot",
name: I18n.t("javascripts.map.base.hot")
@@ -71,11 +73,11 @@ L.OSM.Map = L.Map.extend({
},
updateLayers: function (layerParam) {
- layerParam = layerParam || "M";
- var layersAdded = "";
+ var layers = layerParam || "M",
+ layersAdded = "";
for (var i = this.baseLayers.length - 1; i >= 0; i--) {
- if (layerParam.indexOf(this.baseLayers[i].options.code) >= 0) {
+ if (layers.indexOf(this.baseLayers[i].options.code) >= 0) {
this.addLayer(this.baseLayers[i]);
layersAdded = layersAdded + this.baseLayers[i].options.code;
} else if (i === 0 && layersAdded === "") {
@@ -114,9 +116,10 @@ L.OSM.Map = L.Map.extend({
params.mlon = latLng.lng.toFixed(precision);
}
- var url = window.location.protocol + "//" + OSM.SERVER_URL + "/",
- query = querystring.stringify(params),
- hash = OSM.formatHash(this);
+ var querystring = require("querystring-component"),
+ url = window.location.protocol + "//" + OSM.SERVER_URL + "/",
+ query = querystring.stringify(params),
+ hash = OSM.formatHash(this);
if (query) url += "?" + query;
if (hash) url += hash;
@@ -126,19 +129,19 @@ L.OSM.Map = L.Map.extend({
getShortUrl: function (marker) {
var zoom = this.getZoom(),
- latLng = marker && this.hasLayer(marker) ? marker.getLatLng().wrap() : this.getCenter().wrap(),
- str = window.location.hostname.match(/^www\.openstreetmap\.org/i) ?
- window.location.protocol + "//osm.org/go/" :
- window.location.protocol + "//" + window.location.hostname + "/go/",
- char_array = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_~",
- x = Math.round((latLng.lng + 180.0) * ((1 << 30) / 90.0)),
- y = Math.round((latLng.lat + 90.0) * ((1 << 30) / 45.0)),
- // JavaScript only has to keep 32 bits of bitwise operators, so this has to be
- // done in two parts. each of the parts c1/c2 has 30 bits of the total in it
- // and drops the last 4 bits of the full 64 bit Morton code.
- c1 = interlace(x >>> 17, y >>> 17), c2 = interlace((x >>> 2) & 0x7fff, (y >>> 2) & 0x7fff),
- digit,
- i;
+ latLng = marker && this.hasLayer(marker) ? marker.getLatLng().wrap() : this.getCenter().wrap(),
+ str = window.location.hostname.match(/^www\.openstreetmap\.org/i) ?
+ window.location.protocol + "//osm.org/go/" :
+ window.location.protocol + "//" + window.location.hostname + "/go/",
+ char_array = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_~",
+ x = Math.round((latLng.lng + 180.0) * ((1 << 30) / 90.0)),
+ y = Math.round((latLng.lat + 90.0) * ((1 << 30) / 45.0)),
+ // JavaScript only has to keep 32 bits of bitwise operators, so this has to be
+ // done in two parts. each of the parts c1/c2 has 30 bits of the total in it
+ // and drops the last 4 bits of the full 64 bit Morton code.
+ c1 = interlace(x >>> 17, y >>> 17), c2 = interlace((x >>> 2) & 0x7fff, (y >>> 2) & 0x7fff),
+ digit,
+ i;
for (i = 0; i < Math.ceil((zoom + 8) / 3.0) && i < 5; ++i) {
digit = (c1 >> (24 - (6 * i))) & 0x3f;
@@ -152,15 +155,17 @@ L.OSM.Map = L.Map.extend({
// Called to interlace the bits in x and y, making a Morton code.
function interlace(x, y) {
- x = (x | (x << 8)) & 0x00ff00ff;
- x = (x | (x << 4)) & 0x0f0f0f0f;
- x = (x | (x << 2)) & 0x33333333;
- x = (x | (x << 1)) & 0x55555555;
- y = (y | (y << 8)) & 0x00ff00ff;
- y = (y | (y << 4)) & 0x0f0f0f0f;
- y = (y | (y << 2)) & 0x33333333;
- y = (y | (y << 1)) & 0x55555555;
- return (x << 1) | y;
+ var interlaced_x = x,
+ interlaced_y = y;
+ interlaced_x = (interlaced_x | (interlaced_x << 8)) & 0x00ff00ff;
+ interlaced_x = (interlaced_x | (interlaced_x << 4)) & 0x0f0f0f0f;
+ interlaced_x = (interlaced_x | (interlaced_x << 2)) & 0x33333333;
+ interlaced_x = (interlaced_x | (interlaced_x << 1)) & 0x55555555;
+ interlaced_y = (interlaced_y | (interlaced_y << 8)) & 0x00ff00ff;
+ interlaced_y = (interlaced_y | (interlaced_y << 4)) & 0x0f0f0f0f;
+ interlaced_y = (interlaced_y | (interlaced_y << 2)) & 0x33333333;
+ interlaced_y = (interlaced_y | (interlaced_y << 1)) & 0x55555555;
+ return (interlaced_x << 1) | interlaced_y;
}
var params = {};
@@ -178,7 +183,8 @@ L.OSM.Map = L.Map.extend({
params[this._object.type] = this._object.id;
}
- var query = querystring.stringify(params);
+ var querystring = require("querystring-component"),
+ query = querystring.stringify(params);
if (query) {
str += "?" + query;
}