Does graphviz take edge lengths as input? One could let it do its magic and should, for correct data, get a map.
(I've used it with street intersection data from Wikidata and it came up with a surprisingly good map of Berlin, only mirrored.)
(I've used it with street intersection data from Wikidata and it came up with a surprisingly good map of Berlin, only mirrored.)
We developed some software to optimize for least squared error and then plot points. Not a sophisticated algorithm, but it worked well! https://github.com/cproctor/triangulation