diff --git a/feed.xml b/feed.xml
index 179ee4b..1264108 100644
--- a/feed.xml
+++ b/feed.xml
@@ -11,6 +11,7 @@
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
xmlns:georss="http://www.georss.org/georss"
+ xmlns:gml="http://www.opengis.net/gml"
xmlns:icbm="http://postneo.com/icbm"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
@@ -20,6 +21,7 @@
xsi:schemaLocation="
http://postneo.com/icbm xsd/icbm.xsd
http://www.georss.org/georss https://schemas.opengis.net/georss/1.0/schema-1.1/georss.xsd
+ http://www.opengis.net/gml https://schemas.opengis.net/georss/1.0/schema-1.1/gmlgeorss.xsd
"
>
GML is an enormous XML schema designed to express any geospatial data under the sun. Geometries, features, coordinate reference systems, units of measurement, time, sensor measurements, data re-fetched automatically over the network, assigning coordinates to images, etc.
+The language is not meant to be used alone, as supporting all of it is equivalent to implementing nearly every bit of geospatial software out there. Instead, GML profiles are defined, which are subsets of GML that are relevant to your needs, and are then used in application schemas, which define the specific XML format you are using that will contain some of that GML profile in it.
+GeoRSS is an application schema using a dedicated GML profile that severely restricts GML so that we don't become too insane. You are limited to four geometries, one less that the five we saw in GeoRSS Simple: points, lines, boxes, and polygons. You do have access to some extra options though, and we'll look into that soon enough.
+ +Here is an example I wrote previously for a single point in GeoRSS Simple, but rewritten for GeoRSS GML:
++<rss + version="2.0" + xmlns:georss="http://www.georss.org/georss" + xmlns:gml="http://www.opengis.net/gml" +> + <channel> + <item> + <!-- ... --> + <georss:where> + <gml:Point> + <gml:pos>-33.8735580 151.2344385</gml:pos> + </gml:Point> + </georss:where> + <georss:featureName>Boat Syndication Australia</georss:featureName> + <georss:featureTypeTag>shop</georss:featureTypeTag> + <georss:relationshipTag>has-nothing-to-do-with</georss:relationshipTag> + <georss:elev>5.25</georss:elev> + <georss:floor>0</georss:floor> + <georss:radius>4.5</georss:radius> + </item> + </channel> +</rss> ++
The only two differences are that there is now a new gml
namespace, and that the georss:point
element has been replaced with a georss:where
element to hold the point defined with GML. And now for the examples of other geometry types, which you would now place inside of the georss:where
:
+<!-- Part of Haaldersbroekerdwarsstraat, a long street name in the Netherlands --> +<gml:LineString> + <gml:posList>52.4718867,4.8277792 52.4721926,4.8275892 52.4729501,4.8270419</gml:posList> +</gml:LineString> + +<!-- Some random grass not so far away from there --> +<gml:Envelope> + <gml:lowerCorner>52.5662344 4.7976189</gml:lowerCorner> + <gml:upperCorner>52.5676983 4.8013674</gml:upperCorner> +</gml:Envelope> + +<!-- A building called ESPRESSO at the Very Large Telescope, +because astronomers need coffee to go through the night --> +<gml:Polygon> + <gml:exterior> + <gml:LinearRing> + <gml:posList> + -24.6273416 -70.4045081 + -24.6273922 -70.4044894 + -24.6274264 -70.4046014 + -24.6274789 -70.4045820 + -24.6276119 -70.4045330 + -24.6275341 -70.4042780 + -24.6274634 -70.4043041 + -24.6274763 -70.4043463 + -24.6273109 -70.4044074 + -24.6273416 -70.4045081 + </gml:posList> + </gml:LinearRing> + </gml:exterior> +</gml:Polygon> ++
<georss:where>
<georss:point>
.<gml:pos>
<gml:posList>
<gml:Point>
<gml:pos>
element to indicate its coordinates.<gml:LineString>
<gml:posList>
to list the coordinates of each point.<gml:Envelope>
<gml:lowerCorner>
and a <gml:upperCorner>
to specify its two corners.<gml:lowerCorner>
<gml:Envelope>
. Its value is the same as a <gml:pos>
.<gml:upperCorner>
<gml:Envelope>
. Its value is the same as a <gml:pos>
.<gml:Polygon>
<gml:exterior>
ring. GeoRSS GML forbids any interior rings, since the GeoRSS Simple <georss:polygon>
does not support interior rings, so the exterior ring is always alone.<gml:exterior>
<gml:LinearRing>
.<gml:LinearRing>
<gml:LineString>
, but there has to be at least four points, and the first and last coordinates must be equal, so that the line string forms a ring.