Revert "#1990 Ignores GPS positions with 0/0 latitude and longitude values."

This reverts commit 55b20c75c0.
This commit is contained in:
sheirerd
2024-09-22 09:50:53 -04:00
parent 55b20c75c0
commit 8070ae3c4b
3 changed files with 38 additions and 54 deletions

View File

@@ -87,20 +87,17 @@ public class PlottableEntityHistory
*/
public void add(PlottableDecodeEvent event)
{
if(event.isValidLocation())
TimestampedGeoPosition mostRecentPosition = getLatestPosition();
TimestampedGeoPosition latest = new TimestampedGeoPosition(event.getLocation(), event.getTimeStart());
if(isUnique(latest, mostRecentPosition))
{
TimestampedGeoPosition mostRecentPosition = getLatestPosition();
TimestampedGeoPosition latest = new TimestampedGeoPosition(event.getLocation(), event.getTimeStart());
mCurrentEvent = event;
mLocationHistory.add(0, latest);
if(isUnique(latest, mostRecentPosition))
while(mLocationHistory.size() > MAX_LOCATION_HISTORY)
{
mCurrentEvent = event;
mLocationHistory.add(0, latest);
while(mLocationHistory.size() > MAX_LOCATION_HISTORY)
{
mLocationHistory.remove(mLocationHistory.size() - 1);
}
mLocationHistory.remove(mLocationHistory.size() - 1);
}
}
}

View File

@@ -101,45 +101,42 @@ public class PlottableEntityModel extends AbstractTableModel implements Listener
@Override
public void receive(PlottableDecodeEvent plottableDecodeEvent)
{
if(plottableDecodeEvent.isValidLocation())
{
//Add or update the event on the swing event thread
EventQueue.invokeLater(() -> {
Identifier from = plottableDecodeEvent.getIdentifierCollection().getFromIdentifier();
//Add or update the event on the swing event thread
EventQueue.invokeLater(() -> {
Identifier from = plottableDecodeEvent.getIdentifierCollection().getFromIdentifier();
if(from != null && from.getForm() != Form.LOCATION)
if(from != null && from.getForm() != Form.LOCATION)
{
AliasListConfigurationIdentifier aliasList = plottableDecodeEvent.getIdentifierCollection().getAliasListConfiguration();
String key = (aliasList != null ? aliasList.toString() : KEY_NO_ALIAS_LIST) + from;
PlottableEntityHistory entityHistory = mEntityHistoryMap.get(key);
if(entityHistory == null)
{
AliasListConfigurationIdentifier aliasList = plottableDecodeEvent.getIdentifierCollection().getAliasListConfiguration();
String key = (aliasList != null ? aliasList.toString() : KEY_NO_ALIAS_LIST) + from;
PlottableEntityHistory entityHistory = mEntityHistoryMap.get(key);
if(entityHistory == null)
{
entityHistory = new PlottableEntityHistory(from, plottableDecodeEvent);
mEntityHistories.add(entityHistory);
mEntityHistoryMap.put(key, entityHistory);
int index = mEntityHistories.indexOf(entityHistory);
fireTableRowsInserted(index, index);
}
else
{
entityHistory.add(plottableDecodeEvent);
int index = mEntityHistories.indexOf(entityHistory);
fireTableRowsUpdated(index, index);
}
for(IPlottableUpdateListener listener : mPlottableUpdateListeners)
{
listener.addPlottableEntity(entityHistory);
}
entityHistory = new PlottableEntityHistory(from, plottableDecodeEvent);
mEntityHistories.add(entityHistory);
mEntityHistoryMap.put(key, entityHistory);
int index = mEntityHistories.indexOf(entityHistory);
fireTableRowsInserted(index, index);
}
else
{
LOGGER.warn("Received plottable decode event that does not contain a FROM identifier - cannot plot");
entityHistory.add(plottableDecodeEvent);
int index = mEntityHistories.indexOf(entityHistory);
fireTableRowsUpdated(index, index);
}
});
}
for(IPlottableUpdateListener listener : mPlottableUpdateListeners)
{
listener.addPlottableEntity(entityHistory);
}
}
else
{
LOGGER.warn("Received plottable decode event that does not contain a FROM identifier - cannot plot");
}
});
}
@Override

View File

@@ -62,16 +62,6 @@ public class PlottableDecodeEvent extends DecodeEvent
return mGeoPosition;
}
/**
* Indicates if the location is non-null and either latitude or longitude is not at the zero axis. If the location
* coordinates are zero or both are very small values close to zero, then the location is flagged as invalid.
*/
public boolean isValidLocation()
{
return mGeoPosition != null &&
((Math.abs(mGeoPosition.getLatitude()) > 0.01) || (Math.abs(mGeoPosition.getLongitude()) > 0.01));
}
/**
* Sets the heading for the mobile plottable event
* @param heading