r405 - in trunk: sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight
Author: fdesbois Date: 2012-08-10 18:42:27 +0200 (Fri, 10 Aug 2012) New Revision: 405 Url: http://forge.codelutin.com/repositories/revision/sammoa/405 Log: Resolve issue with invalid coordinates geoPoints to display on Map Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GpsHandlerGpsylon.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPoints.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GpsHandlerGpsylon.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GpsHandlerGpsylon.java 2012-08-10 16:06:49 UTC (rev 404) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GpsHandlerGpsylon.java 2012-08-10 16:42:27 UTC (rev 405) @@ -31,13 +31,7 @@ import fr.ulr.sammoa.persistence.GeoPointImpl; import fr.ulr.sammoa.persistence.GeoPoints; import gnu.io.CommPortIdentifier; -import org.dinopolis.gpstool.gpsinput.GPSDataProcessor; -import org.dinopolis.gpstool.gpsinput.GPSDevice; -import org.dinopolis.gpstool.gpsinput.GPSException; -import org.dinopolis.gpstool.gpsinput.GPSPosition; -import org.dinopolis.gpstool.gpsinput.GPSSerialDevice; -import org.dinopolis.gpstool.gpsinput.SafeGPSSerialDevice; -import org.dinopolis.gpstool.gpsinput.nmea.GPSNmeaDataProcessor; +import org.dinopolis.gpstool.gpsinput.*; import org.dinopolis.gpstool.gpsinput.nmea.SafeGPSNmeaDataProcessor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -236,16 +230,16 @@ protected void logAvailablePorts(String method) { - if (logger.isInfoEnabled()) { + if (logger.isDebugEnabled()) { - logger.info("GPS configuration port {} [{}]", config.getDevice(), method); + logger.debug("GPS configuration port {} [{}]", config.getDevice(), method); Enumeration portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { CommPortIdentifier portId = (CommPortIdentifier) portList.nextElement(); if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { - logger.info("## Available SERIAL port : {}", portId.getName()); + logger.debug("## Available SERIAL port : {}", portId.getName()); } } } Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPoints.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPoints.java 2012-08-10 16:06:49 UTC (rev 404) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPoints.java 2012-08-10 16:42:27 UTC (rev 405) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: Persistence - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -25,6 +25,8 @@ import com.google.common.base.Function; import com.google.common.base.Objects; +import com.google.common.base.Predicate; +import com.google.common.base.Predicates; import com.google.common.collect.FluentIterable; import com.google.common.collect.Lists; import com.google.common.collect.Ordering; @@ -59,11 +61,22 @@ return result; } + public static List<GeoPoint> retainsValidCoordinates(Iterable<GeoPoint> input) { + List<GeoPoint> result = FluentIterable.from(input) + .filter(Predicates.not(withCoordinatesEmpty())) + .toImmutableList(); + return result; + } + public static boolean isCoordinatesEmpty(GeoPoint geoPoint) { return geoPoint.getLatitude() == GeoPoints.EMPTY_COORDINATE && geoPoint.getLongitude() == GeoPoints.EMPTY_COORDINATE; } + public static Predicate<GeoPoint> withCoordinatesEmpty() { + return IS_COORDINATES_EMPTY_PREDICATE; + } + public static Function<GeoPoint, Date> toDate() { return TO_DATE_FUNCTION; } @@ -142,4 +155,12 @@ } }; + protected static Predicate<GeoPoint> IS_COORDINATES_EMPTY_PREDICATE = new Predicate<GeoPoint>() { + + @Override + public boolean apply(GeoPoint input) { + return isCoordinatesEmpty(input); + } + }; + } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-10 16:06:49 UTC (rev 404) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-10 16:42:27 UTC (rev 405) @@ -24,11 +24,7 @@ */ package fr.ulr.sammoa.ui.swing.flight; -import com.bbn.openmap.InformationDelegator; -import com.bbn.openmap.LayerHandler; -import com.bbn.openmap.MapBean; -import com.bbn.openmap.MapHandler; -import com.bbn.openmap.MouseDelegator; +import com.bbn.openmap.*; import com.bbn.openmap.event.OMMouseMode; import com.bbn.openmap.gui.EmbeddedNavPanel; import com.bbn.openmap.gui.EmbeddedScaleDisplayPanel; @@ -43,11 +39,7 @@ import com.google.common.base.Objects; import com.google.common.base.Preconditions; import com.google.common.base.Strings; -import com.google.common.collect.FluentIterable; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Ordering; +import com.google.common.collect.*; import fr.ulr.sammoa.application.FlightService; import fr.ulr.sammoa.application.ReferentialService; import fr.ulr.sammoa.application.SammoaConfig; @@ -58,38 +50,13 @@ import fr.ulr.sammoa.application.device.DeviceTechnicalException; import fr.ulr.sammoa.application.device.gps.GpsLocationEvent; import fr.ulr.sammoa.application.device.gps.GpsLocationListener; -import fr.ulr.sammoa.application.flightController.FlightController; -import fr.ulr.sammoa.application.flightController.FlightControllerDefault; -import fr.ulr.sammoa.application.flightController.FlightControllerListener; -import fr.ulr.sammoa.application.flightController.FlightState; -import fr.ulr.sammoa.application.flightController.ObservationEvent; -import fr.ulr.sammoa.persistence.Campaign; -import fr.ulr.sammoa.persistence.Flight; -import fr.ulr.sammoa.persistence.GeoPoint; -import fr.ulr.sammoa.persistence.GeoPoints; -import fr.ulr.sammoa.persistence.Observation; -import fr.ulr.sammoa.persistence.Observations; -import fr.ulr.sammoa.persistence.Observer; -import fr.ulr.sammoa.persistence.Route; -import fr.ulr.sammoa.persistence.Strate; -import fr.ulr.sammoa.persistence.Transect; -import fr.ulr.sammoa.persistence.TransectFlight; -import fr.ulr.sammoa.persistence.TransectFlights; +import fr.ulr.sammoa.application.flightController.*; +import fr.ulr.sammoa.persistence.*; import fr.ulr.sammoa.ui.swing.SammoaColors; import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider; import fr.ulr.sammoa.ui.swing.SammoaUIContext; import fr.ulr.sammoa.ui.swing.SammoaUIHandler; -import fr.ulr.sammoa.ui.swing.action.AddAction; -import fr.ulr.sammoa.ui.swing.action.BeginAction; -import fr.ulr.sammoa.ui.swing.action.CenterObservationAction; -import fr.ulr.sammoa.ui.swing.action.CircleBackAction; -import fr.ulr.sammoa.ui.swing.action.EndAction; -import fr.ulr.sammoa.ui.swing.action.LeftObservationAction; -import fr.ulr.sammoa.ui.swing.action.NextAction; -import fr.ulr.sammoa.ui.swing.action.NextTransectAction; -import fr.ulr.sammoa.ui.swing.action.RightObservationAction; -import fr.ulr.sammoa.ui.swing.action.StartAction; -import fr.ulr.sammoa.ui.swing.action.StopAction; +import fr.ulr.sammoa.ui.swing.action.*; import fr.ulr.sammoa.ui.swing.flight.layer.BaseGeoPointLayer; import fr.ulr.sammoa.ui.swing.flight.layer.LineGeoPointLayer; import fr.ulr.sammoa.ui.swing.flight.layer.SimpleGeoPointLayer; @@ -209,7 +176,8 @@ List<Observer> observers = getFlightService().getFlightObserverForPositions(flight); List<Observation> observations = getFlightService().getObservations(flight); List<Route> routes = getFlightService().getRoutes(flight); - List<GeoPoint> geoPoints = getFlightService().getFlightGeoPoints(flight); + List<GeoPoint> geoPoints = + GeoPoints.retainsValidCoordinates(getFlightService().getFlightGeoPoints(flight)); if (logger.isTraceEnabled()) { for (GeoPoint geoPoint : geoPoints) { @@ -455,7 +423,7 @@ // Add the GeoPoint to the layer GeoPoint geoPoint = event.getGeoPoint(); - if (geoPoint != null) { + if (!GeoPoints.isCoordinatesEmpty(geoPoint)) { observationLayer.addGeoPoint(geoPoint); } }
participants (1)
-
fdesbois@users.forge.codelutin.com