You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
#6726 2014-07-11 11:18:11
- akrikov
- Member
- From: Ульяновск
- Registered: 2014-07-10
- Posts: 6
Re: Вопросы новичков
Ну для начала взять свежий нормальный osm2pgsql для поддержки 64-х битных id в данных ОСМ. Судя по всему у вас проблема именно с id в PostGIS базе. Текущие id в данных ОСМ (хранимые в PostGIS — специальное уточнение для пользователя wowik, который читает только ответы), уже давно вышли за диапазон 32 бит.
p.s. ну и хоть это и не относится к проблеме, но в 2014 году использовать PostgreSQL ниже версий 9.2/9.3 — моветон.
Спасибо, проблема решилась. Я использовал osm2pgsql_32bitId.exe (её использовал потому, что подумал *32bit.exe rfr hfp lkz 32 битной винды).
После вашего поста решил использовать osm2pgsql.exe (который лежал рядышком с вышеуказанным файлом). И все удачно закачалось, без ошибок. Тайлы генерятся хорошие, без всякого мусора на картинке.
На 15-18 zoom вылетает ошибка:
2014-07-11 14:07:23 MSK ОШИБКА колонка "generator:source" не существует (символ 45)
2014-07-11 14:07:23 MSK ОПЕРАТОР SELECT ST_AsBinary("way") AS geom,"barrier","generator:source","highway","man_made","natural","power","power_source","railway" FROM (select *
from planet_osm_point
where aeroway in ('airport','aerodrome','helipad')
or barrier in ('bollard','gate','lift_gate','block')
or highway in ('mini_roundabout','gate')
or man_made in ('lighthouse','power_wind','windmill','mast')
or (power='generator' and ( power_source='wind'))
or "natural" in ('peak','volcano','spring','tree','cave_entrance')
or railway='level_crossing'
) as symbols WHERE "way" && ST_SetSRID('BOX3D(5085814.113982484 7334897.234245511,5088260.098887615 7337343.219150642)' ox3d, 900913)
2014-07-11 14:07:23 MSK ОШИБКА колонка "generator:source" не существует (символ 45)
2014-07-11 14:07:23 MSK ОПЕРАТОР SELECT ST_AsBinary("way") AS geom,"barrier","generator:source","highway","man_made","natural","power","power_source","railway" FROM (select *
from planet_osm_point
where aeroway in ('airport','aerodrome','helipad')
or barrier in ('bollard','gate','lift_gate','block')
or highway in ('mini_roundabout','gate')
or man_made in ('lighthouse','power_wind','windmill','mast')
or (power='generator' and ( power_source='wind'))
or "natural" in ('peak','volcano','spring','tree','cave_entrance')
or railway='level_crossing'
) as symbols WHERE "way" && ST_SetSRID('BOX3D(5085814.113982487 7333674.241792951,5088260.098887612 7336120.226698075)' ox3d, 900913)
2014-07-11 14:07:23 MSK ОШИБКА колонка "generator:source" не существует (символ 45)
2014-07-11 14:07:23 MSK ОПЕРАТОР SELECT ST_AsBinary("way") AS geom,"barrier","generator:source","highway","man_made","natural","power","power_source","railway" FROM (select *
from planet_osm_point
where aeroway in ('airport','aerodrome','helipad')
or barrier in ('bollard','gate','lift_gate','block')
or highway in ('mini_roundabout','gate')
or man_made in ('lighthouse','power_wind','windmill','mast')
or (power='generator' and ( power_source='wind'))
or "natural" in ('peak','volcano','spring','tree','cave_entrance')
or railway='level_crossing'
) as symbols WHERE "way" && ST_SetSRID('BOX3D(5085814.113982487 7336120.226698078,5088260.098887612 7338566.211603202)' ox3d, 900913)
2014-07-11 14:07:23 MSK ОШИБКА колонка "generator:source" не существует (символ 45)
2014-07-11 14:07:23 MSK ОПЕРАТОР SELECT ST_AsBinary("way") AS geom,"barrier","generator:source","highway","man_made","natural","power","power_source","railway" FROM (select *
from planet_osm_point
where aeroway in ('airport','aerodrome','helipad')
or barrier in ('bollard','gate','lift_gate','block')
or highway in ('mini_roundabout','gate')
or man_made in ('lighthouse','power_wind','windmill','mast')
or (power='generator' and ( power_source='wind'))
or "natural" in ('peak','volcano','spring','tree','cave_entrance')
or railway='level_crossing'
) as symbols WHERE "way" && ST_SetSRID('BOX3D(5085814.113982487 7332451.249340389,5088260.098887612 7334897.234245515)' ox3d, 900913) Проблема в версии postgresql?
Offline
#6727 2014-07-11 11:29:46
- Max Vasilev
- Member

- Registered: 2009-06-16
- Posts: 1,026
- Website
Re: Вопросы новичков
ОШИБКА колонка "generator:source" не существует
osm2pgsql использует правила для заливки в базу, в которых описано какой конкретно тег заносить в базу, а какой нет. У вас мапник пытается рисовать объект отмеченный тегом «generator:source», а такого объекта в базе нет. Правила эти по дефолту описаны в файле default.style, где он в windows находится я даже предположить не могу, а во всех остальных системах он чаще всего в /usr/share/osm2pgsql/default.style. Просто добавьте недостающие теги, которые у вас присутствуют в стиле для мапника в этот файл и заново залейте данные в базу.
Или возьмите дефолтный стиль из репозитария самого osm2pgsql: https://github.com/openstreetmap/osm2pg … ault.style и допишите то, чего вам не хватает, если этого там нет. Запускать osm2pgsql с ключём -S <файл.style>
Offline
#6728 2014-07-11 11:31:34
- Vitalts
- Member
- From: Estonia
- Registered: 2010-12-30
- Posts: 1,440
Re: Вопросы новичков
del
Last edited by Vitalts (2014-07-11 11:32:01)
Offline
#6729 2014-07-11 11:32:24
- freeExec
- Moderator
- From: Ульяновск,Модератор всех слоёв
- Registered: 2012-07-31
- Posts: 8,547
Re: Вопросы новичков
Видимо схема старая, т.к. в новой есть
node,way generator:source text linearOffline
#6730 2014-07-11 11:46:52
- wowik
- Member

- From: Zelenograd
- Registered: 2009-09-29
- Posts: 9,368
Re: Вопросы новичков
Я решил? Нет, отрицательные id - это объективный факт, я это только что показал.
Никто не читает ШТОСМ то, что пишут другие. Я писал об id в базе OSM, а не вообще об id в OSM софтах, ибо обсуждаемое мной утверждение было такое
Текущие id в данных ОСМ уже давно вышли за диапазон 32 бит.
---
А вот вы решили и написали некорректный софт который в вашем конкретном случае работает, только и всего.
Корректность софта определяется корректностью выполнения поставленных задач, а не всех возможных задач, что можно придумать.
Обрабатывать файлы JOSM не аплоаднутые на сервер задача не ставилась. Генеренные псевдо ID не имеет смысл печатать в полученных табличных результатах.
Но, к слову сказать, софт работает и в случае небольших отрицательных ID (которые генерит JOSM), ибо они не еще "пересеклись" с реальными.
Last edited by wowik (2014-07-11 12:03:53)
Offline
#6731 2014-07-11 13:07:14
- akrikov
- Member
- From: Ульяновск
- Registered: 2014-07-10
- Posts: 6
Re: Вопросы новичков
ОШИБКА колонка "generator:source" не существует
osm2pgsql использует правила для заливки в базу, в которых описано какой конкретно тег заносить в базу, а какой нет. У вас мапник пытается рисовать объект отмеченный тегом «generator:source», а такого объекта в базе нет. Правила эти по дефолту описаны в файле default.style, где он в windows находится я даже предположить не могу, а во всех остальных системах он чаще всего в /usr/share/osm2pgsql/default.style. Просто добавьте недостающие теги, которые у вас присутствуют в стиле для мапника в этот файл и заново залейте данные в базу.
Или возьмите дефолтный стиль из репозитария самого osm2pgsql: https://github.com/openstreetmap/osm2pg … ault.style и допишите то, чего вам не хватает, если этого там нет. Запускать osm2pgsql с ключём -S <файл.style>
Спасибо за оперативную помощь. Теперь не ругается на "generator:source".
Смотрел базу, посмотрел дома в Ульяновске. Их там очень мало. Получается, что не все дома привязаны к адресу, т.е. не имеют координат в базе.
Простите за мою наглость, конечно, кто-нибудь не поможет сделать список всех домов Ульяновска с привязкой к улице (Пример: дом №15, ул.Верхнеполевая, широта=..., долгота=...)
Last edited by akrikov (2014-07-11 13:08:01)
Offline
#6732 2014-07-11 13:16:18
- Vitalts
- Member
- From: Estonia
- Registered: 2010-12-30
- Posts: 1,440
Re: Вопросы новичков
Не на всех домах проставлены адреса. Ваш пример (Пример: дом №15, ул.Верхнеполевая, широта=..., долгота=...) мне найти не удалось. Ткните носом в карту.
Offline
#6733 2014-07-11 13:24:08
- Sergey Astakhov
- Member

- From: St.Petersburg, Russia
- Registered: 2009-11-13
- Posts: 5,817
Re: Вопросы новичков
Смотрел базу, посмотрел дома в Ульяновске. Их там очень мало. Получается, что не все дома привязаны к адресу, т.е. не имеют координат в базе.
Судя по валидатору ошибки в Ульяновске есть, но их не так уж и много.
Вы как выборку делали, геометрически или по addr:city? Последнее считается избыточным тегированием и обычно не заполняется. Стандартным способом привязки к городу является по геометрии, по попаданию в соответствующий полигон place.
Offline
#6734 2014-07-11 14:16:20
- akrikov
- Member
- From: Ульяновск
- Registered: 2014-07-10
- Posts: 6
Re: Вопросы новичков
Не на всех домах проставлены адреса. Ваш пример (Пример: дом №15, ул.Верхнеполевая, широта=..., долгота=...) мне найти не удалось. Ткните носом в карту.
Координаты:
Широта: 54°19′44.92″N (54.329145)
Долгота: 48°23′9.47″E (48.385965)
Ульяновск, Россия, Верхнеполевая, 15
Offline
#6735 2014-07-11 14:36:23
- Vitalts
- Member
- From: Estonia
- Registered: 2010-12-30
- Posts: 1,440
Re: Вопросы новичков
Ну так и есть, нет на этом здании адреса. JOSM в руки и вперед восстанавливать справедливость. Денек подождете, что бы ваши изменения попали в дамп региона, обновите свою базу и будут у вас адреса...
Offline
#6736 2014-07-11 14:48:55
- akrikov
- Member
- From: Ульяновск
- Registered: 2014-07-10
- Posts: 6
Re: Вопросы новичков
Ну так и есть, нет на этом здании адреса. JOSM в руки и вперед восстанавливать справедливость. Денек подождете, что бы ваши изменения попали в дамп региона, обновите свою базу и будут у вас адреса...
Таких адресов очень много. Как бы вот собрать базу всех домов Ульяновска. На яндекс-карте напривер почти все есть.
Offline
#6737 2014-07-11 14:58:15
- SviMik
- Member

- From: Tallinn, Estonia
- Registered: 2013-01-01
- Posts: 1,392
Re: Вопросы новичков
Как бы вот собрать базу всех домов Ульяновска. На яндекс-карте напривер почти все есть.
За такие фразы тут на костре сжигают ![]()
Offline
#6738 2014-07-11 15:11:05
- akrikov
- Member
- From: Ульяновск
- Registered: 2014-07-10
- Posts: 6
Re: Вопросы новичков
Как бы вот собрать базу всех домов Ульяновска. На яндекс-карте напривер почти все есть.
За такие фразы тут на костре сжигают
Соррри, конечно. Но я же не собираюсь обрисовывать с ихних карт.
Offline
#6739 2014-07-13 19:01:23
- newpavlov
- Member
- Registered: 2014-03-28
- Posts: 511
Re: Вопросы новичков
Так, если возможно, хотелось бы вернуться к вопросу о выборе статуса *_link'ов при пересечении дорог с разным статусом. Как я понял по заявлениям, сейчас "принят" подход, что выбирается наивысший статус, тем не менее похоже большинству (в т.ч. и мне) более логичным кажется подход выбора меньшего статуса. Так что, может ли кто-то пояснить почему "принято" выбирать наивысший статус? Чем это мотивированно?
Ну и второй вопрос, на который чётко не был обозначен ответ, что делать с ref'ами? Проставлять ref высшей или низшей дороги? Как быть с пересечением дорог одинакового статуса? Стоит ли включать линки в отношение type=route? (роль для этого вроде имеется)
Offline
#6740 2014-07-13 19:16:35
- freeExec
- Moderator
- From: Ульяновск,Модератор всех слоёв
- Registered: 2012-07-31
- Posts: 8,547
Re: Вопросы новичков
ref перечисляются через ";". В маршрут включают только те участки по которым нужно ехать.
Offline
#6741 2014-07-14 04:53:50
- andriano
- Member

- Registered: 2009-06-15
- Posts: 1,667
Re: Вопросы новичков
Так, если возможно, хотелось бы вернуться к вопросу о выборе статуса *_link'ов...
Ну и второй вопрос, на который чётко не был обозначен ответ, что делать с ref'ами? Проставлять ref высшей или низшей дороги? Как быть с пересечением дорог одинакового статуса? Стоит ли включать линки в отношение type=route? (роль для этого вроде имеется)
1. Высший статус более удобен при алгоритмической обработке данных, в частности, для проведения генерализации, думаю, поэтому и принято такое решение. Да и по ГОСТам и другим аналогичным документам, вроде, так.
2. Думаю, на link'ах ref'ы проставлять не нужно, т.к. там они не имеют смысла. Кстати, валидаторы исходят именно из этого правила.
2а. Если проехать, минуя link, нельзя - почему нет? IMHO маршрут не должен содержать разрывов.
Last edited by andriano (2014-07-14 05:09:50)
Offline
#6742 2014-07-14 05:58:23
- VikDD
- Member
- From: RU, Moscow-Yaroslavl
- Registered: 2010-04-21
- Posts: 1,867
Re: Вопросы новичков
ref на линках, если сам линк - нумерован, не надо на него ref "основной" трассы вешать.
Offline
#6743 2014-07-14 07:33:59
- dkiselev
- Member
- Registered: 2010-02-09
- Posts: 3,364
Re: Вопросы новичков
1. Высший статус более удобен при алгоритмической обработке данных, в частности, для проведения генерализации, думаю, поэтому и принято такое решение. Да и по ГОСТам и другим аналогичным документам, вроде, так.
Чем удобнее то?
mail: dkiselev@osm.me skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!
Offline
#6744 2014-07-14 12:51:49
- dimuzz
- Member
- From: Екатеринбург
- Registered: 2009-09-10
- Posts: 1,843
Re: Вопросы новичков
Так, если возможно, хотелось бы вернуться к вопросу о выборе статуса *_link'ов при пересечении дорог с разным статусом. Как я понял по заявлениям, сейчас "принят" подход, что выбирается наивысший статус, тем не менее похоже большинству (в т.ч. и мне) более логичным кажется подход выбора меньшего статуса. Так что, может ли кто-то пояснить почему "принято" выбирать наивысший статус? Чем это мотивированно?
Давняя дискуссия.. Договорились вроде как вот до чего (мол, дальше думайте сами):
Вы должны использовать тип съезда, который отражает набор правил, действующих на съезде. Если на съезде дейстуют правила автомагистралей (110 км/ч, запрет велосипедов и т.п.), используйте highway=motorway_link; если правила дорожного движения на магистральных дорогах (для вашей страны) - используйте highway=trunk_link и так далее.
Это не всегда может быть обозначение для наибольшей из двух дорог, которые она соединяет.
С Ref все просто:
Ref'ы маршрута на съездах должны быть опущены, если съезд не входит в маршрут.
Last edited by dimuzz (2014-07-14 12:53:32)
Offline
#6745 2014-07-14 21:27:04
- Sibri
- Member
- Registered: 2014-07-14
- Posts: 100
Re: Вопросы новичков
Доброго времени суток.
У меня проблема возникла с экспортом из GPSMapEdit файлов MP, которые были получены из OSM с помощью утилиты osm2mp. Проблема заключается в том, что в интересующей меня области существует ряд полилиний, которые не вполне соответствуют ряду требований:
1. Несколько дорог состоят из большого числа точек (их приходится в GPSMapEdit резать на 2).
2. Некоторые узлы дорожного графа находятся слишком близко (обычно это просто лишние узлы - я их удаляю и топология не нарушается).
Эти проблемы решаемы, но занимают ряд времени.
Теперь собственно вопрос: картографируя местность мне показалось более удобным вариантом использовать JOSM и потом заливать это на сервер а уже потом из полученного (вместе с результатами работы других людей) делать карты для Garmin. Только вот чтобы потом не подгонять под cgpsmapper карту в польском формате могу ли я внести правку в виде расчленения мегадлинной дороги на 2 составляющие? Ну и небольшие правки с лишними маршрутными узлами у полилиний, которые ближе 2 метров один от другого. Естественно все без вредительства и с аннотациями.
Offline
#6746 2014-07-14 21:45:32
- Max Vasilev
- Member

- Registered: 2009-06-16
- Posts: 1,026
- Website
Re: Вопросы новичков
Удаление точек из данных, расположенных ближе 2 метров - это уже и есть вредительство. Текущая разрядность данных в ОСМ где-то порядка 20 см. Если в вашей конкретной задаче под ваш конкретный софт существуют какие-то более строгие ограничения и гораздо меньшая разрядность, используйте дополнительную фильтрацию и обработку данных уже после получения их из ОСМ, воспользуйтесь какими нибудь конвертерами, позволяющими уменьшать плотность данных с безвозратной потерей части данных, но снижать точность любых данных в самой базе ОСМ - это вандализм.
Offline
#6747 2014-07-14 22:06:57
- Sibri
- Member
- Registered: 2014-07-14
- Posts: 100
Re: Вопросы новичков
...это вандализм.
Конечно снижать точность - это вандализм. Никто и не спорит, но вы тоже не будете спорить с тем, что на ровную прямолинейную дорогу можно изобразить всего лишь двумя точками, а лишние точки - это избыточность (если конечно же нет примыкающих дорог и т.д.). Ведь не зря же в JOSM инструмент придумали ("Упростить линию" - удалить из линии ненужные точки). Вот о таких точках и идет речь, а снижать точность никто не собирается.
Давайте чтобы вы понимали о чем идет речь я приведу пример, например вот этот отрезок какую точность вносит? Не будет вандализмом, если объединить его с предыдущим сегментом?
http://www.openstreetmap.org/way/160264523
И как на счет дорог? Там ведь точность не снижается.
Offline
#6748 2014-07-14 22:21:55
- Max Vasilev
- Member

- Registered: 2009-06-16
- Posts: 1,026
- Website
Re: Вопросы новичков
Естественно надо подходить с умом. Конкретный случай не снизит точности. Но на подобных отрезках могуть быть отношения ограничений, поэтому надо всегда смотреть внимательно.
И всё равно, все данные вы не сможете подогнать под разрядность 2 метра, всё равно придётся использовать внешнюю фильтрацию данных.
Offline
#6749 2014-07-14 23:14:49
- Sergey Astakhov
- Member

- From: St.Petersburg, Russia
- Registered: 2009-11-13
- Posts: 5,817
Re: Вопросы новичков
Никто и не спорит, но вы тоже не будете спорить с тем, что на ровную прямолинейную дорогу можно изобразить всего лишь двумя точками, а лишние точки - это избыточность (если конечно же нет примыкающих дорог и т.д.). Ведь не зря же в JOSM инструмент придумали ("Упростить линию" - удалить из линии ненужные точки). Вот о таких точках и идет речь, а снижать точность никто не собирается.
Для коротких линий - нет, сам иногда практикую упрощение, некоторое товарищи чрезмерно увлекаются обкликиванием каждого пиксела на спутнике. Особенно эта избыточность заметна после обновлений спутниковых снимков.
Однако для длинных линий (больше км) двух точек уже будет явно мало. Земля у нас не плоская однако.
Offline
#6750 2014-07-15 05:48:20
- chnav
- Member

- From: Russia, mapping Kazakhstan
- Registered: 2010-03-18
- Posts: 3,303
Re: Вопросы новичков
Однако для длинных линий (больше км) двух точек уже будет явно мало. Земля у нас не плоская однако.
Довольно часто возникает ситуация - дорога построена прямо (смысла нет делать виляния по 3-5 метров), а на спутнике извилистая, её с усердием обклацывают. На самом деле это издержки ортокоррекции по SRTM. Дорога была, есть и останется прямой, а вот обработка разных снимков отличается. В Казахстане не редкость прямые участки в десятки километров.
Что касается кривизны Земли - строители тоже не дураки и строят прямые отрезки по оптической оси. На М-7 лично видел участки - дорога повторяет рельеф, ныряет вверх-вниз, но абсолютно прямая на километры вперёд. Возвращаемся к тезису про некачественную ортокоррекцию.
Собственно основная моя мысль - надо подходить с умом, индивидуально в каждом случае.
PS: GPS-треки полевых дорог реально надо упрощать. Едут, объезжают каждую лужу, и всё это заносится в ОСМ.
Last edited by chnav (2014-07-15 05:55:50)
Offline