Страница 1 из 2

Проблема с делением районов

СообщениеДобавлено: 13 ноя 2015 (Пт), 17:33
Tsvetik
Есть такая проблема.

Многие походы проходят по нескольким районам, например:
Терскей+Ак-Шийрак
Терскей+Куйлю+Ак-Шийрак
Кокшаалтоо + Борколдой

Такие походы приходится помещать в район Центральный Тянь-Шань.

Сейчас таких походов накопилось очень много. Если хочется посмотреть все походы, проходившие по Борколдою, то получается огромный список походов, среди которых много Ак-Шийрака, Терскея и других районов, не относящихся к делу.
Вот пример:
http://westra.ru/passes/Reports/view_re ... ?place=265

Чтобы это исправить и не сильно переделывать базу, наверное, можно сделать возможность добавлять к походу несколько районов. Например, максимум пять или десять (велосипедные походы могут захватывать большие регионы).

Re: Проблема с делением районов

СообщениеДобавлено: 13 ноя 2015 (Пт), 19:32
slazav
Районы в этом каталоге - это вообще какое-то зло многоуровневое... Как с ним бороться правильно - я не знаю.

Re: Проблема с делением районов

СообщениеДобавлено: 13 ноя 2015 (Пт), 20:13
slazav
Я бы, например, такой путь предложил:

Вводится отдельный объект, никак не связанный с существующими: "настоящий район". Такие районы обладают следующими свойствами:
- Заданы определенной границей (которая не проходит через перевалы и вершины)
- Не пересекаются
- Имеют разумный размер. Большинство походов должно попадать в 1-2-3 района.
- В конечном итоге покрывают все места, где есть перевалы.

Возможно, вводятся надрайоны для группировки: Памир, Кавказ, Север России, Горы Сибири, Горы Дальнего Востока и т.п.

Возможно, вводятся подрайоны, тоже заданные границей, и только с одним уровнем вложности. Они не обязаны все покрывать.

Далее довольно логично делается вывод списка всех перевалов, относящихся к данному (под-)району (просто по координатам) и список всех походов, перевалы которых попадают в заданный (под-)район

Далее придумывается процедура привязки существующего перевала к походу, которая использует эти новые районы и не использует старые.

Далее все старые районы из перевалов и походов удаляются!

Re: Проблема с делением районов

СообщениеДобавлено: 13 ноя 2015 (Пт), 21:03
Tsvetik
Такой вариант влечет глобальную переделку логики работы районов.

Ну, а еще не понятно как быть с перевалами, не имеющими координат. Их привязка к району все равно будет ручной. Так же и с походами, в которых присутствуют перевалы без координат.

Re: Проблема с делением районов

СообщениеДобавлено: 17 дек 2018 (Пн), 12:41
maxim.cat
Tsvetik писал(а):Ну, а еще не понятно как быть с перевалами, не имеющими координат

А можно пример, как это - перевал без координат? Можно же примерные установить по картам

Re: Проблема с делением районов

СообщениеДобавлено: 22 дек 2018 (Сб), 14:44
Сергей Титов
Для части походов, когда заход-выход идет через один район, а содержательная часть -- в другом (например походы в Ак-Шийрак, с пересечением Терскея) есть хак:
Заводим поход в объемлющем районе (Тянь-Шань), добавляем в него все перевалы из вспомогательного района (Терскей), меняем район похода на основной район (Ак-Шийрак).

Недостатки:
-- не совсем честно
-- поход не будет появляться в списке походов по Терскею (но если там посещены хорошо описанные перевалы, то проблем нет).
-- не работает, если поход содержательно два района

Преимущества:
-- поход есть в карточках всех своих перевалов
-- поход не светится во всех посторонних подрайонах Тянь-Шаня

Re: Проблема с делением районов

СообщениеДобавлено: 23 фев 2023 (Чт), 23:24
Сергей Титов
Подумываю, не подойдет ли в качестве паллиатива понятие "второго района" (вторичного?) для похода.

Исчезнут проблемы с походами по КЧР с финишем на Эльбрусе. Терскей - Ак-Шиийрак, Терскей-Куйлю, Куйлю-Ак-Шиийрак,
нескольким мелкм районам западного Терскея, Борколдой - Кокшаал-Тау, чего-нибудь на Памиро-Алае.

Останутся, правда, для тройки Терскей - Ак-Шиийрак - Куйлю и м.б. каких-то ещё подобных (а кто знает другие?)
Но это уже встречается гораздо реже.

Отчет ищется, в любом из своих районов. Первый район обязателен, второй -- по желанию. Перевалы добавляются из обоих.
Можно подумать про ограничение на смежность двух районов (или м.б. наличие общего родительского района)

Re: Проблема с делением районов

СообщениеДобавлено: 24 фев 2023 (Пт), 00:05
slazav
Мне по-прежнему кажется, что походы не должны быть напрямую связаны с районами. Они уже связаны с перевалами, которые связаны с районами.
При создании отчета должна быть возможность выбрать любые районы и набрать из них любых перевалов.
А при поиске походов по району надо проходить по всем перевалам района и выбирать все отчеты, которые с ними связаны.

Re: Проблема с делением районов

СообщениеДобавлено: 24 фев 2023 (Пт), 00:21
maxim.cat
upd: исправил очень неприятную неточность)

Такая проблема встречается также при добавлении отчёта, когда добавляешь перевалы, что ищутся по району похода. Например, многие отчёты по Архызу захватывают не только перевалы около поляны Таулу (напр. из хребта Абишира-Ахуба), которые, формально, не относятся к "Архыз, верховья Бзыби", поэтому приходится устанавливать таким отчётам район "Западный Кавказ". Если же там ещё и Хотютау затесалось - то только "Кавказ".

Можно попробовать добавить второй район, да, но на 100% не уверен, что проблема уйдёт. Кто не парился ранее, указывая "Тянь-Шань" для походов по Куйлю, продолжат так делать.

п.с. знакомые мне тройки:
Загедан - Архыз - Домбай
Суган - Караугом - Цей

Re: Проблема с делением районов

СообщениеДобавлено: 24 фев 2023 (Пт), 00:23
maxim.cat
slazav писал(а):Мне по-прежнему кажется, что походы не должны быть напрямую связаны с районами. Они уже связаны с перевалами, которые связаны с районами


Мне тоже так кажется. Однако усложнится добавление перевалов в нитку маршрута - какой перевал из всех "Безымянных" или "Окно" надо добавлять, если пользователь укажет его в нитке маршрута? или введёт в поиске

Re: Проблема с делением районов

СообщениеДобавлено: 24 фев 2023 (Пт), 00:39
slazav
> Мне тоже так кажется. Однако усложнится добавление перевалов в нитку маршрута - какой перевал из всех "Безымянных" или "Окно" надо добавлять, если пользователь укажет его в нитке маршрута? или введёт в поиске

Сейчас: вводишь район для похода, набираешь из него перевалов.
Предлагается: выбираешь район (можно более мелкий), набираешь перевалы; выбираешь другой район, выбираешь перевалы из него...

Re: Проблема с делением районов

СообщениеДобавлено: 24 фев 2023 (Пт), 00:47
maxim.cat
>> Предлагается: выбираешь район (можно более мелкий), набираешь перевалы; выбираешь другой район, выбираешь перевалы из него...
Я так и делаю, но сохраняться при изменении района (с обязательной перезагрузкой, чтобы перевалы подтянулись) немного неприятно, особенно если задумался и не сохранил изменения в галочках... ajax

Получается, что всё же надо будет где-то указывать какой-то район/регион? Я думал, ты предлагаешь вообще не указывать район

Re: Проблема с делением районов

СообщениеДобавлено: 24 фев 2023 (Пт), 00:55
slazav
Я предлагаю выбирать район только в диалоге выбора перевалов. С походом его не связывать.

Re: Проблема с делением районов

СообщениеДобавлено: 24 фев 2023 (Пт), 09:57
Сергей Титов
slazav писал(а):Я предлагаю выбирать район только в диалоге выбора перевалов. С походом его не связывать.

Походу без района плохо: автоматическое добавление перевалов по нитке такого мусора надобавляет...

Ну и есть опасения, что поиск отчетов по району начнет тормозить:

Сейчас это:
-- найти все подрайоны
select * from reports where region in () -- и этот in маленький -- районов всего меньше 500

будет:
-- найти все подрайоны
select * from reports r
inner join passes_of_report por on r.id = por.report_id
и дальше либо еще один join по самим перевалам, чтобы потом добавить where pass_region in ()

либо то же самое руками
отдельно найти все перевалы района, а потом
where por.pass_id in () -- и этот in у Тянь-Шаня будет стабильно включать 900 элементов

Re: Проблема с делением районов

СообщениеДобавлено: 24 фев 2023 (Пт), 11:40
slazav
> Походу без района плохо: автоматическое добавление перевалов по нитке такого мусора надобавляет...

Да, автомату будет плохо без знания района. Но можно встроить этот автомат в тот же диалог выбора перевалов: выбираешь район, нажимаешь кнопку "автоматически добавить перевалы по нитке маршрута". Может, это и хорошее решение, можно ставить маленький район и не получать перевалы-тезки из большого. Ну и хорошо это делать в том же диалоге, где можно вручную добавить/удалить перевал.

> Ну и есть опасения, что поиск отчетов по району начнет тормозить:

Ну, можно держать отдельную индексную таблицу "районы <-> походы" (или как это правильно называется?).
Правильно я понимаю, что этот поиск происходит только когда человек явно нажимает кнопку "список описаний" на странице района? Может, это и не такая частая операция