Ага, спасибо. Разобрался, залил базу, запустил мапник, написали, что нужно поднять собственный tilecache-сервер. Запустил - вроде квадратики показывает…
Теперь как-то это дело надо прикрутить к рельсам, чтобы они показывали не интернетный мапник, а локальный.
Или всё-таки я зря поставил tilecache?
Попытался “в лоб добавить”, через fgrep, там где cyclemap есть - не пошло. Начал рыть документацию. Конкретно про rails + tilecache - ничего нет. Килограммы документации по Openlayers - много описаний про добавление на свою html-страничку, про какой-то turbogears и очень много не о том…
Голова уже кругом идёт…
Товарищи, может ли кто тыкнуть в “ман” чтобы было описано как прописать TileCache сервер, в OpenLayers в rails-порте?
Хм, сделал как вы говорите - не получилось. Может быть надо что-то перекомпилировать после изменений в js?
Сам же я до этого добавил новый слой по аналогии с CycleMap, добавлял везде где нашёл:
public/javascripts/map.js
public/export/embed.html
public/openlayers/OpenStreetMap.js
Кстати, в …/public/openlayers/OpenLayers.js и менять особо нечего.
Т.е. в public/openlayers/OpenLayers.js (там вообще какая-то каша) ничего править не надо, а нужно добавить создание своего layer-а, вот только куда?
Нарисовал в OpenStreetMap.js, как вы показали - не работает, т.е. нового layer-а с именем “OpenStreetMap.de” в меню не появилось…
Запустил сервер rails - нового слоя “OpenStreetMap.de” не появилось.
Что я делаю не так?
П.С. Вся документация по OpenLayers говорит о том, как добавить js-код на свою html-страничку, чтобы показывать карту, про связку rails+openlayers так и не нашёл
Сделал как вы написали (поправил и в OpenLayers.js) работает так же как и до внесения изменений в OpenLayers.js. С изменениями в OpenLayers.js и без изменений в OpenLayers.js - только лишь с правкой url в OpenStreetMap.js на слое Mapnik отображает нагенерированные мной тайлы, но вот в таком виде:
и вот так, если поближе:
Хотя в генераторе тайлов (mapnik) прописано генерировать весь мир mapnik/generate_tiles.py:
bbox = (-180.0,-90.0, 180.0,90.0)
А по факту получается сгенерировало только америку - сгенерировало только на основе данных линии моря и рек (взятых из world_boundaries). А Россию, которая и есть в базе - не показывает, хотя если подбирать координаты через tilecache, то Россия есть:
Таких описаний - уйма. Вот например про tilecache-сервер: http://openlayers.org/dev/examples/tilecache.html
Все они сводятся к простому - у вас есть html-страничка и вот теперь мы на неё с помощью подключаемого OpenLayers.js-скрипта выведем карту, которую будем брать по таким-то ссылкам…
Но в моём случае - есть rails-сервер, в котором всё как-то внутри генериться и отдаётся пользователю. При этом есть настройки OpenLayers, которые не влияют на отдаваемую рельсами пользователю страничку. Не влияет добавление нового слоя, а вот изменение ссылки в описании для Mapnik - да, влияет… Но мне надо добавить свои слои. И вот вопрос, как добавлять свои слои в rails-сервере?
Может быть я чего упорно не могу понять и сложить 2+2? Прошу тогда не гневаться на недогадливость
Как я понимаю: в случае простой html-странички: создаём html, подцепляем к ней OpenLayers.js, пишем мелкий код из примера со ссылкой на наш tilecache-сервер и всё.
В случае же рельсов: rails-сервер берёт конфиги из openlayes (который установлен как часть rails-сервера), создаёт на лету html, который и отдаёт пользователю, подключившемуся на 3000-й порт, который слушает rails-сервер.
В конфиге openlayers (OpenStreetMap.js) должен быть прописан нужный слой, который ссылается на соответствующий tilecache сервер, запущенный по соседству и отдающий тайлы по схеме нумерации Google, сгенерированные Mapnik-ом в EPSG:3857.
Так?
Ок, пишите что да как… интересно…
Могу описать свой опыт - хау-ту создать и поддерживать актуальность базы для рендеринга данных локального osm-сервера? Ничего нового в этом нет опусе не будет, переработанные статьи из вики…