This is a desktop application for displaying Google Maps (and Bing) aerophotos with specially tailored distortions to make railway track layouts more clearly visible.
I don't particularly expect anyone but myself will really want to use it, but just in case someone I tell about it is curious, here are some notes:
For gross navigation, the application displays map tiles it has downloaded from one of various sources.
-
OpenStreetMap -- © OpenStreetMap Foundation and its contributors, map data licensed under Open Data Commons Open Database License. Tiles rendered by OpenStreetMap itself.
-
OpenStreetMap "Humanitarian" -- Map data from OpenStreetMap, rendered by OpenStreetMap France.
-
OpenTopoMap -- Map data from OpenStreetMap.
Kartendarstellung: © OpenTopoMap (CC-BY-SA)
The program can also show a map overlay from OpenRailwayMap, mainly useful because it contains track numbers in many locations
- OpenRailwayMap -- Data © OpenStreetMap contributors, Style: CC-BY-SA 2.0 OpenRailwayMap.
The aerophoto views use orthophoto tiles from
Google Maps
or alternatively Microsoft Bing.
For each of these, I use URL formats I've reverse engineered from
their public map websites. Since they're serving tiles from them
without as much as requiring a faked Referer
header, I suppose they
can't be too opposed in practice to consuming them in a small-scale
hobby project.
Google and Bing both have official APIs I probably should be using instead (which would also provide specific attributions to their photo subproviders, which vary from place to place) -- but those require API keys, and even though they have free plans available, it's unclear at best whether it makes sense to bundle an API key with source code I put up on GitHub.
If either provider actively complains to me, I suppose I can rewrite the code to load an API key from a local configuration file and require the user to acquire one themself, but I so far I'm not bothering.
Installation, what's that?
Myself, I let Eclipse compile the Java code, populating a bin/
directory; then the mapwarper
script will launch the program in a
JVM appropriately.
To get started, navigate to a *.vect
file in the cases/
subdirectory, single click on it to load, and then press W
followed
by U
to switch to warped view and locate the tracks.
Beyond that, play around. Most of the command keys are documented in the right-click menu in the map view. For many tools, holding Shift down previews what the result of clicking would be. In the drawing tools, Ctrl-click deletes nodes or line segments.
If you can read Danish, my original design notes in gui.txt
may give
you an idea how the UI is supposed to work. Otherwise you're on your
own. (In any case, I don't have a written-down explanation in any
language about the underlying model of how a chain of vector segments
defined a warped map projection ...)
The cases/
subdirectory contains my own warp definitions, currently
mostly for large German stations.
Many of them were created with earlier versions of the program, so they shouldn't be taken as canonical examples of how best to use the current feature set.
I can be reached at [email protected] -- though I don't have a good track record of answering emails promptly ...