Openstreetmap (Leaflet) резервное копирование сервера - PullRequest
0 голосов
/ 01 октября 2018

У меня есть очень простой кусок JavaScript Leaflet, работающий на моем общем хосте.Простая версия кода выглядит следующим образом:

var osmLink = '<a href="http://openstreetmap.org">OpenStreetMap</a>',
    x1860Link = '<a href="http://1860map.org">1860 map</a>',
    xNLSLink = '<a href="http://geo.nls.uk/maps/">National Library of Scotland</a>';

var osmUrl = 'https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png',
    osmAttrib = '&copy; ' + osmLink + ' Contributors',

    x1860Url = 'http://www.1860.org/1860/{z}/{x}/{y}.jpg',
    x1860Attrib = '&copy; '+osmLink+' Contributors & '+x1860Link,

    xNLSUrl = 'https://nls.tileserver.com/nls/{z}/{x}/{y}.jpg',
    xNLSAttrib = '&copy; '+osmLink+' Contributors & '+xNLSLink;

var osmMap = L.tileLayer(osmUrl, {attribution: osmAttrib}),
    x1860Map = L.tileLayer(x1860Url, {attribution: x1860Attrib}),
    xNLSMap = L.tileLayer(xNLSUrl, {attribution: xNLSAttrib});

var baseLayers = { 'OpenStreetMap': osmMap,
                    '1860': x1860Map,
                   '1940': xNLSMap
                 };

L.control.layers(baseLayers, overlays).addTo(map);

Сервер плиток 1860 года - это историческая карта с тайлами до уровня 17, в очень немногих случаях до уровня 18, но в большинстве случаев нет.

Точно так же карта NLS уменьшается до 18-го масштаба, в основном до 17-го масштаба, но только в Лондоне, Англия.

Одним из решений было бы создание фиктивных плиток на уровне 18, некоторые на уровне 17 и ограничениеобласть до Лондона.

Но я хочу сэкономить пространство inode плитки.

Итак: IF 1860 плитка не существует, ТО загружать версию OSM той же плитки

IF плитка NLS делаетне существует ТОГДА загрузить версию OSM той же плитки

И я мог бы добавить больше слоев (больше истории в разные годы), чтобы она работала одинаково для всех.Для других есть очень хорошее решение - запасной вариант, который берет уровень масштабирования выше и отображает его.

Но у меня есть 1860 карт, которые заканчиваются на краю Лондона и перезапускают (тот же сервер плиток) на 100 миль, чтобына северо-западе в городе Бирмингем.То же самое с другими городами.Но нажмите на Оксфорд, между городами, и нет карты 1860, которую можно рендерить даже при более высоком уровне масштабирования.

В итоге: множество недостающих плиток, которые я хочу, чтобы в случае обнаружения их отсутствовало, заменялось эквивалентом OSM, а не уровнем увеличения, указанным выше, поскольку его может и не быть.

Увына моем хосте я не могу установить пакеты из Github и т. д. Это должно быть как-то решение javascript, легко интегрируемое в существующий код.

...