X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/d1dba97ac4f2a018b4ee93b4ec160c6a2df108b1..37e6725d2d85e92df4bc770b73e137a52afb63a4:/app/assets/javascripts/leaflet.map.js diff --git a/app/assets/javascripts/leaflet.map.js b/app/assets/javascripts/leaflet.map.js index b2d4abcb7..d221ae208 100644 --- a/app/assets/javascripts/leaflet.map.js +++ b/app/assets/javascripts/leaflet.map.js @@ -15,13 +15,55 @@ 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 cyclosm = I18n.t("javascripts.map.cyclosm", { cyclosm_url: "https://www.cyclosm.org", osmfrance_url: "https://openstreetmap.fr/" }); - var thunderforest = I18n.t("javascripts.map.thunderforest", { thunderforest_url: "https://www.thunderforest.com/" }); - var memomaps = I18n.t("javascripts.map.opnvkarte", { memomaps_url: "https://memomaps.de/" }); - var hotosm = I18n.t("javascripts.map.hotosm", { hotosm_url: "https://www.hotosm.org/", osmfrance_url: "https://openstreetmap.fr/" }); + var copyright_link = $("", { + href: "/copyright", + text: I18n.t("javascripts.map.openstreetmap_contributors") + }).prop("outerHTML"); + var copyright = I18n.t("javascripts.map.copyright_text", { copyright_link: copyright_link }); + + var donate = $("", { + "href": "https://supporting.openstreetmap.org", + "class": "donate-attr", + "text": I18n.t("javascripts.map.make_a_donation") + }).prop("outerHTML"); + + var terms = $("", { + href: "https://wiki.osmfoundation.org/wiki/Terms_of_Use", + text: I18n.t("javascripts.map.website_and_api_terms") + }).prop("outerHTML"); + + var cyclosm_link = $("", { + href: "https://www.cyclosm.org", + target: "_blank", + text: I18n.t("javascripts.map.cyclosm_name") + }).prop("outerHTML"); + var osm_france_link = $("", { + href: "https://openstreetmap.fr/", + target: "_blank", + text: I18n.t("javascripts.map.osm_france") + }).prop("outerHTML"); + var cyclosm = I18n.t("javascripts.map.cyclosm_credit", { cyclosm_link: cyclosm_link, osm_france_link: osm_france_link }); + + var thunderforest_link = $("", { + href: "https://www.thunderforest.com/", + target: "_blank", + text: I18n.t("javascripts.map.andy_allan") + }).prop("outerHTML"); + var thunderforest = I18n.t("javascripts.map.thunderforest_credit", { thunderforest_link: thunderforest_link }); + + var tracestrack_link = $("", { + href: "https://www.tracestrack.com/", + target: "_blank", + text: I18n.t("javascripts.map.tracestrack") + }).prop("outerHTML"); + var tracestrack = I18n.t("javascripts.map.tracestrack_credit", { tracestrack_link: tracestrack_link }); + + var hotosm_link = $("", { + href: "https://www.hotosm.org/", + target: "_blank", + text: I18n.t("javascripts.map.hotosm_name") + }).prop("outerHTML"); + var hotosm = I18n.t("javascripts.map.hotosm_credit", { hotosm_link: hotosm_link, osm_france_link: osm_france_link }); this.baseLayers = []; @@ -57,12 +99,15 @@ L.OSM.Map = L.Map.extend({ })); } - this.baseLayers.push(new L.OSM.OPNVKarte({ - attribution: copyright + ". " + memomaps + ". " + terms, - code: "O", - keyid: "opnvkarte", - name: I18n.t("javascripts.map.base.opnvkarte") - })); + if (OSM.TRACESTRACK_KEY) { + this.baseLayers.push(new L.OSM.TracestrackTopo({ + attribution: copyright + ". " + tracestrack + ". " + terms, + apikey: OSM.TRACESTRACK_KEY, + code: "P", + keyid: "tracestracktopo", + name: I18n.t("javascripts.map.base.tracestracktop_topo") + })); + } this.baseLayers.push(new L.OSM.HOT({ attribution: copyright + ". " + hotosm + ". " + terms, @@ -261,11 +306,13 @@ L.OSM.Map = L.Map.extend({ L.circleMarker(object.latLng, haloStyle).addTo(this._objectLayer); - L.marker(object.latLng, { - icon: object.icon, - opacity: 1, - interactive: true - }).addTo(this._objectLayer); + if (object.icon) { + L.marker(object.latLng, { + icon: object.icon, + opacity: 1, + interactive: true + }).addTo(this._objectLayer); + } if (callback) callback(this._objectLayer.getBounds()); } else { // element or changeset handled by L.OSM.DataLayer