]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/leaflet.map.js
Lessen code repetition
[rails.git] / app / assets / javascripts / leaflet.map.js
index 91d9efbde9c708999428a8f4d1355fb874d2b348..1324532d3bb592d8272e5d5b6bcce302603899a8 100644 (file)
@@ -1,5 +1,3 @@
-//= require qs/dist/qs
-
 L.extend(L.LatLngBounds.prototype, {
   getSize: function () {
     return (this._northEast.lat - this._southWest.lat) *
@@ -108,9 +106,8 @@ L.OSM.Map = L.Map.extend({
           link.attr("target", "_blank");
         }
         return link.prop("outerHTML");
-      } else {
-        return text;
       }
+      return text;
     }
   },
 
@@ -159,7 +156,7 @@ L.OSM.Map = L.Map.extend({
     }
 
     var url = window.location.protocol + "//" + OSM.SERVER_URL + "/",
-        query = Qs.stringify(params),
+        query = new URLSearchParams(params),
         hash = OSM.formatHash(this);
 
     if (query) url += "?" + query;
@@ -171,16 +168,15 @@ 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/",
+        str = window.location.protocol + "//" + window.location.hostname.replace(/^www\.openstreetmap\.org/i, "osm.org") + "/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),
+        c1 = interlace(x >>> 17, y >>> 17),
+        c2 = interlace((x >>> 2) & 0x7fff, (y >>> 2) & 0x7fff),
         digit,
         i;
 
@@ -209,22 +205,22 @@ L.OSM.Map = L.Map.extend({
       return (interlaced_x << 1) | interlaced_y;
     }
 
-    var params = {};
+    const params = new URLSearchParams();
     var layers = this.getLayersCode().replace("M", "");
 
     if (layers) {
-      params.layers = layers;
+      params.set("layers", layers);
     }
 
     if (marker && this.hasLayer(marker)) {
-      params.m = "";
+      params.set("m", "");
     }
 
     if (this._object) {
-      params[this._object.type] = this._object.id;
+      params.set(this._object.type, this._object.id);
     }
 
-    var query = Qs.stringify(params);
+    const query = params.toString();
     if (query) {
       str += "?" + query;
     }
@@ -315,13 +311,8 @@ L.OSM.Map = L.Map.extend({
           });
 
           map._objectLayer.interestingNode = function (node, wayNodes, relationNodes) {
-            if (object.type === "node") {
-              return true;
-            } else if (object.type === "relation") {
-              return Boolean(relationNodes[node.id]);
-            } else {
-              return false;
-            }
+            return object.type === "node" ||
+                   (object.type === "relation" && Boolean(relationNodes[node.id]));
           };
 
           map._objectLayer.addData(data);