commit d0389bb79a6cc63e8e3bf4b0914c39f4e69fe4e1
parent 3fb24983efc61bd38e6790e89ca5a870f1756303
Author: Sergej Orlov <wladimirych@gmail.com>
Date: Sun, 3 Apr 2022 13:56:06 +0200
wikimapia: new url for tiles
Make Wikimapia tiles URL configurable and switch to new URL
Diffstat:
5 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/src/config.js b/src/config.js
@@ -15,6 +15,7 @@ const config = {
wikimediaCommonsCoverageUrl: 'https://tiles.nakarte.me/wikimedia_commons_images/{z}/{x}/{y}',
geocachingSuUrl: 'https://nakarte.me/geocachingSu/geocaching_su2.json',
tracksStorageServer: 'https://tracks.nakarte.me',
+ wikimapiaTilesBaseUrl: 'https://proxy.nakarte.me/wikimapia/',
...secrets
};
diff --git a/src/layers.js b/src/layers.js
@@ -433,7 +433,8 @@ class LayerGroupWithOptions extends L.LayerGroup {
isOverlay: true,
print: false,
jnx: false,
- attribution: '<a href="https://wikimapia.org/">Wikimapia</a>'
+ attribution: '<a href="https://wikimapia.org/">Wikimapia</a>',
+ tilesBaseUrl: config.wikimapiaTilesBaseUrl,
})
},
{
diff --git a/src/lib/leaflet.layer.wikimapia/index.js b/src/lib/leaflet.layer.wikimapia/index.js
@@ -23,7 +23,8 @@ function isPointInPolygon(polygon, p) {
L.Wikimapia = L.GridLayer.extend({
options: {
tileSize: 1024,
- updateWhenIdle: true
+ updateWhenIdle: true,
+ tilesBaseUrl: 'http://wikimapia.org/',
},
initialize: function(options) {
@@ -33,7 +34,7 @@ L.Wikimapia = L.GridLayer.extend({
onAdd: function(map) {
if (!this.loader) {
- this.loader = new WikimapiaLoader(map);
+ this.loader = new WikimapiaLoader(this.options.tilesBaseUrl, map);
}
L.GridLayer.prototype.onAdd.call(this, map);
this.on('tileunload', this.onTileUnload, this);
diff --git a/src/lib/leaflet.layer.wikimapia/wikimapia-loader.js b/src/lib/leaflet.layer.wikimapia/wikimapia-loader.js
@@ -1,15 +1,15 @@
import {TiledDataLoader} from '~/lib/tiled-data-loader';
import * as wmUtils from './wm-utils';
-import urlViaCorsProxy from '~/lib/CORSProxy';
class WikimapiaLoader extends TiledDataLoader {
maxZoom = 15;
minZoom = 1;
tileSize = 1024;
- constructor(projectObj) {
+ constructor(tilesBaseUrl, projectObj) {
super();
this._projectObj = projectObj;
+ this.tilesBaseUrl = tilesBaseUrl;
}
getFromCache(dataTileCoords) {
@@ -56,8 +56,7 @@ class WikimapiaLoader extends TiledDataLoader {
}
makeRequestData(dataTileCoords) {
- let url = wmUtils.makeTileUrl(dataTileCoords);
- url = urlViaCorsProxy(url);
+ let url = this.tilesBaseUrl + wmUtils.makeTilePath(dataTileCoords);
return {
url,
options: {timeout: 20000}
diff --git a/src/lib/leaflet.layer.wikimapia/wm-utils.js b/src/lib/leaflet.layer.wikimapia/wm-utils.js
@@ -14,11 +14,11 @@ function getTileId({x, y, z}) {
return id.reverse().join('');
}
-function makeTileUrl(coords) {
+function makeTilePath(coords) {
const
tileId = getTileId(coords),
urlPath = tileId.replace(/(\d{3})(?!$)/gu, '$1/'); // "033331022" -> "033/331/022"
- return `http://wikimapia.org/z1/itiles/${urlPath}.xy?342342`;
+ return `z1/itiles/${urlPath}.xy?342342`;
}
function tileIdToCoords(tileId) {
@@ -262,4 +262,4 @@ async function parseTile(s, projectObj) {
// }
// },
-export {getTileId, getWikimapiaTileCoords, parseTile, makeTileUrl};
+export {getTileId, getWikimapiaTileCoords, parseTile, makeTilePath};