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 = [];
this.baseLayers.push(new L.OSM.Mapnik({
- attribution: copyright + " ♥ " + donate,
+ attribution: copyright + " ♥ " + donate + ". " + terms,
code: "M",
keyid: "mapnik",
name: I18n.t("javascripts.map.base.standard")
if (OSM.THUNDERFOREST_KEY) {
this.baseLayers.push(new L.OSM.CycleMap({
- attribution: copyright + ". Tiles courtesy of <a href='https://www.thunderforest.com/' target='_blank'>Andy Allan</a>",
+ attribution: copyright + ". Tiles courtesy of <a href='https://www.thunderforest.com/' target='_blank'>Andy Allan</a>. " + terms,
apikey: OSM.THUNDERFOREST_KEY,
code: "C",
keyid: "cyclemap",
}));
this.baseLayers.push(new L.OSM.TransportMap({
- attribution: copyright + ". Tiles courtesy of <a href='https://www.thunderforest.com/' target='_blank'>Andy Allan</a>",
+ attribution: copyright + ". Tiles courtesy of <a href='https://www.thunderforest.com/' target='_blank'>Andy Allan</a>. " + terms,
apikey: OSM.THUNDERFOREST_KEY,
code: "T",
keyid: "transportmap",
}
this.baseLayers.push(new L.OSM.HOT({
- attribution: copyright + ". Tiles style by <a href='https://www.hotosm.org/' target='_blank'>Humanitarian OpenStreetMap Team</a> hosted by <a href='https://openstreetmap.fr/' target='_blank'>OpenStreetMap France</a>",
+ attribution: copyright + ". Tiles style by <a href='https://www.hotosm.org/' target='_blank'>Humanitarian OpenStreetMap Team</a> hosted by <a href='https://openstreetmap.fr/' target='_blank'>OpenStreetMap France</a>. " + terms,
code: "H",
keyid: "hot",
name: I18n.t("javascripts.map.base.hot")
},
getMapBaseLayerId: function () {
- var baseLayer;
+ var baseLayerId;
this.eachLayer(function (layer) {
- if (layer.options && layer.options.keyid) baseLayer = layer;
+ if (layer.options && layer.options.keyid) baseLayerId = layer.options.keyid;
});
- return baseLayer.options.keyid;
+ return baseLayerId;
},
getUrl: function (marker) {
}
var url = window.location.protocol + "//" + OSM.SERVER_URL + "/",
- query = querystring.stringify(params),
- hash = OSM.formatHash(this);
+ query = querystring.stringify(params),
+ hash = OSM.formatHash(this);
if (query) url += "?" + query;
if (hash) url += hash;
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;