Clean up handling of lat/long geo-coordinates.

Change-Id: I64fca56c7deb9a8baa6c68558365ec2a8c38168c
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java
index 872a099..985cb17 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java
@@ -31,7 +31,6 @@
 import org.onosproject.incubator.net.tunnel.Tunnel;
 import org.onosproject.incubator.net.tunnel.TunnelService;
 import org.onosproject.mastership.MastershipService;
-import org.onosproject.net.ElementId;
 import org.onosproject.net.Annotated;
 import org.onosproject.net.AnnotationKeys;
 import org.onosproject.net.Annotations;
@@ -40,6 +39,7 @@
 import org.onosproject.net.Device;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.EdgeLink;
+import org.onosproject.net.ElementId;
 import org.onosproject.net.Host;
 import org.onosproject.net.HostId;
 import org.onosproject.net.HostLocation;
@@ -77,8 +77,8 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.Optional;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
 import static com.google.common.base.Preconditions.checkNotNull;
@@ -94,6 +94,8 @@
  */
 public abstract class TopologyViewMessageHandlerBase extends UiMessageHandler {
 
+    private static final String NO_GEO_VALUE = "0.0";
+
     // default to an "add" event...
     private static final DefaultHashMap<ClusterEvent.Type, String> CLUSTER_EVENT =
             new DefaultHashMap<>("addInstance");
@@ -361,10 +363,10 @@
 
         String slng = annotations.value(AnnotationKeys.LONGITUDE);
         String slat = annotations.value(AnnotationKeys.LATITUDE);
-        boolean haveLng = slng != null && !slng.isEmpty();
-        boolean haveLat = slat != null && !slat.isEmpty();
-        try {
-            if (haveLng && haveLat) {
+        boolean validLng = slng != null && !slng.equals(NO_GEO_VALUE);
+        boolean validLat = slat != null && !slat.equals(NO_GEO_VALUE);
+        if (validLat && validLng) {
+            try {
                 double lng = Double.parseDouble(slng);
                 double lat = Double.parseDouble(slat);
                 ObjectNode loc = objectNode()
@@ -372,11 +374,9 @@
                         .put("lng", lng)
                         .put("lat", lat);
                 payload.set("location", loc);
-            } else {
-                log.trace("missing Lng/Lat: lng={}, lat={}", slng, slat);
+            } catch (NumberFormatException e) {
+                log.warn("Invalid geo data: longitude={}, latitude={}", slng, slat);
             }
-        } catch (NumberFormatException e) {
-            log.warn("Invalid geo data: longitude={}, latitude={}", slng, slat);
         }
     }