WeoGeo Library Administrators and Market Providers can share or advertise their WeoGeo datasets outside of the WeoGeo website. For example, this TerraColor wiki entry demonstrates a map of the US with roll-over links to the individual Panel 5:CUSTOMIZE pages, where the datasets can be purchased.
Here, I want to demonstrate how to use WeoGeo APIs and some Python code to aggregate select WeoGeo Preview KML files into a “KML File Index”. This type of KML File Index can be used to share and market the content stored in your Library and Market accounts.
This example was developed for WeoGeo Market Provider ATLIS Geomatics, who requested an index of their WeoGeo Market Listings for their corporate web pages. They wanted one index for each of the cities where they held high resolution air photos.
WeoGeo provides an API for obtaining dataset details in the following formats WeoFile (XML), KML, and json. The wiki article shows how to curl the request but you can also preview the responses (in a web-browser) using the following URI structure:
http://market.weogeo.com/datasets/<token>.weo
For example:
http://market.weogeo.com/datasets/9a764fe6-3903-8151-b824-8a11a6f00552.kml
or
http://market.weogeo.com/datasets/9a764fe6-3903-8151-b824-8a11a6f00552.json
This is the same link found in the lower left corner of Panel 4:PREVIEW.

Preview KML
Those individual dataset KML file descriptions will be aggregated into a single KML File Index viewable within KML-readers like Google Earth, Bing Maps, ArcGIS Explorer, or NASA WorldWind.
Creating the KML File Index
- First, we need to obtain a list of tokens that uniquely identify the datasets to be included. This can be accomplished with an API call.For example:
curl -g -u <api key>: \
'http://<subdomain>.weogeo.com/datasets.weo?&page=1&scale=0' > ./datasets.xml
curl -g -u <api_key>: \
'http://<subdomain>.weogeo.com/datasets.weo?&page=2&scale=0' >> ./datasets.xml
... - Next, we extract the tokens from the resulting XML file and write them into a plain text file with one token per line. A Python script for this step can be found in WeoGeo’s Public Code Repository.
- Lastly, a Python script is used to:
- invoke the WeoGeo API and obtain the KML Preview for each dataset (via it’s token)
- merge them into one KML File Index
There are also optional flags in this script to in/exclude the externally hosted preview image inside the wireframe or to create a stand-alone KMZ file that includes the preview images.
The resulting KML/KMZ can be viewed in a variety of applications including Google Maps, Google Earth, Bing Maps, OpenLayers, and many others.
http://kml.community.weogeo.com/ATLIS/atlis_calgary.kml
Using the Static URI embedded in each of the Preview KML files inside the KML File Index, ATLIS customers can now jump from an ATLIS web page directly to the WeoGeo Market page for that dataset. This allows their customers to browse datasets on their website but customize and purchase on the WeoGeo Market. You can view the results on their Coverage Maps webpage.
To learn more about the APIs that were used, check out the WeoGeo API wiki pages. Also check out the Python code used to interact with the WeoGeo APIs and produce the KML File Index on Google Code.


