PostGIS не мой выбор. Задача слишком тривиально чтобы привлекать дополнительный софт и разбираться в нём. При нормальной схеме с отношениями я могу и перлом по osm пробежаться и всю нужную информацию получить - сколько городов, сколько сёл, какова численность населения, дата основная, страница в Википедии, точки границы, точка центра и т.п.
Что-то я подозреваю, что не занимается Он без базы работает, чисто c OSM и готовых функций проверки принадлежности там нет (нашел специализированные FindCity, FindSuburb, POI в здании).
Именно поэтому у нас все на теги завязано, а не на топологическую связность. Я не прав?
Почему никто не будет заниматься? Координаты и информация о городах это моя специализация Я могу сбацать валидатор и сам отслеживать эту информацию. А чтобы делать оптимально - можно расширить валидатор Дежина. У меня неплохая БД (не PostGIS естественно) населённых пунктов России со всякой полезной информацией, но связать её с ОСМом автоматом как-то не получается … То есть точка, то есть полигон, то есть и полигон и точка и то и ничего нет.
fserges, данные в ОСМ предполагаются для внесения руками. Поэтому схема этих данных не должна быть сложнее, чем способен внести нуб в потлаче, любая схема сложнее для ОСМ не годится. Это же азы
Всё остальное будет постоянно ломаться и только замусоривать базу - примеров уже достаточно.
На примере той же адресации, можешь посчитать, сколько на территории РФ ошмётков is_in-схемы, кладр-схемы и белорусской схемы, которые никому не нужны, но ежедневно жрут ресурсы на обработку.
Ну зачем же так жёстко? Всё-таки цель данного проекта нормальная карта или проект где каждый получает удовольствие от рисования чего-то? Если цель - только удовольствие, то проект скоро загнётся. Если нужно что-то помимо удовольствия, то нужны действующие механизмы а не констатация факта что бардак - это реальное, перманентное и даже имманентное свойство проекта.
Я для своих целей веду БД населённых пунктов России. Если отвлечься от мелких населённых пунктов то информация вполне обозрима и не требует каких-то особых усилий по поддержанию. Пару раз в год я уточняю содержимое БД, это обычно занимает несколько дней. Данные по всем мелким населённым пунктам - да, требуют усилий, но и информации по таким населённым пунктам обычно очень мало. Если есть простой механизм отождествления населённых пунктов (как угодно - КЛАДР, ОКАТО, почтовый индекс) то можно легко отслеживать состояние дел так и выявлять вандализм по мере поступления. Один прогон скрипта и отчёт готов.
А сейчас - кто в лес ко по дрова и вроде всё правильно. Большинство населённых пунктов обозначено только точкой. Некоторые и точкой и контуром. Некоторые только контуром, точки нет. Где-то атрибуты в точке, где-то на полигоне, где-то и там и там. И вроде бы всё правильно … Каждый получил своё удовольствие. Единственный реально удобный инструмент - валидатор Дежина, но он вроде как не является частью ОСМ, он строится с привлечением сторонних данных …
Как вернусь из отпуска проведу точный анализ этого бардака.
Не то чтобы совсем-совсем не считают (понятно, что в ней есть некая избыточность), но она есть и работает, а предлагается какая-то модернизация по-медведевски: старое разломать, ничего нового не построить, работающие приложения развалить, причем никакой рациональной причины для этого нет, кроме шила в одном месте.
Причем сама избыточность не бог весть какая проблема, можно будет подкрутить валидаторы, чтобы он искал рассогласования, если это кого-то в самом деле беспокоит.
А ведь это ровно то, что нужно сделать для распространения любой новой схемы, а тем более затрагивающей самые основы. В свое время подобное было сделано для тега highway, когда от классификации по физическим характеристикам перешли к классификации по важности.
Если это кажется невозможным, нужно заняться чем-то полезным, например пойти расставлять адреса на домах.
И в том и другом возможно есть некий смысл, но эти идеи мало просто озвучить. Их надо продвинуть в масштабах ВСЕГО OSM, что включает мапперов из разных стран, и кучу приложений, начиная с мапника и заканчивая всяческими конверторами.
Тут нужна не аргументация, а патчи к osm2mp и прочему софту. Почему-то все время забывают, что OSM - это не песочница для самовырожения, а карта и приложения, которыми пользуются тысячи людей.
Проталкивать надо будет новые (или не совсем новые) отношения, когда до них дело дойдёт.
А теги на точках - просто вопрос соглашения. Можно их, в конце концов, автоматически на полигоны переляпывать (не затирая старых, а подсвечивая их в валидаторе).
Это констатация не бардака, а того факта, что схема тегирования в массовом проекте в первую очередь должна быть простой. Механизмы проверки валидности разумеется нужны.
Какую все-таки реальную, насущную проблему мы пытаемся решить? Достижение некого абсолютного порядка и полной нормализации к таковым очевидно не относится (и оно и невозможно). Ну использует, например, конверсия в СГ addr:* c полигона, а population c точки, и что?
Да есть НП обозначенные только точкой. Если в данном НП (обычно это крохотные поселки/деревни ) нет обозначенных домов и улиц с названиями, то это не страшно. Дома вне НП все-равно показываются как ошибки. Города (city|town) без границ тоже показываются как ошибки.
НП, обозначеные только полигонами, без точки - это явная ошибка, я такое добавлю в свой валидатор.
Некоторая избыточность может быть это и не так плохо, в таком случае данные допускают проверку на внутреннюю согласованность.
На мой взгляд, самая большая проблема сейчас - это количество и качество addr:street и addr:housnumber на домах.
Нашёл я свой скрипт по анализу населённых пунктов, нужно его допилить для более точной статистики. Но бардак виден сходу. Буквально открыл и первая строчка отчёта:
Как можно понять, где информация правильная а где неправильная. И такого рода неразрешимых противоречий предостаточно … Схема не должна потакать ошибкам.
Upd. Кстати, а почему “центр” Колпино расположен внутри одного из кварталов? Почему там а не на Привокзальной площади или на проспекте Ленина! Мне кажется это произвол.
А мне кажется произволом деление на town и city. В оригинале это зависит от количества жителей. Что можно брать из population. Лучше были бы человеческие gorod, poselok, selo, derevnya. И была бы схема не допускающая, почти, ошибок. А программы научить их отождествлять с town и тп не сложно
dr&mx, опять началась ололо-революция Нынешняя схема place четко разделяет city|town по ожидаемой степени урбанизации в зависимости от совокупности признаков. Для официального статуса был какой-то тег (забыл какой именно), но он видимо никому не нужен.
fserges, это подмена понятий. Вот есть какой то объект, и на нем есть некий тег, например shop=convinience. Как узнать, правильный он или неправильный? Каким образом схема тегирования магазинов (shop=*) помогает избегать ошибок?
По поводу положения центра НП. Некоторые вещи определяются методом экспертных оценок. Это не есть хорошо, но так есть. Если ты не согласен с положением центра какого-то НП, обсуди его место с тем кто его поставил.