Добавление данных osm2psql, не работает...

SPb_maps
Интересующийся
Сообщения: 25
Зарегистрирован: 26 фев 2016, 23:55
Репутация: 0

Добавление данных osm2psql, не работает...

Сообщение SPb_maps » 28 фев 2016, 00:00

После установки оффлайн карт у меня работает та карта которая использовалась изначально, но сейчас к ней нужно добавить карту другой страны, она добавляется, пишет что успешно, но тайлы загруженной страны не прорисовываются, при попытке удалить БД и создать заново, туда также отгружается карта, но она не работает вообще, внутри другие название таблиц, а некоторых нет вообще.. Не понимаю как работать с default.style, насколько я понял, он указывает как укладывать данные, но при попытке указать его через -S выкидывает ошибку и не грузит вообще ничего, я пробовал разные версии default.style за разные года.. насколько я понял скрипт разворачивающий mapnik в нем прописывается карта которую нужно изначально развернуть вообще не использует defaul.style

Заранее спасибо за помощь!

Andrey Zhukov
Гуру
Сообщения: 834
Зарегистрирован: 10 дек 2009, 23:24
Репутация: 169
Ваше звание: старик-гисовик
Откуда: Москва
Контактная информация:

Re: Добавление данных osm2psql, не работает...

Сообщение Andrey Zhukov » 28 фев 2016, 07:48

1. Какой стек используется (ОС, пакеты, т.п.)?
2. Каким образом были загружены изначальные данные?
3. Что не так с таблицами? Какие были, какие появляются?
4. Как пытаетесь загрузить сейчас (команды полностью)?
5. Какие ошибки возникают?

SPb_maps
Интересующийся
Сообщения: 25
Зарегистрирован: 26 фев 2016, 23:55
Репутация: 0

Re: Добавление данных osm2psql, не работает...

Сообщение SPb_maps » 29 фев 2016, 13:24

1. Ubuntu 12.04.5 LTS, postgresql 9.1, как посмотреть версию mapnik и renderd не знаю
2. Установка скриптом, там была прописана карта и она загрузилась, подробнее пытаюсь разобраться, отлично понимаю что это ключ..
3. Список таблиц не совпадает, а также в новой БД многих пунктов просто нет, например planet_osm_ways
4. sudo -u osm osm2pgsql -r pbf -a -d gis -C 40000 --number-processes 32 --cache-strategy dense /home/osm/Downloads/finland-latest.osm.pbf
5. По пункту 4 карта прогружается, но просто не открываются новые области, может БД нужно как то инициализировать?
Если указываю конкретный default.style то вылетает вот это:
osm2pgsql SVN version 0.81.0 (64bit id space)

Using projection SRS 900913 (Spherical Mercator)
Error reading style file line 151 (fields=4)
flag 'phstore' is invalid in non-hstore mode
Error occurred, cleaning up

way abandoned:aeroway text phstore - 151 строка

SPb_maps
Интересующийся
Сообщения: 25
Зарегистрирован: 26 фев 2016, 23:55
Репутация: 0

Re: Добавление данных osm2psql, не работает...

Сообщение SPb_maps » 29 фев 2016, 13:49

Либо вылетает вот так:
Изображение

Andrey Zhukov
Гуру
Сообщения: 834
Зарегистрирован: 10 дек 2009, 23:24
Репутация: 169
Ваше звание: старик-гисовик
Откуда: Москва
Контактная информация:

Re: Добавление данных osm2psql, не работает...

Сообщение Andrey Zhukov » 29 фев 2016, 17:43

1. Проблема с опциями osm2pgsql, о чем вам он и сообщает. Не мешало бы читать ошибки внимательно. В созданной базе не используется hstore (и это нормально), а вы пытаетесь ему подсунуть стиль с указанием hsrote. Откуда вообще этот стиль у вас взялся?
2. Покажите структуру таблиц в PostgreSQL.
3. Запущен ли демон renderd?
4. Не стоит ли в настройках mod_tile запрет на кэш по запросу?

SPb_maps
Интересующийся
Сообщения: 25
Зарегистрирован: 26 фев 2016, 23:55
Репутация: 0

Re: Добавление данных osm2psql, не работает...

Сообщение SPb_maps » 29 фев 2016, 19:42

В исправной БД:
geography_columns postgres
geometry_columns gis
planet_osm_line osm
planet_osm_nodes osm
planet_osm_point osm
planet_osm_polygon osm
planet_osm_rels osm
planet_osm_roads osm
planet_osm_ways osm
spatial_ref_sys gis
В БД сделанной с нуля и развернутой планетой другие, смогу их завтра показать, я БД удалил сохранив дамп, с утра он разворачивается.. обещает под ночь развернуться..

renderd работает на БД исправной, тайлы прорисовываются, на БД рабочей + успешно импортированной карте - работает, не отображаются новые области - подгруженные, старые отображаются, в БД созданной с нуля и подгруженной туда картой renderd падает при запуске:
ошибка..Show
osm@osm-server:~$ renderd -f -c /etc/renderd.conf
Error opening file for reading: Permission denied
renderd[44718]: Rendering daemon started
renderd[44718]: Parsing section renderd
renderd[44718]: Parsing render section 0
renderd[44718]: Parsing section mapnik
renderd[44718]: Parsing section default
renderd[44718]: config renderd: unix socketname=/var/run/renderd/renderd.sock
renderd[44718]: config renderd: num_threads=16
renderd[44718]: config renderd: num_slaves=0
renderd[44718]: config renderd: tile_dir=/var/lib/mod_tile
renderd[44718]: config renderd: stats_file=/var/run/renderd/renderd.stats
renderd[44718]: config mapnik: plugins_dir=/usr/lib/mapnik/2.0/input
renderd[44718]: config mapnik: font_dir=/usr/share/fonts/truetype/ttf-dejavu
renderd[44718]: config mapnik: font_dir_recurse=0
renderd[44718]: config renderd(0): Active
renderd[44718]: config renderd(0): unix socketname=/var/run/renderd/renderd.sock
renderd[44718]: config renderd(0): num_threads=16
renderd[44718]: config renderd(0): tile_dir=/var/lib/mod_tile
renderd[44718]: config renderd(0): stats_file=/var/run/renderd/renderd.stats
renderd[44718]: config map 0: name(default) file(/etc/mapnik-osm-data/osm.xml) uri(/osm/) htcp() host(tile.mytile
renderd[44718]: Initialising unix server socket on /var/run/renderd/renderd.sock
renderd[44718]: Created server socket 4
renderd[44718]: Renderd is using mapnik version 2.0.0
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-BoldOblique.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerifCondensed-Bold.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerifCondensed.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Oblique.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed-Bold.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-BoldOblique.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-ExtraLight.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerifCondensed-Italic.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed-Oblique.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerifCondensed-BoldItalic.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed-BoldOblique.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldItalic.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed.ttf
renderd[44718]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Italic.ttf
Running in foreground mode...
renderd[44718]: Starting stats thread
renderd[44718]: DEBUG: Got incoming connection, fd 17, number 1
renderd[44718]: DEBUG: Got command RenderPrio fd(17) xml(default), z(16), x(38297), y(19038)
terminate called after throwing an instance of 'mapnik::datasource_exception'
what(): :
ERROR: function asbinary(geometry) does not exist
LINE 1: SELECT AsBinary("way") AS geom,"aeroway","amenity","highway"...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Full sql was: 'SELECT AsBinary("way") AS geom,"aeroway","amenity","highway","landuse","leisure","military","natural","power","religion","tourism" 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','prison')
or military in ('barracks','danger_area')
or "natural" in ('field','beach','desert','heath','mud','grassland','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
WHERE "way" && SetSRID('BOX3D(3380045.390770494 8394314.446278054,3385548.856807026 8399817.912314586)'::box3d, 900913)'
renderd[44718]: DEBUG: Got incoming connection, fd 18, number 2
renderd[44718]: DEBUG: Got command Render fd(18) xml(default), z(16), x(38297), y(19042)

Aborted (core dumped)

SPb_maps
Интересующийся
Сообщения: 25
Зарегистрирован: 26 фев 2016, 23:55
Репутация: 0

Re: Добавление данных osm2psql, не работает...

Сообщение SPb_maps » 29 фев 2016, 19:46

4. Как проверить? Я его не настраивал..


Сегодня решил попробовать по своей инструкции всё заново развернуть, но конечно версии всего поменялись и теперь полная засада.. на 12.04 где всё стоит нет gcc 4.8 а он теперь требуется, на 14.04 нет postgresql 9.1 postgis и нужно искать замену, я конечно прилагаю все усилия для всех вариантов разрешения проблемы, но т.к. у меня всё развернуто и работает, в идеале нужно просто обновить карту здесь.. Ещё раз спасибо за помощь!

Andrey Zhukov
Гуру
Сообщения: 834
Зарегистрирован: 10 дек 2009, 23:24
Репутация: 169
Ваше звание: старик-гисовик
Откуда: Москва
Контактная информация:

Re: Добавление данных osm2psql, не работает...

Сообщение Andrey Zhukov » 29 фев 2016, 21:01

А почему обязательно надо postresql 9.1?
На 14.04 все встает на ура:
https://switch2osm.org/serving-tiles/ma ... ver-14-04/
Для 12.04 тут:
https://switch2osm.org/serving-tiles/ma ... ver-12-04/

Демон жалуется на совершенно конкретную проблему:
ERROR: function asbinary(geometry) does not exist

SPb_maps
Интересующийся
Сообщения: 25
Зарегистрирован: 26 фев 2016, 23:55
Репутация: 0

Re: Добавление данных osm2psql, не работает...

Сообщение SPb_maps » 01 мар 2016, 00:15

Увы мне это не о чем не говорит, завтра пришлю таблицу, какая она получается после загрузки данных, я предполагаю что он не видит как раз какого то раздела, который не создается, потому что данные укладываются не так как он хочет их получать.. я прав?

Andrey Zhukov
Гуру
Сообщения: 834
Зарегистрирован: 10 дек 2009, 23:24
Репутация: 169
Ваше звание: старик-гисовик
Откуда: Москва
Контактная информация:

Re: Добавление данных osm2psql, не работает...

Сообщение Andrey Zhukov » 01 мар 2016, 16:23

В новой созданной базе нет функции asbinary. Отчего, почему и откуда эта функция взялась - вопрос к вашему скрипту, который разворачивал сервак. Дайте ссылку на него, что ли.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3369
Зарегистрирован: 11 апр 2008, 21:09
Статьи: 33
Проекты: 9
Репутация: 516
Ваше звание: Author
Контактная информация:

Re: Добавление данных osm2psql, не работает...

Сообщение Denis Rykov » 01 мар 2016, 18:09

Эту функцию можно добавить, см. PostGIS legacy.sql.
Spatial is now, more than ever, just another column- The Geometry Column.

SPb_maps
Интересующийся
Сообщения: 25
Зарегистрирован: 26 фев 2016, 23:55
Репутация: 0

Re: Добавление данных osm2psql, не работает...

Сообщение SPb_maps » 01 мар 2016, 18:20

Вот БД созданная с нуля с заказченной планетой, без указания на конкретный defaul.style
gis_planet=# \dt
List of relations
Schema | Name | Type | Owner
--------+--------------------+-------+-------
public | planet_osm_line | table | osm
public | planet_osm_point | table | osm
public | planet_osm_polygon | table | osm
public | planet_osm_roads | table | osm
public | spatial_ref_sys | table | osm
(5 rows)

в случае использования этой БД renderd падает сразу при попытке сдвинуть карту, т.е. при запросе тайла

в таблице, приведенной до этого всё работает успешно. Но после заливки данных, не отображаются новые области! Вот список её таблиц, после дополнения новой картой:


gis=# \dt
List of relations
Schema | Name | Type | Owner
--------+--------------------+-------+-------
public | geometry_columns | table | gis
public | planet_osm_line | table | osm
public | planet_osm_nodes | table | osm
public | planet_osm_point | table | osm
public | planet_osm_polygon | table | osm
public | planet_osm_rels | table | osm
public | planet_osm_roads | table | osm
public | planet_osm_ways | table | osm
public | spatial_ref_sys | table | gis
(9 rows)

SPb_maps
Интересующийся
Сообщения: 25
Зарегистрирован: 26 фев 2016, 23:55
Репутация: 0

Re: Добавление данных osm2psql, не работает...

Сообщение SPb_maps » 01 мар 2016, 18:33

Мне не ясны кардинально несколько моментов:

1. Чем определяется формат данных который нужен renderd и mapnik или же всем им нужна БД в одном стиле?
2. osm2psql складывает данные в разном виде или на выходе один и тот же формат?!
3. Из двух вышестоящих моментов я не понимаю почему я получаю разные БД по формату содержимого..
4. Можно ли исправить мою БД планеты или же нужно закачать в том формате как была старая с помощью default.style?


Я пробую разобраться с тем как это было настроено ранее, но по старой схеме уже не ставится, т.к. модули обновились и зависимости другие.. сейчас разбираюсь, то что я нашёл в скрипте вроде данные только в nominatim ставятся..
https://github.com/cyclestreets/nominatim-install - вот к этому пункту сейчас не подойти

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3369
Зарегистрирован: 11 апр 2008, 21:09
Статьи: 33
Проекты: 9
Репутация: 516
Ваше звание: Author
Контактная информация:

Re: Добавление данных osm2psql, не работает...

Сообщение Denis Rykov » 01 мар 2016, 18:46

Из всего выше сказанного я понял только то, что вы используете старый Mapnik XML, а PostGIS свежий, в котором нет функции AsBinary, поэтому либо возьмите свежий Mapnik XML, либо добавьте недостающую функцию в БД - как я написал выше. Сам разворачивал стек OSM, никаких проблем не было - что к чему описал в статье.
Spatial is now, more than ever, just another column- The Geometry Column.

SPb_maps
Интересующийся
Сообщения: 25
Зарегистрирован: 26 фев 2016, 23:55
Репутация: 0

Re: Добавление данных osm2psql, не работает...

Сообщение SPb_maps » 01 мар 2016, 19:40

psql -d gis_planet -p 5432 -f /usr/share/postgresql/9.1/contrib/postgis-2.1/legacy.sql
я сделал правильно? Получил:
CREATE FUNCTION
CREATE AGGREGATE

но в списке таблиц ничего не изменилось.. не получается переименовать БД, поэтому я делал дамп, затем удалял БД и в новую созданную заливал этот, стоит повторять с этой БД или как понять что БД заработала, т.е. где указать другое имя БД для renderd и mapnik?

Спасибо за ссылку, изучаю..

Ответить

Вернуться в «PostGIS/PostgreSQL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость