Как использовать folium карты оффлайн?

Рейтинг: 0Ответов: 1Опубликовано: 29.03.2023

Есть библиотека folium, которая позволяет создавать карты. Хочу использовать её без подключения к интернету, но рендеринг карт производится с помощь js скриптов с серверов, заменял ссылки на все файлы в исходниках, результата не дало. Нашел следующее решение https://github.com/and-viceversa/folium_offline, но, наверное, что-то не так сделал, ибо тоже не сработало. Буду рад любому совету. Получилось добиться того, что карта загружается оффлайн нормально, но при скроллинге серые квадраты, я так понимаю, это из-за этого фрагмента в html коде карты.

            var tile_layer_ee5229e8c218c467c977fb6b5deaf431 = L.tileLayer(
                "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
                {"attribution": "Data by \u0026copy; \u003ca target=\"_blank\" href=\"http://openstreetmap.org\"\u003eOpenStreetMap\u003c/a\u003e, under \u003ca target=\"_blank\" href=\"http://www.openstreetmap.org/copyright\"\u003eODbL\u003c/a\u003e.", "detectRetina": false, "maxNativeZoom": 23, "maxZoom": 23, "minZoom": 0, "noWrap": false, "opacity": 1, "subdomains": "abc", "tms": false}
            ).addTo(map_f868b59dfb202d755ea8942f66af04f5);

Ответы

▲ 0Принят

Дело действительно было в том фрагменте кода, который я указал в вопросе. За него в python коде отвечает аргумент tiles при создании карты. Соответственно выход, передать собственные tiles. Для этого предварительно установить docker и выполнить следующие шаги:

git clone https://github.com/tilemill-project/tilemill.git
cd tilemill
docker-compose up

после того как поднимется сервер, то сервис будет доступен по адресу http://localhost:20009. Там можно будет настроить карту на любой вкус, масштаб, границы, дизайн и т.д. После настройки справа export > нужный формат tiles. И при создании карты указать путь к скачанному файлу. m = folium.Map(tiles='path_to_file.png')