Мда… Смерть для приезжего эти хитрые адресации. Вспоминаются поиски в Зеленограде свежепостроенного корпуса, которому достался номер новый, а место - от старого, снесенного. В результате 50 корпус стоял между 6 и 8, а весь микрорайон был пронумерован по порядку…
Ezhick, дак в street собирать веи улицы как раз перворыльно, в второ-рыльно – домики. Ты погоди пока тащить, не устоялось ничего еще. Годи до завтра))
Народ, глянул примеры ваши, пока свой сделать тоже раскочегаривался… а мне казалось в голове, пока не начал делать, что у нас два отношения-прослойки при двойной адресации – на каждый номер, нет?
Или по-Лёшиному – первый основной адрес входит напрямую, а дополнительный через отношение-прослойку? Так вроде и по-экономней получается, с точки зрения непложения сущностей… Пойду тоже покумекаю еще…
Значит так, докладываюсь и я про свои измышления. Вот дом с двойным адресом. Первый адрес прописан прямо на доме, по старинке, основной, ул. Максима Горького 38/45. Этот дом участник двух отношений:
Отношение type=street Максима Горького ул. (116526) (в роли house) ссылка,
Отношение 418789 type=address ссылка.
Второе отношение имеет следующие теги:
В свою очередь отношение address состоит в:
3) Отношение type=street Отношение Володарского ул. (418790) (в роли house) ссылка.
ну как?
upd: хотя я считаю, что прописывать addr:street на отношении type=address это излишество! (делал по Лёшиному в основном), потому что вполне достаточно того, что address ссылается на street, и название ТАМ.
Впрочем, как и в простом одноадресном варианте – на полигоне дома только Номер дома (addr:housenumber), а улицу (addr:street) смотри на самом отношении type=street. Так и плодить одинаковы еслова не надо, и от ошибок защита (от коллизий). Выглядит наверно свежо, но мне очень нравится. (у меня сейчас не так, но о чём-то подобном мечтаю)))
liosha, но ведь релейшен пространственной привязки не имеет. Будешь проверять вхождение всех его членов в полигон?
А у меня будет по два адреса на каждое здание, значит каждый объект будет проверяться два раза?
Есть условие необходимое, а есть достаточное проверить дом, взяв любую попавшуюся его улицу (буде он принадлежит нескольким) и проверить ее, улицы, вхождение в полигон - условие достаточное.
Нет смысла проверять другие улицы - сильно вряд ли, что дом по одной улице торчит в одном населенном пункте, а по другой улице - в другом
А так да, собрать все дороги из отношения улицы - собрать полную улицу - и проверить ее вхождение в полигон. И это никак не костыль, это вполне достаточные данные в базе. А костыль это как раз всякие is_in и прочие дополнительные и искусственные упрощалки вхождения.
upd: На самом деле, никто не запрещает навигационным программам строить внутри себя таблицы вхождений тех или иных объектов в разные образования - населенные пункты, районы и прочее - в любой системе индексов. Что бы один раз произведенный расчет наследовать какое-то время и не пересчитывать заново. Или в том же рендере считать такие таблицы скажем каждый раз с приемом в систему нового diff’a, не чаще.
А насчет сбора улиц в отношение населенного пункта я бы тоже сделал так, если бы Леша не предупредил, что так делать не надо. Хотя я и не знаю, почему:)
Эх, еще бы кто понимал такую новую систему… Если в конвертере всё заработает, наверно надо доводить пропозал до ума и дарить тем, кто заведует конфигами мапника
Alexandr Zeinalov, “лучшесть” будет зависеть от способа оценки “лучшести”
В нашем случае (крауд-сорсовый проект) лучшим будет самый очевидный и дубовый способ.
Надо объяснять, почему?
Самый очевидный и дубовый способ - это Karlsruhe. И если чётко документировать разнесение префиксов-суффиксов у улиц в разные тэги, плюс добавить, например, кладр-код - то вычислить принадлежность АБСОЛЮТНО ЛЮБЫХ улиц можно без проблем и безо всяких отношений. Не надо нам частичных костыльных решений. Или у нас чёткая структура, или мы соглашаемся на костыли везде и разрешаем юзерам не мучиться со всеми этими тонкостями.
А теперь расскажи, как ты будешь обрабатывать Внуково и Толстопальцево. Или Старбеево-Клязьму.
Карлсруэ - избыточно, что есть плохо.
Жёсткие правила по тегам не живут шире одного города. Проверено достаточно раз.
Кладрокоды - только Россия, что не всем интересно. Кроме того (как ни странно), кладрокоды прописываются ботом на основании попадания объектов в полигоны
Внуково и Толстопальцево - сложный вопрос.
Решение зависит от того, ЧТО у нас является там нас. пунктом: Внуково или Москва.