GO Publisher WFS serving Vertical Structures as KMZ

The web services below show the new KML/KMZ functionality in GO Publisher WFS v1.4.

Here we’re using the same datasource that we served up in the AIXM5 GML demo but this time its transformed to KMZ which is then streamed on the fly via a Google Earth Network link.

If you just want to see some screenshots then have a look at this slideshow on our Flickr site:

http://www.flickr.com/photos/snowflakesoftware/sets/72157620288035227/show/

Otherwise feel free to hit our demo server and experiment with the webservices below:

Obstacle Data as Google Earth compressed KMZ

GO Publisher WFS serving obstacle data dynamically streamed into a Google Earth as KMZ

Landing page
GetCapabilities DescribeFeature
(Service no longer available)

To display the obstacle data in Google Earth we encode the URL on the WFS into a Google Earth network link. Clicking on the KML files below will take you to a start location, after that zooming and panning will connect back to the server in Southampton and stream the appropriate obstacles in compressed KML from GO Publisher WFS depending on your location with Google Earth.

ChryslerBuilding_NY.kml – Google Earth network link that starts at the Chrysler Building in New York

WashingtonMonument_DC.kml – Google Earth network link that starts at the Washington Monument in Washington DC

Both Network tags call the compressed streamed WFS URL as above and have a maxFeatures set to 1000

Here’s an example of the ChryslerBuilding_NY.kml Network link:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.2">
<NetworkLink>
<name>FAA Obstacles at Chrysler Building NewYork</name>
<LookAt>
<longitude>-73.9756367232535</longitude>
<latitude>40.75463529916426</latitude>
<altitude>0</altitude>
<range>1223.790008030813</range>
<tilt>75.73893692291146</tilt>
<heading>-22.60618828591889</heading>
<altitudeMode>relativeToGround</altitudeMode>
</LookAt>
<Link>
<href>https://demo.snowflakesoftware.com/FAA_Obstacle_KML_ZIP/GOPublisherWFS?service=wfs&version=2.0.0&request=GetFeature&typename=Placemark&count=1000&</href>
<viewRefreshMode>onStop</viewRefreshMode>
<viewRefreshTime>1</viewRefreshTime>
<viewFormat>BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]</viewFormat>
</Link>
</NetworkLink>
</kml>

Here’s an example of the WashingtonMonument_DC.kml Network link:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.2">
<NetworkLink>
	<name>FAA Obstacles at Washington Monument</name>
	<LookAt>
		<longitude>-77.03526629426868</longitude>
		<latitude>38.89015469293793</latitude>
		<altitude>0</altitude>
		<range>609.7832940221524</range>
		<tilt>57.22613942489764</tilt>
		<heading>-18.22831052808997</heading>
		<altitudeMode>relativeToGround</altitudeMode>
	</LookAt>
	<Link>
		<href>https://demo.snowflakesoftware.com/FAA_Obstacle_KML_ZIP/GOPublisherWFS?service=wfs&amp;acceptVersions=2.0.0&amp;request=GetFeature&amp;typename=Placemark&amp;maxfeatures=1000&amp;</href>
     <viewRefreshMode>onStop</viewRefreshMode>
      <viewRefreshTime>1</viewRefreshTime>
      <viewFormat>BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]</viewFormat>
	</Link>
</NetworkLink>
</kml>

Post Request Spatial Query – KML FAA Obstacles within 100NM of a Flight Path

This request uses an OGC Filter encoding to create a buffer with 100 Nautical Miles of a defined flight path and then posts that query back to GO Publisher WFS. The result is a zip file containing the KML.

Over wireless with me in Boston, USA and the server in Southampton, UK it takes just over 5 secs to return 23,817 features. Here’s the query, try it for yourself by pasting the query below into the WFS HTTP Post Request dialogue box here: (Service no longer available).

<?xml
version="1.0" encoding="UTF-8"?>
<wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:gml="http://www.opengis.net/gml/3.2">
<wfs:Query typeName="Placemark"> <ogc:Filter>
<ogc:DWithin> <ogc:PropertyName>
Point</ogc:PropertyName>
<gml:LineString srsName="urn:ogc:def:crs:OGC:1.3:CRS84">
<gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="."
cs="," ts=" ">-97.03833333,32.89666667 -96.995,32.78333333
-96.94,32.765 -96.83166667,32.76833333 -96.33166667,32.97
-95.56333333,33.075 -94.07333333,33.51333333 -92.64333333,34.06
-92.55,34.095 -89.98333333,35.015 -85.18166667,36.61333333
-84.56666667,36.80166667 -84.05,36.95666667 -83.03,37.255
-82.13666667,37.505 -81.80666667,37.59666667 -81.12333333,37.78
-80.39,38.04333333 -79.73166667,38.27166667 -78.99833333,38.50666667
-77.46666667,38.935 -76.97833333,39.495 -76.29166667,40.12
-75.68333333,40.58166667 -75.455,40.72666667 -74.86833333,40.995
-73.82166667,41.665 -72.71666667,42.16166667 -70.61333333,43.425
-69.49166667,43.925 -67.15666667,44.90166667 -65.87166667,45.40666667
-64.57166667,46.18833333 -61.77333333,47.43 -58.67,48.58333333
-55,49.71666667 -52.06833333,50.50333333 -50,52 -40,56 -30,59 -20,60
-10,60 -9.5,59.965 -8.568333333,60.02 -1.286666667,59.87833333
0.015,59.99166667 5.211666667,60.31166667 7.5,60.295 9.915,60.23666667
11.075,60.19166667 12.51333333,60.12833333 14.17,60.03
14.40833333,60.01833333 16.73833333,59.845 16.99,59.825
17.91833333,59.65166667</gml:coordinates> </gml:LineString>
<Distance uom="[NMI_I]">100</Distance>
</ogc:DWithin> </ogc:Filter> </wfs:Query>
</wfs:GetFeature>

HTTP Get Request

You can also get use a simple http get request and display the resulting in Google Earth by following this link for a sample BoundingBox query (bbox=-77.03000,38.88000,-77.01000,38.90000)

/GOPublisherWFS?service=wfs&version=1.1.0&request=GetFeature&typename=Placemark&bbox=-77.03000,38.88000,-77.01000,38.90000

FAA Obstacle Data – Google Earth KML

If you want to look at the underlying service in uncompressed form (not recommend via browser).

Landing page GetCapabilities DescribeFeature
(Service no longer available)