I've been looking into how to support import of elevation from DEM.
First step in any piece of development is a "reality check" look at the practicality.
With other things I already have an idea without any research so this is often just "yeah, I can do that by..... ".
In this case it's weird stuff working with third party data that's "free".
Free sounds good until you try and work with it and "free" software or interfaces often come at a cost elsewhere.
Totally free often means there's no money to make it easy to get that data and no support if you hit any problems.
There are several problems inherent to working with this data.
I already knew this was going to be way harder to write than the google api support.
That's why I chose Google as the primary third party supplier.
What I hadn't particularly considered is how hard it might be for someone to use one of these DEMs.
This particular post is therefore an explanation of why I'm shelving the work for now.
The long explanation:Elevation data ( DEM ) is available from a number of sources.
These vary but you register as a user then you pick an area you want your data from.
Looking at one of these - ALOS World 3D – 30m.
You start off with a map of the globe and drill down from there by clicking on a square.
I tried to find Waterloo.
Took me two goes to find roughly the right part of europe.
Then you click on a square from that.
A couple of goes and I'm looking at:

The numbers at the top are latitude and longitude.
They seem to be the bottom left of that square, the pin marks that spot in google:

Finding a specific location is really hard.
Downloading a world of data and supplying it via our own front end would be another project and is not practical.
Next...
I loked into how I'd work with the data.
When you download a file for a square it comes as a tar compressed file.
A user would (you) then uncompress that file to get a geoTiff format file.
A tiff might be a sort of picture file but this is a data file which sort of re-uses how image files work internally for metadata.
You can't just display a geoTiff.
That needs re-processing to extract the data and then processing again in order to give a graphical representation.
Once I wrote code to do all that then the user could pick a rectangle out a displayed picture and I grab the grayscale from that.
Setting aside how hard it would be for someone to work out where they drag that rectangle on a huge chunk of europe....
Writing these steps are a fair bit of work and the last is technically problematic.
There's a high risk the last step only gives 255 shades of grey.
Summary:Looks to be a lot of work.
Will be so hard to use maybe nobody actually uses it.
Shelved for now.