You are not logged in.
- Topics: Active | Unanswered
#51 2011-11-07 21:59:41
- progserega
- Member
- From: Владивосток
- Registered: 2009-12-31
- Posts: 456
Re: создание своего OSM-сервера, как прокси
progserega wrote:Товарищи, может ли кто тыкнуть в "ман" чтобы было описано как прописать TileCache сервер, в OpenLayers в rails-порте?
В ман не ткну, ткну в js
Я заменял в этих файлах
1. ../public/openlayers/OpenLayers.js
2. ../public/openlayers/OpenSreetMap.jsпоиском нашел адрес мапника и заменил на свой
Хм, сделал как вы говорите - не получилось. Может быть надо что-то перекомпилировать после изменений в js?
Сам же я до этого добавил новый слой по аналогии с CycleMap, добавлял везде где нашёл:
public/javascripts/map.js
public/export/embed.html
public/openlayers/OpenStreetMap.js
Кстати, в ../public/openlayers/OpenLayers.js и менять особо нечего.
matrix.org: @progserega:rsprim.ru
Offline
#52 2011-11-08 06:40:32
- s-s-s
- Member
- From: Russia, Moscow
- Registered: 2009-09-10
- Posts: 373
- Website
Re: создание своего OSM-сервера, как прокси
...
Кстати, в ../public/openlayers/OpenLayers.js и менять особо нечего.
Как раз там и нужно, у меня в строке 1009
... sphericalMercator:true,url:'http://geo.local.s-s-s.ru/${z}/${x}/${y}.png',clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.OSM(this.name,this.url,this.getOptions());}
в OpenStreetMap.js
/**
* Constructor: OpenLayers.Layer.OSM.Mapnik
*
* Parameters:
* name - {String}
* options - {Object} Hashtable of extra options to tag onto the layer
*/
initialize: function(name, options) {
var url = [
"http://geo.local.s-s-s.ru/${z}/${x}/${y}.png"
/*
* "http://a.tile.openstreetmap.org/${z}/${x}/${y}.png",
* "http://b.tile.openstreetmap.org/${z}/${x}/${y}.png",
* "http://c.tile.openstreetmap.org/${z}/${x}/${y}.png"
*/
Я ничего не перекомпилировал, изменения вступают сразу
Last edited by s-s-s (2011-11-08 06:44:55)
С уважением, Сергей.
Offline
#53 2011-11-08 08:03:26
- Alexandr Zeinalov
- Member
- From: New-Peredelkino, Moscow, RU
- Registered: 2009-08-26
- Posts: 1,698
- Website
Re: создание своего OSM-сервера, как прокси
Неясно, для чего исправлять родные классы, если есть Layer.XYZ, например:
var tah = new OpenLayers.Layer.XYZ(
"Osmarender",
"http://tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png",
{
numZoomLevels: 18,
sphericalMercator: true
}
);
var osmde = new OpenLayers.Layer.XYZ(
"OpenStreetMap.de",
"http://tile.openstreetmap.de/tiles/osmde/${z}/${x}/${y}.png",
{
numZoomLevels: 18,
sphericalMercator: true
}
);
Offline
#54 2011-11-08 23:36:11
- progserega
- Member
- From: Владивосток
- Registered: 2009-12-31
- Posts: 456
Re: создание своего OSM-сервера, как прокси
Неясно, для чего исправлять родные классы, если есть Layer.XYZ, например:
var tah = new OpenLayers.Layer.XYZ( "Osmarender", "http://tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png", { numZoomLevels: 18, sphericalMercator: true } ); var osmde = new OpenLayers.Layer.XYZ( "OpenStreetMap.de", "http://tile.openstreetmap.de/tiles/osmde/${z}/${x}/${y}.png", { numZoomLevels: 18, sphericalMercator: true } );
Т.е. в public/openlayers/OpenLayers.js (там вообще какая-то каша) ничего править не надо, а нужно добавить создание своего layer-а, вот только куда?
Нарисовал в OpenStreetMap.js, как вы показали - не работает, т.е. нового layer-а с именем "OpenStreetMap.de" в меню не появилось...
Last edited by progserega (2011-11-08 23:57:53)
matrix.org: @progserega:rsprim.ru
Offline
#55 2011-11-09 05:32:12
- Alexandr Zeinalov
- Member
- From: New-Peredelkino, Moscow, RU
- Registered: 2009-08-26
- Posts: 1,698
- Website
Re: создание своего OSM-сервера, как прокси
map.addLayers([osmde, tah]);
Offline
#56 2011-11-10 01:58:59
- progserega
- Member
- From: Владивосток
- Registered: 2009-12-31
- Posts: 456
Re: создание своего OSM-сервера, как прокси
Дак куда добавлять?
Добавил в rails/public/openlayers/OpenStreetMap.js в конец файла следующее:
var osmde = new OpenLayers.Layer.XYZ(
"OpenStreetMap.de",
"http://tile.openstreetmap.de/tiles/osmd … }/${y}.png",
{
numZoomLevels: 18,
sphericalMercator: true
}
);
map.addLayers([osmde]);
Запустил сервер rails - нового слоя "OpenStreetMap.de" не появилось.
Что я делаю не так?
П.С. Вся документация по OpenLayers говорит о том, как добавить js-код на свою html-страничку, чтобы показывать карту, про связку rails+openlayers так и не нашёл :-(
matrix.org: @progserega:rsprim.ru
Offline
#57 2011-11-10 05:38:35
- progserega
- Member
- From: Владивосток
- Registered: 2009-12-31
- Posts: 456
Re: создание своего OSM-сервера, как прокси
progserega wrote:...
Кстати, в ../public/openlayers/OpenLayers.js и менять особо нечего.
Как раз там и нужно, у меня в строке 1009
... sphericalMercator:true,url:'http://geo.local.s-s-s.ru/${z}/${x}/${y}.png',clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.OSM(this.name,this.url,this.getOptions());}
в OpenStreetMap.js
/** * Constructor: OpenLayers.Layer.OSM.Mapnik * * Parameters: * name - {String} * options - {Object} Hashtable of extra options to tag onto the layer */ initialize: function(name, options) { var url = [ "http://geo.local.s-s-s.ru/${z}/${x}/${y}.png" /* * "http://a.tile.openstreetmap.org/${z}/${x}/${y}.png", * "http://b.tile.openstreetmap.org/${z}/${x}/${y}.png", * "http://c.tile.openstreetmap.org/${z}/${x}/${y}.png" */
Я ничего не перекомпилировал, изменения вступают сразу
Сделал как вы написали (поправил и в 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, то Россия есть:
Может быть дело в проекции или Что-то другое?
matrix.org: @progserega:rsprim.ru
Offline
#58 2011-11-10 05:51:59
- Komяpa
- Member
- From: Minsk
- Registered: 2009-04-14
- Posts: 1,322
- Website
Re: создание своего OSM-сервера, как прокси
1) тайлы надо генерировать в EPSG:3857, а не EPSG:4326;
2) схема нумерации тайлов - не TMS, а Google.
world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]
Offline
#59 2011-11-10 08:07:27
- Alexandr Zeinalov
- Member
- From: New-Peredelkino, Moscow, RU
- Registered: 2009-08-26
- Posts: 1,698
- Website
Re: создание своего OSM-сервера, как прокси
Дак куда добавлять?
Разумеется, не надо пихать куда попало, необходимо иметь элементарное программистское предсталение о происходящем.
//
map = new OpenLayers.Map('map', options);
var mapnik = new OpenLayers.Layer.OSM();
map.addLayers([mapnik]);
var tah = new OpenLayers.Layer.XYZ(
"Osmarender",
"http://tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png",
{
numZoomLevels: 18,
sphericalMercator: true
}
);
var osmde = new OpenLayers.Layer.XYZ(
"OpenStreetMap.de",
"http://tile.openstreetmap.de/tiles/osmde/${z}/${x}/${y}.png",
{
numZoomLevels: 18,
sphericalMercator: true
}
);
map.addLayers([osmde, tah]);
Море примеров есть тут: http://openlayers.org/dev/examples/
Offline
#60 2011-11-10 08:57:56
- s-s-s
- Member
- From: Russia, Moscow
- Registered: 2009-09-10
- Posts: 373
- Website
Re: создание своего OSM-сервера, как прокси
Ага, спасибо. Разобрался, залил базу, запустил мапник, написали, что нужно поднять собственный tilecache-сервер. Запустил - вроде квадратики показывает...
Теперь как-то это дело надо прикрутить к рельсам, чтобы они показывали не интернетный мапник, а локальный.
Или всё-таки я зря поставил tilecache?
Сделал как вы написали (поправил и в 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, то Россия есть:
...Может быть дело в проекции или Что-то другое?
Ну так, что "это дело" теперь отображается вместо мапника ОСМ, я правильно понял?
Т.е. теперь нужно разобраться что и как нагенерил мапник 2.0 (видимо там не только в шрифтах разница )
Last edited by s-s-s (2011-11-10 08:59:53)
С уважением, Сергей.
Offline
#61 2011-11-11 05:10:39
- progserega
- Member
- From: Владивосток
- Registered: 2009-12-31
- Posts: 456
Re: создание своего OSM-сервера, как прокси
progserega wrote:Дак куда добавлять?
Разумеется, не надо пихать куда попало, необходимо иметь элементарное программистское предсталение о происходящем.
Море примеров есть тут: http://openlayers.org/dev/examples/
Таких описаний - уйма. Вот например про tilecache-сервер:
http://openlayers.org/dev/examples/tilecache.html
Все они сводятся к простому - у вас есть html-страничка и вот теперь мы на неё с помощью подключаемого OpenLayers.js-скрипта выведем карту, которую будем брать по таким-то ссылкам...
Но в моём случае - есть rails-сервер, в котором всё как-то внутри генериться и отдаётся пользователю. При этом есть настройки OpenLayers, которые не влияют на отдаваемую рельсами пользователю страничку. Не влияет добавление нового слоя, а вот изменение ссылки в описании для Mapnik - да, влияет... Но мне надо добавить свои слои. И вот вопрос, как добавлять свои слои в rails-сервере?
Может быть я чего упорно не могу понять и сложить 2+2? Прошу тогда не гневаться на недогадливость :-)
progserega wrote:Дак куда добавлять?
Разумеется, не надо пихать куда попало, необходимо иметь элементарное программистское предсталение о происходящем.
Как я понимаю: в случае простой html-странички: создаём html, подцепляем к ней OpenLayers.js, пишем мелкий код из примера со ссылкой на наш tilecache-сервер и всё.
В случае же рельсов: rails-сервер берёт конфиги из openlayes (который установлен как часть rails-сервера), создаёт на лету html, который и отдаёт пользователю, подключившемуся на 3000-й порт, который слушает rails-сервер.
В конфиге openlayers (OpenStreetMap.js) должен быть прописан нужный слой, который ссылается на соответствующий tilecache сервер, запущенный по соседству и отдающий тайлы по схеме нумерации Google, сгенерированные Mapnik-ом в EPSG:3857.
Так?
matrix.org: @progserega:rsprim.ru
Offline
#62 2011-11-11 05:23:29
- progserega
- Member
- From: Владивосток
- Registered: 2009-12-31
- Posts: 456
Re: создание своего OSM-сервера, как прокси
Ну так, что "это дело" теперь отображается вместо мапника ОСМ, я правильно понял?
Т.е. теперь нужно разобраться что и как нагенерил мапник 2.0 (видимо там не только в шрифтах разница
)
Ага, отдаёт то, что Мапник нагенерил. Это точно :-)
1) тайлы надо генерировать в EPSG:3857, а не EPSG:4326;
2) схема нумерации тайлов - не TMS, а Google.
Mapnik2, генерю конфиг:
./generate_xml.py --host localhost --user postgres --dbname gis --symbols ./symbols/ --world_boundaries ../world_boundaries/ --port 5432 --password 'xxxxx' --epsg='3857'
Ругается на 3857, говорит не знает такой. Правлю generate_xml.py чтобы проверка знала, генерит.
Потом конвертирую в версию 2:
upgrade_map_xml.py osm.xml osm2.xml
Валится в сегфолт. на 4326 не валится.
Ладно, генерю для 4326, думаю руками osm2.xml поправлю.
Читаю xml:
<!-- Use 0.000001 (degrees) when your database is in 4326 --><!ENTITY dwithin_900913 "0.1">
далее:
<!ENTITY dwithin_4326 "0.00001"> надо и тут, я думаю, переправить. Вопрос на что? Понятно, что я тыкаюсь как слепой котёнок.
Подскажите пожалуйста в какую сторону копать? Может книжка какая?
По части схемы нумерации тайлов - это в tilecache-сервере?
Там стояло:
[osm]
type=Mapnik
mapfile=/opt/osm/mapnik/mapnik/osm2.xml
spherical_mercator=true
tms_type=google
metatile=yes
Last edited by progserega (2011-11-11 06:06:48)
matrix.org: @progserega:rsprim.ru
Offline
#63 2011-11-16 10:30:01
- s-s-s
- Member
- From: Russia, Moscow
- Registered: 2009-09-10
- Posts: 373
- Website
Re: создание своего OSM-сервера, как прокси
Что-то тема затихла, как продвигается дело?
С уважением, Сергей.
Offline
#64 2011-11-16 23:12:15
- progserega
- Member
- From: Владивосток
- Registered: 2009-12-31
- Posts: 456
Re: создание своего OSM-сервера, как прокси
Пока разгребал текучку на работе. Вот, всё думаю опять навалиться :-)
Почитать бы ещё чего тематического...
matrix.org: @progserega:rsprim.ru
Offline
#65 2011-11-17 08:11:35
- s-s-s
- Member
- From: Russia, Moscow
- Registered: 2009-09-10
- Posts: 373
- Website
Re: создание своего OSM-сервера, как прокси
Пока разгребал текучку на работе. Вот, всё думаю опять навалиться :-)
Почитать бы ещё чего тематического...
Ок, пишите что да как... интересно...
Могу описать свой опыт - хау-ту создать и поддерживать актуальность базы для рендеринга данных локального osm-сервера? Ничего нового в этом нет опусе не будет, переработанные статьи из вики...
С уважением, Сергей.
Offline
#66 2011-11-18 00:54:28
- progserega
- Member
- From: Владивосток
- Registered: 2009-12-31
- Posts: 456
Re: создание своего OSM-сервера, как прокси
progserega wrote:Пока разгребал текучку на работе. Вот, всё думаю опять навалиться :-)
Почитать бы ещё чего тематического...
Ок, пишите что да как... интересно...
Могу описать свой опыт - хау-ту создать и поддерживать актуальность базы для рендеринга данных локального osm-сервера? Ничего нового в этом нет опусе не будет, переработанные статьи из вики...
Т.е. практически та же задача, что и у меня?
Было бы здорово!
matrix.org: @progserega:rsprim.ru
Offline
#67 2011-11-18 11:41:36
- s-s-s
- Member
- From: Russia, Moscow
- Registered: 2009-09-10
- Posts: 373
- Website
Re: создание своего OSM-сервера, как прокси
...
Было бы здорово!
Начеркал http://wiki.openstreetmap.org/wiki/User … 0%A1%D0%9C
Last edited by s-s-s (2011-11-19 11:57:43)
С уважением, Сергей.
Offline
#68 2011-11-24 01:06:59
- progserega
- Member
- From: Владивосток
- Registered: 2009-12-31
- Posts: 456
Re: создание своего OSM-сервера, как прокси
progserega wrote:...
Было бы здорово!Начеркал
http://wiki.openstreetmap.org/wiki/User … 0%A1%D0%9C
Спасибо! Надеюсь поможет потом.
Сейчас база есть, мапник рендерится.
Поковырялся, наваял страничку по документации из OpenLayer. Базовую карту (http://labs.metacarta.com/wms/vmap0) через локальный tilecache показывает (basic в конфиге tilecache-a).
Со своей (osm в конфиге tilecache-a) проблемы - показывает только воду. "Мир воды"... ;-)
Причём, если захожу на:
http://osm.rs.int/tilecache/tilecache.c … /0/0/0.png - вода.
Если же гляжу картинку на файловой системе, которую срендерил мапник в: /opt/osm/mapnik/mapnik/tiles/0/0/0.png
то там весь мир в одной картинке - и суша и океаны...
Почистил кэш tilecache-а (tmp/tilecache) - толку ноль.
Конфигурация tilecache-а:
[cache]
type=Disk
base=/tmp/tilecache
[osm]
type=MapnikLayer
mapfile=/opt/osm/mapnik/mapnik/osm2.xml
[basic]
type=WMS
url=http://labs.metacarta.com/wms/vmap0
По идее, даже если проекция какая-то не та, то базовую (0/0/0.png) картинку-то должен показывать на последнем масштабе, или нет?
К слову, в tilecache-е пришлось в некоторых файлах поменять mapnik на mapnik2. Иначе валилось с ошибкой.
matrix.org: @progserega:rsprim.ru
Offline
#69 2011-11-24 06:09:18
- progserega
- Member
- From: Владивосток
- Registered: 2009-12-31
- Posts: 456
Re: создание своего OSM-сервера, как прокси
1) тайлы надо генерировать в EPSG:3857, а не EPSG:4326;
2) схема нумерации тайлов - не TMS, а Google.
Как создать рабочий конфиг для mapnik2 в EPSG:3857?
./generate_xml.py_def --host localhost --user postgres --dbname gis --symbols ./symbols/ --world_boundaries ../world_boundaries/ --port 5432 --password 'xxxxxx' --epsg='3857'
Usage: generate_xml.py_def [template xml] <output xml> <parameters>
Full help:
$ generate_xml.py_def -h (or --help for possible options)
Read 'osm.xml' and modify '/inc' files in place, pass dbname and user, accept empty string for other options
$ generate_xml.py_def --dbname osm --user postgres --accept-none
Read template, save output xml, and pass variables as options
$ generate_xml.py_def osm.xml my_osm.xml --dbname spain --user postgres --host ''
generate_xml.py_def: error: Sorry only supported projections are: [900913, 4326]
Править generate_xml.py, чтобы поддерживал? Поправил, - при генерации тайлов - падает в корку:
MAPNIK_MAP_FILE="osm.xml" MAPNIK_TILE_DIR="tiles/" ./generate_tiles.py
render_tiles( (-180.0, -90.0, 180.0, 90.0) osm.xml tiles/ 0 5 World )
Ошибка сегментирования
Говорили нужно конвертировать с помощью:
upgrade_map_xml.py osm.xml osm3.xml
Upgrading "osm.xml" to "osm3.xml"...
Ошибка сегментирования
Вопрос: Как заставить mapnik2 генерировать тайлы в проекции EPSG:3857? Это возможно вообще?
Last edited by progserega (2011-11-24 06:09:57)
matrix.org: @progserega:rsprim.ru
Offline
#70 2011-11-24 06:33:05
- Komяpa
- Member
- From: Minsk
- Registered: 2009-04-14
- Posts: 1,322
- Website
Re: создание своего OSM-сервера, как прокси
./generate_xml.py_def --host localhost --user postgres --dbname gis --symbols ./symbols/ --world_boundaries ../world_boundaries/ --port 5432 --password 'xxxxxx' --epsg='3857'
Usage: generate_xml.py_def [template xml] <output xml> <parameters>
generate_xml пользоваться не надо. Сделай чистый чекаут и просто поправь пароль-логин где-то в inc/ - конфиг из OSM SVN сразу готов к бою.
generate_xml.py_def: error: Sorry only supported projections are: [900913, 4326]
Проекция EPSG:3857 - проекция с долгой историей. 900913 - это она же.
render_tiles( (-180.0, -90.0, 180.0, 90.0) osm.xml tiles/ 0 5 World )
А зачем было исправлять 85-й с чем-то градус на 90? Верни назад, полюса на карте не видно же.
Вопрос: Как заставить mapnik2 генерировать тайлы в проекции EPSG:3857? Это возможно вообще?
Не трогать ничего лишнего. Оно всё по-дефолту именно на это настроено, в т.ч. на osm.org.
world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]
Offline
#71 2011-11-25 06:51:08
- progserega
- Member
- From: Владивосток
- Registered: 2009-12-31
- Posts: 456
Re: создание своего OSM-сервера, как прокси
Проекция EPSG:3857 - проекция с долгой историей. 900913 - это она же.
Спасибо!
А зачем было исправлять 85-й с чем-то градус на 90? Верни назад, полюса на карте не видно же.
Хм, так по умолчанию стояло... Выставил 85.
Не трогать ничего лишнего. Оно всё по-дефолту именно на это настроено, в т.ч. на osm.org.
Виноват! Оказывается osm.xml у меня лежал какой-то кривой с неверной проекцией, а я думал, что он переписывается с помощью generate_xml.py...
Однако, взял свежий мапник:
svn info
Path: .
URL: http://svn.openstreetmap.org/applications/rendering/mapnik
Repository Root: http://svn.openstreetmap.org
Repository UUID: b9d5c4c9-76e1-0310-9c85-f3177eceb1e4
Revision: 27140
1) прописал данные для доступа к базе в:
./inc/datasource-settings.xml.inc
2) Запускаю:
MAPNIK_MAP_FILE="osm.xml" MAPNIK_TILE_DIR="tiles/" ./generate_tiles.py
render_tiles( (-180.0, -90.0, 180.0, 90.0) osm.xml tiles/ 0 5 World )
### Map properties warning: 'bgcolor','minimum_version' are invalid, acceptable values are:
'background-color,background-image,srs,buffer-size,paths-from-xml,minimum-version,font-directory,maximum-extent,base'
### Font properties warning: 'face_name' is invalid, acceptable values are:
'face-name'
Traceback (most recent call last):
File "./generate_tiles.py", line 214, in <module>
render_tiles(bbox, mapfile, tile_dir, 0, 5, "World")
File "./generate_tiles.py", line 135, in render_tiles
renderer = RenderThread(tile_dir, mapfile, queue, printLock, maxZoom)
File "./generate_tiles.py", line 64, in __init__
mapnik.load_map(self.m, mapfile, True)
RuntimeError: Failed to find font face '' in FontSet 'book-fonts' in map 'osm.xml'
osm.xml - тот, что идёт из svn-а, в корне mapnik-a...
Если же всё же сделать, как советовали выше:
upgrade_map_xml.py osm.xml osm2.xml
часть вывода:
Changing face_name to face-name
Changing face_name to face-name
Changing face_name to face-name
После этих манипуляций вроде что-то сгенерировалось и даже показывается в рельсах! :-)
matrix.org: @progserega:rsprim.ru
Offline
#72 2011-11-28 04:45:12
- progserega
- Member
- From: Владивосток
- Registered: 2009-12-31
- Posts: 456
Re: создание своего OSM-сервера, как прокси
Товарищи, подскажите такой момент, насчёт баз.
В документации по установке ruby on rails говорится, что нужно создать три базы:
createdb -E UTF8 -O openstreetmap openstreetmap
createdb -E UTF8 -O openstreetmap osm_test
createdb -E UTF8 -O openstreetmap osm
openstreetmap - основная - в неё загружаются пользовательские данные редактирования.
osm_test - тестовая, говорят, что она перезатирается при инициализации - для внутренних нужд?
osm - production - зачем она?
Проинициализировал пустую базу openstreetmap, добавил туда парочку объектов (через josm, который подключается к локальным рельсам).
Теперь задача срендерить с неё слой mapnik-ом. Но мапник хочет базу postgis.
Т.е. данные нужно перегонять из одной базы (openstreetmap) в базу postgis (gis) и потом уже натравливать на неё mapnik?
Last edited by progserega (2011-11-28 06:08:53)
matrix.org: @progserega:rsprim.ru
Offline
#73 2011-11-28 16:42:00
- s-s-s
- Member
- From: Russia, Moscow
- Registered: 2009-09-10
- Posts: 373
- Website
Re: создание своего OSM-сервера, как прокси
Товарищи, подскажите такой момент, насчёт баз.
В документации по установке ruby on rails говорится, что нужно создать три базы:
createdb -E UTF8 -O openstreetmap openstreetmap
createdb -E UTF8 -O openstreetmap osm_test
createdb -E UTF8 -O openstreetmap osmopenstreetmap - основная - в неё загружаются пользовательские данные редактирования.
osm_test - тестовая, говорят, что она перезатирается при инициализации - для внутренних нужд?
osm - production - зачем она?
Я нигде не видел четкого описания для чего она, но было бы логично иметь отдельную базу для резервного копирования, выгрузок дампов и прочих задач, несвязанных с наполнением первичными данными.
Проинициализировал пустую базу openstreetmap, добавил туда парочку объектов (через josm, который подключается к локальным рельсам).
Теперь задача срендерить с неё слой mapnik-ом. Но мапник хочет базу postgis.Т.е. данные нужно перегонять из одной базы (openstreetmap) в базу postgis (gis) и потом уже натравливать на неё mapnik?
Судя по общей схеме ОСМ - это так
http://wiki.openstreetmap.org/wiki/File … onents.png
Мое описание выше именно об этом этапе - подготовка данных к рендерингу.
Last edited by s-s-s (2011-11-28 16:42:17)
С уважением, Сергей.
Offline
#74 2011-11-30 01:35:35
- progserega
- Member
- From: Владивосток
- Registered: 2009-12-31
- Posts: 456
Re: создание своего OSM-сервера, как прокси
progserega wrote:Из последнего. Кому интересно...
Есть, есть такие
По возможности пишите как идет дело.
Я, собрав такую конструкцию, столкнулся с проблемой обновления осм-данных такой усеченной базы мира. В итоге приходится каждый раз перезаливать заново всё полностью. Как у вас с этим?
Чувствую, что буду делать аналогично, т.е. раз в неделю на выходных перезаливать базу и рендерить заново подложку ОСМ.
matrix.org: @progserega:rsprim.ru
Offline
#75 2011-11-30 04:56:06
- progserega
- Member
- From: Владивосток
- Registered: 2009-12-31
- Posts: 456
Re: создание своего OSM-сервера, как прокси
progserega wrote:Проинициализировал пустую базу openstreetmap, добавил туда парочку объектов (через josm, который подключается к локальным рельсам).
Теперь задача срендерить с неё слой mapnik-ом. Но мапник хочет базу postgis.Т.е. данные нужно перегонять из одной базы (openstreetmap) в базу postgis (gis) и потом уже натравливать на неё mapnik?
Судя по общей схеме ОСМ - это так
http://wiki.openstreetmap.org/wiki/File … onents.pngМое описание выше именно об этом этапе - подготовка данных к рендерингу.
О! Большое спасибо за картинку (и за документацию ещё раз :-) ). После надо будет наваять полную инструкцию по поднятию своего rails-сервера... Со всеми возможными подводными камнями.
Почему-то generate_tyles.py валились с ошибкой:
render_tiles( (131.980255, 43.098925999999999, 131.985131, 43.102438999999997) osm2.xml tiles/ 10 16 Vladivostok )
Postgis Plugin: SRID warning, using srid=-1
Traceback (most recent call last):
File "./generate_tiles_vlad.py", line 218, in <module>
render_tiles(bbox, mapfile, tile_dir, minZoom, maxZoom, "Vladivostok")
File "./generate_tiles_vlad.py", line 135, in render_tiles
renderer = RenderThread(tile_dir, mapfile, queue, printLock, maxZoom)
File "./generate_tiles_vlad.py", line 64, in __init__
mapnik.load_map(self.m, mapfile, True)
RuntimeError: :
ERROR: relation "planet_osm_polygon" does not exist
LINE 4: from planet_osm_polygon
^
Full sql was: 'SELECT * FROM
(select way,aeroway,amenity,landuse,leisure,man_made,military,"natural",power,tourism,name,highway,
case when religion in ('christian','jewish') then religion else 'INT-generic'::text end as religion
from planet_osm_polygon
where landuse is not null
or leisure is not null
or aeroway in ('apron','aerodrome')
or amenity in ('parking','university','college','school','hospital','kindergarten','grave_yard')
or military in ('barracks','danger_area')
or "natural" in ('field','beach','desert','heath','mud','wood','sand','scrub')
or power in ('station','sub_station','generator')
or tourism in ('attraction','camp_site','caravan_site','picnic_site','zoo')
or highway in ('services','rest_area')
order by z_order,way_area desc
) as leisure
LIMIT 0'
(encountered during parsing of layer 'landcover' in map 'osm2.xml')
Оказалось, что данные нужно заливать в gis-базу не командой:
osm2pgsql --style /usr/local/share/osm2pgsql/default.style --create --database db-local\
--username usr-local --prefix planet --slim --cache 2048 --hstore first-dump_api.osm
а с изменённым префиксом:
osm2pgsql --style /usr/local/share/osm2pgsql/default.style --create --database db-local\
--username usr-local --prefix planet_osm --slim --cache 2048 --hstore first-dump_api.osm
После этого моя одна тестовая точка, добавленная через josm на локальный rails-сервер была отрендерина и показана на карте на rails-сервере.
Правда пока показываю в виде правки строки тайлов для основного слоя Mapnik в /opt/osm/rails/public/openlayers/OpenStreetMap.js:
"http://gpw.rs.int/tilecache/tilecache.cgi/1.0.0/osm/${z}/${x}/${y}.png"
Сейчас осталось разобраться как правильно туда прописать отображение моего отрендеренного слоя, чтобы по галочке он включался и отключался в rails-сервере...
matrix.org: @progserega:rsprim.ru
Offline