this.baseLayers = [];
for (const layerDefinition of OSM.LAYER_DEFINITIONS) {
- if (layerDefinition.apiKeyId && !OSM[layerDefinition.apiKeyId]) continue;
-
let layerConstructor = L.OSM.TileLayer;
const layerOptions = {};
if (property === "credit") {
layerOptions.attribution = makeAttribution(value);
} else if (property === "nameId") {
- layerOptions.name = I18n.t(`javascripts.map.base.${value}`);
- } else if (property === "apiKeyId") {
- layerOptions.apikey = OSM[value];
+ layerOptions.name = OSM.i18n.t(`javascripts.map.base.${value}`);
} else if (property === "leafletOsmId") {
layerConstructor = L.OSM[value];
} else if (property === "leafletOsmDarkId" && OSM.isDarkMap() && L.OSM[value]) {
function makeAttribution(credit) {
let attribution = "";
- attribution += I18n.t("javascripts.map.copyright_text", {
+ attribution += OSM.i18n.t("javascripts.map.copyright_text", {
copyright_link: $("<a>", {
href: "/copyright",
- text: I18n.t("javascripts.map.openstreetmap_contributors")
+ text: OSM.i18n.t("javascripts.map.openstreetmap_contributors")
}).prop("outerHTML")
});
attribution += $("<a>", {
href: "https://wiki.osmfoundation.org/wiki/Terms_of_Use",
- text: I18n.t("javascripts.map.website_and_api_terms")
+ text: OSM.i18n.t("javascripts.map.website_and_api_terms")
}).prop("outerHTML");
return attribution;
for (const childId in credit.children) {
children[childId] = makeCredit(credit.children[childId]);
}
- const text = I18n.t(`javascripts.map.${credit.id}`, children);
+ const text = OSM.i18n.t(`javascripts.map.${credit.id}`, children);
if (credit.href) {
const link = $("<a>", {
href: credit.href,
[params.mlat, params.mlon] = OSM.cropLocation(marker.getLatLng(), this.getZoom());
}
- let url = window.location.protocol + "//" + OSM.SERVER_URL + "/";
+ let url = location.protocol + "//" + OSM.SERVER_URL + "/";
const query = new URLSearchParams(params),
hash = OSM.formatHash(this);
// 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);
- let str = window.location.protocol + "//" + window.location.hostname.replace(/^www\.openstreetmap\.org/i, "osm.org") + "/go/";
+ let str = location.protocol + "//" + location.hostname.replace(/^www\.openstreetmap\.org/i, "osm.org") + "/go/";
for (let i = 0; i < Math.ceil((zoom + 8) / 3.0) && i < 5; ++i) {
const digit = (c1 >> (24 - (6 * i))) & 0x3f;
return window.matchMedia("(prefers-color-scheme: dark)").matches;
};
-OSM.getUserIcon = function (url) {
- return L.icon({
- iconUrl: url || OSM.MARKER_RED,
- iconSize: [25, 41],
- iconAnchor: [12, 41],
- popupAnchor: [1, -34],
- shadowUrl: OSM.MARKER_SHADOW,
- shadowSize: [41, 41]
- });
+OSM.getMarker = function ({ icon = "MARKER_RED", shadow = true, height = 41 }) {
+ const options = {
+ iconUrl: OSM[icon.toUpperCase()] || OSM.MARKER_RED,
+ iconSize: [25, height],
+ iconAnchor: [12, height],
+ popupAnchor: [1, -34]
+ };
+ if (shadow) {
+ options.shadowUrl = OSM.MARKER_SHADOW;
+ options.shadowSize = [41, 41];
+ options.shadowAnchor = [12, 41];
+ }
+ return L.icon(options);
};