You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2007/08/11 02:40:23 UTC

svn commit: r564812 - /incubator/abdera/java/trunk/extensions/src/main/java/org/apache/abdera/ext/geo/GeoHelper.java

Author: jmsnell
Date: Fri Aug 10 17:40:22 2007
New Revision: 564812

URL: http://svn.apache.org/viewvc?view=rev&rev=564812
Log:
Tweak to support the W3C encoding Point element.  This let's us read the flickr geotagged atom feeds

Modified:
    incubator/abdera/java/trunk/extensions/src/main/java/org/apache/abdera/ext/geo/GeoHelper.java

Modified: incubator/abdera/java/trunk/extensions/src/main/java/org/apache/abdera/ext/geo/GeoHelper.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/extensions/src/main/java/org/apache/abdera/ext/geo/GeoHelper.java?view=diff&rev=564812&r1=564811&r2=564812
==============================================================================
--- incubator/abdera/java/trunk/extensions/src/main/java/org/apache/abdera/ext/geo/GeoHelper.java (original)
+++ incubator/abdera/java/trunk/extensions/src/main/java/org/apache/abdera/ext/geo/GeoHelper.java Fri Aug 10 17:40:22 2007
@@ -36,6 +36,7 @@
   public static final String SIMPLE_GEO_NS = "http://www.georss.org/georss/10";
   public static final String GML_NS = "http://www.opengis.net/gml";
   
+  public static final QName QNAME_W3C_POINT = new QName(W3C_GEO_NS, "Point", "geo");
   public static final QName QNAME_W3C_LAT = new QName(W3C_GEO_NS, "lat", "geo");
   public static final QName QNAME_W3C_LONG = new QName(W3C_GEO_NS, "long", "geo");
   
@@ -157,8 +158,11 @@
     el = entry.getExtension(QNAME_W3C_LONG);
     if (el != null) el.discard();    
     Point point = (Point) position;
-    entry.addSimpleExtension(QNAME_W3C_LAT, Double.toString(point.getCoordinate().getLatitude()));
-    entry.addSimpleExtension(QNAME_W3C_LONG, Double.toString(point.getCoordinate().getLongitude()));
+    
+    ExtensibleElement p = entry.addExtension(QNAME_W3C_POINT);
+    p.addSimpleExtension(QNAME_W3C_LAT, Double.toString(point.getCoordinate().getLatitude()));
+    p.addSimpleExtension(QNAME_W3C_LONG, Double.toString(point.getCoordinate().getLongitude()));
+    
   }
   
   private static List<Position> _getPositions(Entry entry) {
@@ -175,6 +179,7 @@
     if (entry.getExtensions(QNAME_SIMPLE_BOX).size() > 0) return true;
     if (entry.getExtensions(QNAME_SIMPLE_POLYGON).size() > 0) return true;
     if (entry.getExtensions(QNAME_WHERE).size() > 0) return true;
+    if (entry.getExtensions(QNAME_W3C_POINT).size() > 0) return true;
     if (entry.getExtensions(QNAME_W3C_LAT).size() > 0 && 
         entry.getExtensions(QNAME_W3C_LONG).size() > 0) return true;
     return false;
@@ -298,8 +303,14 @@
   }
   
   private static void getW3CPosition(Entry entry, List<Position> list) {
-    String slat = entry.getSimpleExtension(QNAME_W3C_LAT);
-    String slong = entry.getSimpleExtension(QNAME_W3C_LONG);
+    getW3CPosition((ExtensibleElement)entry, list);
+    List<ExtensibleElement> points = entry.getExtensions(QNAME_W3C_POINT);
+    for (ExtensibleElement point : points) getW3CPosition(point, list);
+  }
+  
+  private static void getW3CPosition(ExtensibleElement el, List<Position> list) {
+    String slat = el.getSimpleExtension(QNAME_W3C_LAT);
+    String slong = el.getSimpleExtension(QNAME_W3C_LONG);
     if (slat != null && slong != null) {
       Point point = new Point(slat.trim() + " " + slong.trim());
       list.add(point);