Własny serwer OSM - ścieżka do kafelków

Według poniższej instrukcji zbudowałem swój serwer OSM:

https://switch2osm.org/serving-tiles/building-a-tile-server-from-packages/

Serwer działa prawidłowo, co potwierdza możliwość przeglądania map po wywołaniu w przeglądarce adresu serwera z przygotowaną stroną html, dla przykładu:

http://10.10.10.10/osm/index.html

W skrypcie podany jest adres kafelków:

{z}/{x}/{y}.png

Teraz chcę odwołać się do tych map z innego serwera, żeby rozdzielić serwer aplikacji od serwera map.

I tu pojawia się problem, pod jakim adresem dostępne będą kafelki? Jak to sprawdzić?

Będzie to zapewne adres w postaci:

http://10.10.10.10/…/{z}/{x}/{y}.png

W którym miejscu w konfiguracji serwera można to sprawdzić?

Podglądnij sobie plik http://10.10.10.10/osm/slippymap.html czy inddex.html i tam będziesz miał adres.
W konfiguracji to chyba powinno być URI w /etc/renderd.conf

Oczywiście podglądałem już slippymap.html, jednak tam jest tylko ścieżka lokalna, tzn:


${z}/${x}/${y}.png

Natomiast w pliku /etc/renderd.conf faktycznie znajduje się URI:


URI=/osm/

Ustawiłem więc w swoim skrypcie adres serwera kafelków na:

http://10.10.10.10/osm/{z}/{x}/{y}.png

jednak mapa nadal nie jest wyświetlana.

Skrypt poza tym adresem jest dobry, ponieważ po usunięciu linijki z url ładują się standardowe mapy OSM.


(...)
source: new ol.source.OSM({
   url: 'http://10.10.10.10/osm/{z}/{x}/{y}.png'
})
(...)

Co ciekawe, wpisując w przeglądarce np.

http://10.10.10.10/osm/0/0/0.png

widzę mapę świata. Inne kafelki też się wyświetlają.

W firefoksie w Tools > Web Developer > Network mozesz podejrzec jaki adres probuje zaladowac przegladarka, i dlaczego on sie nie laduje.

Dzięki Waszym informacjom udało mi się ustalić, że ścieżka do moich kafelków to:

http://10.10.10.10/osm/{z}/{x}/{y}.png

W zakładce Tools > Web Developer → Network widoczne są wszystkie grafiki/kafelki, które powinny się załadować, ze statusem “200 OK”. Narzędzie także pokazuje prawidłowo podgląd każdego z nich. Co więcej, po kliknięciu w ZOOM IN (+) widać, że witryna ładuje kolejne kafelki stosownie do wybranego powiększenia.

Nie widzę także innych błędów w kodzie strony czy też w załączonych plikach.

Mimo to kafelki z mojego serwera nadal nie są wyświetlane na stronie. Po przełączeniu się na serwer OSM działają prawidłowo.

Sądzę zatem, że czegoś nie dodałem jakiejś opcji tutaj:

(...)
source: new ol.source.OSM({
   url: 'http://10.10.10.10/osm/{z}/{x}/{y}.png'
})
(...)

http://openlayers.org/en/v3.8.2/apidoc/ol.source.OSM.html

Może poza “url” coś jeszcze jest potrzebne do prawidłowej pracy z własnym serwerem?


Po dodaniu opcji

crossOrigin

mapa zaczęła działać prawidłowo.