Skip to content

Commit

Permalink
Revert "#1990 Ignores GPS positions with 0/0 latitude and longitude v…
Browse files Browse the repository at this point in the history
…alues."

This reverts commit 55b20c7.
  • Loading branch information
sheirerd committed Sep 22, 2024
1 parent 55b20c7 commit 8070ae3
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 53 deletions.
19 changes: 8 additions & 11 deletions src/main/java/io/github/dsheirer/map/PlottableEntityHistory.java
Original file line number Diff line number Diff line change
Expand Up @@ -87,20 +87,17 @@ public IdentifierCollection getIdentifierCollection()
*/
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);
}
}
}
Expand Down
61 changes: 29 additions & 32 deletions src/main/java/io/github/dsheirer/map/PlottableEntityModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -101,45 +101,42 @@ public void delete(List<PlottableEntityHistory> tracksToDelete)
@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)
{
AliasListConfigurationIdentifier aliasList = plottableDecodeEvent.getIdentifierCollection().getAliasListConfiguration();
String key = (aliasList != null ? aliasList.toString() : KEY_NO_ALIAS_LIST) + from;
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);
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);
}
if(entityHistory == null)
{
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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,16 +62,6 @@ public GeoPosition getLocation()
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
Expand Down

0 comments on commit 8070ae3

Please sign in to comment.