Hallo Christian,
Fehler erkannt

.
Deine Testpunkte liegen genau am Rand einer Höhenkachel.
Damit ist ein Index für die Subkacheln errechnet worden (1200!),
der dazu geführt hat, dass die Berechnung der Dateioffsets negativ
geworden ist. Und das hat zu der Exception geführt.
Man muss die Indices auf 1199 beschränken, dann geht es richtig.
Also in der Methode getElevationFor (in ElevationTile) noch die entsprechenden if... einfügen.
Das schaut an der entsprechenden Stelle dann so aus:
Code:
int nLonIndex = (int) ((dLon - (double) nLon) * 1200.0); // Calculate the interval index for longitude
int nLatIndex = (int) ((dLat - (double) nLat) * 1200.0); // Calculate the interval index for latitude
if (nLonIndex >= 1200) {
nLonIndex = 1200 - 1;
}
if (nLatIndex >= 1200) {
nLatIndex = 1200 - 1;
}
Desweiteren hab ich noch eine klitzekleine Änderung in ElevationHelper,
dort wo der @todo steht.
Code:
Integer nKey = (nLat + 180) * 100000 + (nLon + 90); // @todo nLat +180 nLon +90
Ich hab auch noch einen Testtrack (für Feuerland) eingefügt.
Anhand dessen sieht man, dass die Höhen keine Sprünge aufweisen, und
plausibel sind (siehe Meereshöhe und die Höhengleichheit beim See).
Die Daten die du mir für den Gardaseetrack zusammengestellt hast, hab ich
mir auch nochmal angeschaut.
Dort wo bei den hgt Dateien die Lücken sind, sind auch meistens die
Lücken in Geonames zu finden. Ganz selten kommt mal eine Höhe von
Geonames. Ich denke mal das würde bestätigen, dass die bei der
Interpolation irgendwas anders machen (d.h. die kommen bei Randlagen
auf eine Position die aber eigentlich falsch ist).
Was genau Earthtools macht, kann man auch nur vermuten.
Die haben zwar keine Lücken, liegen aber bei den Höhen die von Geonames
oder hgt kommen manchmal erheblich weg.
Also Geonames und hgt sind zum Teil nah zusammen und Earthtools ist
ziemlich weg.
Vielleicht haben die als Datenbasis die gröberen Höhendateien ohne Lücken.
Ich meine da gibt's irgendsowas (bin mir aber nicht so sicher).
Im nächsten Schritt (nach meiner Radtour nächste Woche, und ein paar anderen Sachen),
kann man sich ja mal daran machen die Lücken zu füllen

.
Servus
Robert
Hab ich doch glatt den Feuerlandtrack vergessen.
Übrigens ich meinte nicht unbedingt die alten Motorradfahrer (50+) mit Harley.
Da wo ich langfahre trauen sich die nicht hin

.
Die alten Männer dort (Stilfserjoch und andere, noch schönere Pässe,
aber das ist für dich zu weit weg, oder?) fahren
von BMW bis Rennteil eigentlich alles, nur keine Motorräder,
die man um die Ecke tragen muss

.
Servus
Robert