From 8070ae3c4b42b0b78befde2355888811f5a29f3d Mon Sep 17 00:00:00 2001 From: sheirerd Date: Sun, 22 Sep 2024 09:50:53 -0400 Subject: [PATCH] Revert "#1990 Ignores GPS positions with 0/0 latitude and longitude values." This reverts commit 55b20c75c0a0b90008bcfc903994b3c4a1b72e86. --- .../dsheirer/map/PlottableEntityHistory.java | 19 +++--- .../dsheirer/map/PlottableEntityModel.java | 63 +++++++++---------- .../decode/event/PlottableDecodeEvent.java | 10 --- 3 files changed, 38 insertions(+), 54 deletions(-) diff --git a/src/main/java/io/github/dsheirer/map/PlottableEntityHistory.java b/src/main/java/io/github/dsheirer/map/PlottableEntityHistory.java index c25e4f68..5f43074c 100644 --- a/src/main/java/io/github/dsheirer/map/PlottableEntityHistory.java +++ b/src/main/java/io/github/dsheirer/map/PlottableEntityHistory.java @@ -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); } } } diff --git a/src/main/java/io/github/dsheirer/map/PlottableEntityModel.java b/src/main/java/io/github/dsheirer/map/PlottableEntityModel.java index 1d9e4403..50722888 100644 --- a/src/main/java/io/github/dsheirer/map/PlottableEntityModel.java +++ b/src/main/java/io/github/dsheirer/map/PlottableEntityModel.java @@ -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 diff --git a/src/main/java/io/github/dsheirer/module/decode/event/PlottableDecodeEvent.java b/src/main/java/io/github/dsheirer/module/decode/event/PlottableDecodeEvent.java index aae77a7f..719cf3b7 100644 --- a/src/main/java/io/github/dsheirer/module/decode/event/PlottableDecodeEvent.java +++ b/src/main/java/io/github/dsheirer/module/decode/event/PlottableDecodeEvent.java @@ -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