# How to generate a map projection in which equidistance is maintained along routes?

In this SE.History question, an answer had shared a map from this PDF,
,
showing two shipping routes between London and the Arabian Gulf.

I assume that these shipping routes aren't equidistant. This is, I assume that, if we trace a route at equal lengths, it wouldn't correspond to equal travel distances across the Earth's surface.

I'm curious what such a projected map would look like, but I don't seem to see an appropriate projection in Wikipedia's list of map projections.

Specifically, the projection should:

1. Maintain equidistance along arbitrarily drawn routes.

2. Seek to minimally distort the other parts of the map, especially those closest to the routes.

Since such a projection would depend on the routes selected, it'd need to be more of a dynamic projection where the map of Earth looks different depending on the routes being displayed.

Question: Is there an algorithm that creates projected maps in which a selection of routes maintains equidistance?

• Regarding the downvote: First time asking a question here, so if something seems off or could otherwise use improvement, please let me know! – Nat Apr 6 at 18:30
• Do you mean equidistance along each route? Or equal distances on different routes should also stay equal? Either way this could go terrible pretty fast... – Džuris Apr 6 at 19:39
• @Džuris Each pixel-length along a route represents the same distance. – Nat Apr 6 at 19:41
• I got that any two lengths on the same route represent must represent the same distance, but what about two lengths on different routes? Anyway, there is probably no reasonable way to do that in general. Consider a route going from North Pole to South Pole to North Pole to South Pole each time along a different meridian. There's three equal distances between two points, so you can't display it without merging two or introducing artificial wiggles in at least one of them... – Džuris Apr 6 at 20:58
• 2D maps are absolutely horrible at preserving distances on a 3D globe. I'm not exactly a fully trained GIS expert, but in the GIS work I have done (which is nontrivial), I've only heard of projections that can preserve direct global distances to a single point. And those come with massive distortion. You're asking for a winged unicorn or a circular square; it doesn't exist. Some projections can approximate small, local distances fairly well near a point of interest, but not globally. – jpmc26 Apr 7 at 9:16

## 3 Answers

The closest projection I'm aware of that fulfills your question is the Snake Projection. This is a projection that is tailored to a single route across the globe and is 'true scale' within about 20km of the trend line. Distances are true if calculated within this zone only.

In theory there's no limit to the length of a Snake Projection; however beyond the limits of the design area the distortion is essentially uncontrolled.

Further information can be found here.

The simple answer is no, there is no such projection which preserves the equidistance property at all parts of the map. It is not mathematically possible to project a globe onto a flat map without introducing distortions of linear scale or without first tearing (ie, slicing up) the globe. That's a fundamental law of map projections.

Another fundamental law is that there is zero distortion at the contact point or line, that is, along the places where the globe and map coincide exactly. Several projections will, however, preserve the equidistance property in certain other cases (away from the place of contact). They may have equidistance either in all directions from a certain point or in certain directions from all points, but not both.

Since you mention algorithms, you can always calculate and report on-the-globe distances along your arbitrary routes, using geodetic methods, and show them on some otherwise appropriate projection – as appears to have been done with the example map in your question.

• OP is only asking for correct scale along the two given routes (which can be treated as a single, looped route), not everywhere on the map. – Nick Matteo Apr 8 at 22:36
• @kundor The question explicitly contradicts you: "Seek to minimally distort the other parts of the map, especially those closest to the routes." – jpmc26 Apr 9 at 0:45
• That doesn't contradict what I said. OP wants the specified routes to be correctly scaled. The rest of the map should be minimally distorted, i.e. distorted as little as possible while respecting requirement #1. – Nick Matteo Apr 9 at 3:51
• @jpmc26 kundor's interpretation is correct. The question's phrased the way it is because equidistance along the routes is the main thing to preserve; for the rest of the map, we'd want to try to minimize the distortions. – Nat Apr 9 at 8:19

tl;dr- This partial answer is meant to illustrate a naive algorithm that satisfies this question. The gist is to apply localized image-warping transforms along routes to expand/compress them into having a uniform scaling, producing a map that has equidistantly scaled routes. A more developed solution would include a methodology for ensuring that the rest of the map's distortions are minimized.

As a partial answer to my own question (to help clarify), we can get equidistant scaling like this:

1. Start with some map graphic, e.g. the one from the question statement:
.

2. Select the first route along that path and move along that route in some arbitrarily small increment, e.g. by 1 pixel or something.

3. Calculate the real-world distance of that increment.

4. Select that increment's scaling as the uniform scaling to be used for all routes.

5. Continue along the first route, taking further arbitrarily small incremental steps.

6. For each subsequent step, again calculate its scaling.

7. Calculate the ratio of the current step's scale against the selected uniform scaling (from Step (4)).

8. Apply a local image-warping transform that:

1. Stretches or compresses the current route-step such that the scaling matches the selected uniform scaling.

2. Doesn't distort any section of any route that's been previously processed (though may distort sections of routes that have yet to be processed).

3. Tries to avoid unnecessarily distorting the rest of the map (though may do so to an extent that's necessary).

9. Go back to Step (5), repeating until the route's scaling is fully equidistant.

10. Select the next route to be processed, starting with its start.

11. Go back to Step (9), repeating until all routes are scaled to have mutually equidistant scaling.

This algorithm works, kinda. I mean, it'd get routes to have equidistant scaling, but since it operates blindly in an arbitrarily progressive manner, it's pretty unlikely to yield optimal results. In particular, it'll likely result in the rest of the map being unnecessarily distorted.

A fuller answer to this question would include a particular set of objectives that describe map distortions to be minimized (as I imagine those in the field have well-established) and then an algorithm for ensuring an optimal solution to those objectives.