Программа для создания карт метро MetroMapEditor

У Вас есть идея, как лучше построить метро? Своя трассировка предполагаемой линии? Нарисовали свою схему будущего метро?
Вам сюда!
Ответить
Manhattan
Сообщения: 1721
Зарегистрирован: 20 сен 2012, 21:39
Станция метро: Приморская

Программа для создания карт метро MetroMapEditor

Сообщение Manhattan »

Всем привет!
Сделал небольшую программку для создания сколь угодно сложных карт метро и фэнтезимапов в несколько кликов мыши.
Программа создана на основе открытого проекта OpenStreetMap (и в частности исходных кодов демонстрационного проекта OSMCtrlApp), использует в качестве подложки карты OpenStreetMap и поэтому требует подключения к интернету для подгрузки тайлов.

Возможности:
Создание неограниченного количества линий, как линейных так и кольцевых
Сохранение и загрузка схем метро в файле
Динамическое масштабирование (колесом мыши или кнопками масштаба)
Макимальное количество станций в линии 200, максимальное количество линий, пересекающихся в одной станции 12 (просто для оптимизации, вряд ли в где-то мире есть пересадка на 12 линий сразу)
Все линии рисуются красивыми сплайнами
Создание новых линий одним кликом мыши, создание станций кликом мыши, перемещение станций мышью, управление режимами мыши через контекстное меню по правой кнопке
Автоматическое создание пересадок при добавлении станции в позицию уже существующей
Все метро представлено в древовидном окне сбоку, там тоже есть контекстное меню, позвляющее переименовывать и удалять станции и линии, назначать станциям каждой линии цвет, группировать и разгруппировывать пересадки, включать и отключать закольцованность линии

В общем-то и все. Запускаться вроде бы должна на любой Windows, ничего особо не требует кроме GDI+, который сейчас есть везде. В качестве бонуса в архиве - карта существующего метро, которую можно загрузить, посмотреть и использовать как основу для создания других карт. Если будет возможность, буду развивать ее, сделаю экспорт в png в произвольном масштабе, настройки шрифтов и цветов, улучшения интерфейса и т.п.
P.S. Почаще сохраняйте промежуточные результаты, у меня программа один раз вылетела в странном месте при попытке изменить цвет станций линии, причину так и не нашел...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Константин Филиппов
Сообщения: 4893
Зарегистрирован: 06 окт 2004, 11:02
Станция метро: Озерки
Откуда: Санкт-Петербург
Контактная информация:

Re: Программа для создания карт метро MetroMapEditor

Сообщение Константин Филиппов »

Не стоит забывать про сложные ситуации вроде вилок, петель, прокладки нескольких линий в одном тоннеле, и пересадки с линии на саму себя (даже такое встречается, например в Лондоне разорвали и продлили Сёркл-лайн, в результате линия стала напоминать цифру 6 [отзеркаленную и положенную набок] с пересадкой в стыке, при этом несколько линий в одном тоннеле тоже имеются). За границей вообще много тяжёлых случаев, советую погуглить.

Судя по скриншоту цвета линий у вас везде одинаковые, лучше, чтобы была возможность их задавать в зависимости от цвета на официальной схеме.

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

Запустил программу и обнаружил один косяк — невозможно менять расположение станций на линии, хотел добавить «Театральную», а она упорно вставляется после «Улицы Дыбенко» и нет возможности перенести её в положение перед «Спасской». Даже если такая возможность и есть, она не очевидна (по хорошему нужно менять последовательность станций на линии таская их по списку станций слева). Переведите программы на русский (или сделайте дополнительно русскую версию).

А это что за фигня:
Untitled-1.jpg
почему не подписано?
И самое главное добавьте UNDO. :evil:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ab AVTOVO
Manhattan
Сообщения: 1721
Зарегистрирован: 20 сен 2012, 21:39
Станция метро: Приморская

Re: Программа для создания карт метро MetroMapEditor

Сообщение Manhattan »

Косяки там конечно есть, через недельку исправлю. Вставлять станции можно в любое место линии, после выделенной станции или перед ней, как раз эти кнопочки и управляют как вставлять - после станции или перед ней. Для этого нужно выбрать линию (сделать ее активной).
С Театральной тем ни менее косяк в том, что там пересадка, а при выделении пересадки мышью выделяется какая-то одна станция этой пересадки (первая попавшаяся), а надо чтобы выделялась та, которая находится на "активной" линии. Временное решение - "разгруппировать" Сенную-Садовую-Спасскую, отвести Спасскую немного в сторону, сделать Театральную, вернуть Спасскую на место и сгруппировать обратно. Но это действительно косяк, я его исправлю как только будет время. Ну и в целом с интерфейсом неясно - поскольку я придумывал все сам, то изначально было неочевидно, какой способ работы будет наиболее удобным и интуитивно понятным.
Ну и плюс еще несколько вещей надо сделать - выделение станции на карте при выделени ее в дереве, например.
Вилки не поддердживаются, просто непонятно как их наложить на иерархическую структуру (можно сделать пересадку и еще одну линию). Петли (пересечения линии с собой) поддерживаются уже сейчас. Параллельные линии тоже - возможно будет немного некрасиво визуально.
Смысл программы пока - просто проектировать новые ветки метро, без подробностей типа расположения выходов, но если кому-то будет интересно - можно будет открыть исходники.
Аватара пользователя
Константин Филиппов
Сообщения: 4893
Зарегистрирован: 06 окт 2004, 11:02
Станция метро: Озерки
Откуда: Санкт-Петербург
Контактная информация:

Re: Программа для создания карт метро MetroMapEditor

Сообщение Константин Филиппов »

Manhattan писал(а):Вилки не поддердживаются, просто непонятно как их наложить на иерархическую структуру (можно сделать пересадку и еще одну линию).
А вот нарисуйте-ка мне таким способом Киевский узел в Москве, там три станции, одна из которых развилка. По вашему способу «Киевская» Филёвской линии займёт половину кружка, в то время как на Арбатско-Покровскую и Кольцевую достанется по 1/4.

Ещё несколько замечаний:
1. Очень неудобно, что в режиме рисования схемы нельзя подвинуть карту не поставив на ней станции, в большинстве программ передвижение схемы организовано по нажатию на среднюю клавишу мыши (она же колёсико).
2. Режим выбора способа добавления станции до или после существующей должен быть активен всегда, а то при активации карты левым щелчком мыши автоматически ставится станция приходится менять режим потом удалять станцию и ставить заново.
3. Надписи на схеме располагаются несколько странно, и далековато от кружка. Это может иметь смысл, когда линия располагается горизонтально, но когда она располагается вертикально появляется ощущение, что что-то не то. На пересадках вообще получается невесть что, вторая добавленная станция оказывается снизу, а название второй добавленной станции иногда пишется сверху. Непорядок.
4. При сильном отдалении схемы надписи надо убирать, а то получается несъедобная каша.
5. Чисто эстетически, на тройном пересадочном узле — сектора лучше располагать как эмблему Mercedes'а.
6. Переименование станций лучше делать не через контекстное меню, а по двойному щелчку мыши прямо в списке, примерно как в Photoshop'е с текстовыми слоями.
7. Удаление станции нужно реализовать через её выделение и последующем нажатием на клавишу delete.

Может добавить возможность выделять строящиеся и проектируемые участки?
ab AVTOVO
Аватара пользователя
Фуфсяк
Сообщения: 1048
Зарегистрирован: 06 апр 2005, 17:05
id ВКонтакте: 0
last_fm: MetroFan
Станция метро: Ленинский Проспект
Откуда: Санкт-Петербург

Re: Программа для создания карт метро MetroMapEditor

Сообщение Фуфсяк »

Да хватит придираться, я вот, например, давно мечтал о такой программе. Косяки есть, но ведь и работа над программой только начата. Это ведь, если не ошибаюсь первый её релиз? В общем, спасибо, очень интересно! Буду ждать следующие версии!
От вселенской любви только морды в крови.
Аватара пользователя
Divan
Сообщения: 571
Зарегистрирован: 31 мар 2010, 10:48
id ВКонтакте: 49263630
Станция метро: Приморская
Откуда: Питер

Re: Программа для создания карт метро MetroMapEditor

Сообщение Divan »

Программа конечно с характером. Пусть и не из раздела "без поллитры не разобраться", но тем не менее. Я долго не втыкал, что нужно линию делать активной, чтобы добавлять станции. Но в целом - зачёт! :)
Вот, попытался сделать. Может, кого заинтересует.

P.S. Внезапно "Расширение metro запрещено администратором." Ну да что там, пусть будет архивчик.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Жаль только, жить в эту пору прекрасную
Уж не придётся ни мне, ни тебе...

В детстве я мечтал остаться ночью в метро и посмотреть, как меняют батарейки в поездах и заводят эскалаторы.
Аватара пользователя
6o4ka
Сообщения: 81
Зарегистрирован: 28 дек 2012, 17:26
Станция метро: Адмиралтейская-1

Re: Программа для создания карт метро MetroMapEditor

Сообщение 6o4ka »

Может торможу, но чего-то не понял, как станции к северу добавлять? например после Приморской.
у меня линия упорно разворачивается назад от Рыбацкого %)
Аватара пользователя
Константин Филиппов
Сообщения: 4893
Зарегистрирован: 06 окт 2004, 11:02
Станция метро: Озерки
Откуда: Санкт-Петербург
Контактная информация:

Re: Программа для создания карт метро MetroMapEditor

Сообщение Константин Филиппов »

Я позволю ещё раз ответить на эту цитату, но в другом ключе.
Manhattan писал(а):Вилки не поддердживаются, просто непонятно как их наложить на иерархическую структуру (можно сделать пересадку и еще одну линию).
Вы же сами почти решили задачу с иерархией. Можно сделать ещё одну линию (лучше оформить как суб-линию), но при этом не добавлять новую станцию в узел (можно реализовать как опцию, например через checkbox). Кстати возможность поставить на линии ключевую точку без добавления станции явно не помешает, особенно если кривая плохо соответствует реально существующему перегону (очень хорошо заметно при попытке нарисовать наземный участок).
ab AVTOVO
Аватара пользователя
taigaa
Сообщения: 79
Зарегистрирован: 04 авг 2009, 02:37
id ВКонтакте: 0
last_fm: taigadenis
Станция метро: Бухарестская

Re: Программа для создания карт метро MetroMapEditor

Сообщение taigaa »

было бы полезно добавить автоматический подсчет расстояний как перегонов, так и общих
Manhattan
Сообщения: 1721
Зарегистрирован: 20 сен 2012, 21:39
Станция метро: Приморская

Re: Программа для создания карт метро MetroMapEditor

Сообщение Manhattan »

С вилками подумаю. Сублинии не очень ложатся на структуру, но сделать что-нибудь можно. Ключевые точки в принципе тоже возможны. Расчет расстояний возможен только между географическими точками по прямым линиям, то есть он никогда не будет точно соответствовать реальным длинам перегонов (только если действительно сделтать кучу ключевых точек).

Сейчас, как я понял, наиболее неудобным оказалось именно редактирование линий - добавление новых станций и т.д.
Сейчас логика такая - есть два режима: добавление после выделенной станции и добавление перед выделенной. Каждая новая добавленная станция становится выделенной. Это обеспечивает возможность добавлять станции в начало и в конец ветки, а также вставлять их после и перед любой станцией.
Какие есть идеи как это можно улучшить?
Аватара пользователя
Divan
Сообщения: 571
Зарегистрирован: 31 мар 2010, 10:48
id ВКонтакте: 49263630
Станция метро: Приморская
Откуда: Питер

Re: Программа для создания карт метро MetroMapEditor

Сообщение Divan »

Хотелось бы, чтобы он сам додумывался, добавлять станцию перед, или после текущей. Например, сравнивая расстояния.
То есть, например, хочу я развить НВЛ. Для этого выбираю режим добавления станций, тыкаю в Приморскую - он делает НВЛ активной линией, тыкаю в, условно говоря, Смоленское кладбище, и он понимает - ага, от этой станции до Приморской и до Василеостровской ближе, чем длина перегона Василеостровская-Приморская, значит, юзер хочет воткнуть промежуточную станцию. Или тыкаю я на Крестовский остров, и он - ага, эта станция дальше от Василеостровской, чем Приморская, значит, это продолжение линии за Приморскую. Как-то так.

Ну, это в идеале. На худой конец, надо, чтобы было очевидно, где какой конец у линии. А то из двух кнопок мне приходилось методом тыка выбирать нужную. Или я до чего-то не допёр?

Надо ли делать промежуточные точки, рассчёт длин линий - не знаю. Не знаю, насколько это соответствует идеи этой программы. Всё же она, насколько я вижу, нужна чисто для рисования схемок.
Если уж кто хочет точную трассировку, то это делать нужно прежде всего в 3d - иначе не так интересно.

Лично я хочу увидеть в следующей версии экспорт в виде картинки. И конечно, кнопку "undo".
Жаль только, жить в эту пору прекрасную
Уж не придётся ни мне, ни тебе...

В детстве я мечтал остаться ночью в метро и посмотреть, как меняют батарейки в поездах и заводят эскалаторы.
Аватара пользователя
Константин Филиппов
Сообщения: 4893
Зарегистрирован: 06 окт 2004, 11:02
Станция метро: Озерки
Откуда: Санкт-Петербург
Контактная информация:

Re: Программа для создания карт метро MetroMapEditor

Сообщение Константин Филиппов »

Manhattan писал(а):Сейчас, как я понял, наиболее неудобным оказалось именно редактирование линий - добавление новых станций и т.д.
Сейчас логика такая - есть два режима: добавление после выделенной станции и добавление перед выделенной. Каждая новая добавленная станция становится выделенной. Это обеспечивает возможность добавлять станции в начало и в конец ветки, а также вставлять их после и перед любой станцией.
Какие есть идеи как это можно улучшить?
Единственное, что я могу предложить — это сортировку последовательности станций перемещением их по списку слева (как слои в Photoshop'е, например). Станции соединяются линиями в той последовательности в которой обозначены в списке, то есть создал станцию нажатием на её местоположением, допустим она добавилась в конце линии, а нужно в начале, лезешь мышкой список и мышкой drag станцию и тащишь её в то место, где она должна быть и там её drop. При этом станцию можно перенести и на другую линию (напр., выделил в списке «Крылатское» и «Молодёжную» на Филёвской линии, затем drag'n'drop их на Арбатско-Покровскую). Однако ваш переключатель тем не менее имеет смысл, когда одну линию нужно продлить в одну сторону, а другую в другую, иначе уперетаскиваешься. Но сделайте его доступным постоянно, пусть не блокируется при ковырянии со списком.

Убейте напрочь контекстное меню на карте, у вас эти кнопки расположены в основном меню, создание новой линии поместите туда, используйте нажатие на правую кнопку, чтобы двигать карту. Ещё такая мысль, что контекстное меню можно сделать и на левой кнопке, нажал на точку и вылезает меню с вариантами (добавить станцию » в конец линии, в начало линии; добавить контрольную точку), но это меню может быть удобно не каждому, поэтому если его и реализовывать, то исключительно через Опции.

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

А как вам такая структура для вилок:
    Филёвская линия
    |Александровский сад
    |Арбатская
    |Смоленская
    |Киевская
    сублиния1
    ||точка1 (соответствует координатам «Киевской» и изменяется вместе с ними, лучше скрыть из списка)
    ||Выставочная
    ||Международная
    |Студенческая
    |Кутузовская
    |Фили
    ...
    |Кунцевская

Создание сублинии можно реализовать через кнопку «Создать вилку», после чего нужно выбрать узловую станцию на активной линии. В результате создаётся сублиния и ключевая точка зависящая от координат выбранной станции, которая считается началом линии и далее обычным способом.

Внимание, в некоторых случаях узловая станция соответствует всем критериям пересадочной станции и имеет две отдельные платформы, поэтому решение отображать узловую станцию самостоятельно (как «Киевскую» Филёвской линии [пересадки на Кольцевую и Арбатско-Покровскую линии к данному вопросу не относятся]) или же как пересадочную (как «Каширскую» в бытность вилочного движения на Горьковско-Замоскворецкой линии) нужно оставить за пользователем.

При этом цвет сублинии соответствует цвету линии в состав которой она входит.

И ещё раз повторю неплохо было бы и перегоны красить в цвет линии.
ab AVTOVO
Marshal
Сообщения: 0
Зарегистрирован: 06 апр 2017, 17:21
Станция метро: Технологический Институт-1

Re: Программа для создания карт метро MetroMapEditor

Сообщение Marshal »

Было бы неплохо если бы можно было делать схему не только на карте, но и просто на белом фоне. Просто я хотел сделать схему метро в вымышленном городе которого нет на карте
Lumite
Сообщения: 0
Зарегистрирован: 26 фев 2018, 18:28
Станция метро: Парк Победы

Re: Программа для создания карт метро MetroMapEditor

Сообщение Lumite »

Как поставить станцию между двумя уже имеющимися?
Alan1234
Сообщения: 0
Зарегистрирован: 22 авг 2023, 13:58
Станция метро: Сенная Площадь

Re: Программа для создания карт метро MetroMapEditor

Сообщение Alan1234 »

Вместо названия магазина пишется "Рубль сдох", а ещё что похлеще, затрагивая темы насилия.Может лучше поменять на Google или Yandex? :fool: :fool: :fool:
https://drive.google.com/file/d/1JDvcxl ... sp=sharing
Ответить

Вернуться в «Наши идеи, мечты и варианты»