private File MapFile(double lat, double lng) {
char chlat = lat < 0 ? 'S' : 'N';
- char chlng = lng < 0 ? 'E' : 'W';
+ char chlng = lng < 0 ? 'W' : 'E';
if (lat < 0) lat = -lat;
if (lng < 0) lng = -lng;
- return new File(AltosPreferences.logdir(),
+ return new File(AltosPreferences.mapdir(),
String.format("map-%c%.6f,%c%.6f-%d.png",
chlat, lat, chlng, lng, zoom));
}
int last_state = -1;
public void show(final AltosState state, final int crc_errors) {
// if insufficient gps data, nothing to update
- if (state.gps == null)
+ if (!state.gps.locked && state.gps.nsat < 4)
return;
- if (state.pad_lat == 0 && state.pad_lon == 0)
- return;
- if (!state.gps.locked) {
- if (state.gps.nsat < 4)
- return;
- }
if (!initialised) {
- initMaps(state.pad_lat, state.pad_lon);
- initialised = true;
+ if (state.pad_lat != 0 || state.pad_lon != 0) {
+ initMaps(state.pad_lat, state.pad_lon);
+ initialised = true;
+ } else if (state.gps.lat != 0 || state.gps.lon != 0) {
+ initMaps(state.gps.lat, state.gps.lon);
+ initialised = true;
+ } else {
+ return;
+ }
}
final Point2D.Double pt = pt(state.gps.lat, state.gps.lon);