Это всего лишь несколько советов о махании рукой - возьмите щепотку соли.
Мое представление о карте "метро" - это то, где линии имеют тенденцию к одному из восьми основных направлений, и станции регулярно располагаются.
Я предполагаю, что вы пытаетесь преобразовать набор реальных координат в координаты "метро".
Я бы начал с вашего основного маршрута (например, городской петли), а затем постепенно добавлял другие маршруты в порядке важности.
Для каждого маршрута вы хотите найти ближайшее приближение, которое использует наименьшее количество прямых линий, движущихся в восьми основных направлениях. Вы можете сделать это, начав с ограничительной рамки для реальных координат, разделив ее на сетку, затем найдя маршрут «метро» от квадрата сетки к квадрату сетки, а затем последовательно уточните этот маршрут, чтобы уменьшить количество изгибов, не искажая карту слишком много и без введения пересечений с другими маршрутами, если это вообще возможно.
Сделав это, масштабируйте каждую линию так, чтобы последовательные станции находились на одинаковом расстоянии друг от друга на виде «метро».
Полагаю, вы все равно захотите поддержать ручную настройку результата.
Удачи!