Support

Any questions or comments concerning this service can be sent to cangeo@crim.ca.

Releases notes

31 March 2014: Initial release for project iteration 2.

31 May 2014: New release for final iteration:

  • output in GeoJSON format
  • heat map showing last changes

31 May 2015: Maintenance due to change in Google Map API:

  • heatmap now using openlayers
  • the display of GeoRSS is not working with google map anymore

11 February 2016:

  • output in a ESRI Shapefile format

Licence

The image processing system (AutoCarto) is a proprietary software developed at CRIM. Some packages or libraries developed by external entities are used in the service; here is a summary of their respective licenses:

Provenance

Who authorizes releases: Samuel Foucher (CRIM, VISI team).

Release validation procedure: the data produced by the new release is inspected manually before public release.

Release documentation : Release changes are documented in this document.

Documentation

Purpose

The proposed service is based on a software developed in the Vision and Imaging Team at CRIM. It takes remote sensing imagery (usually SPOT or Landsat) as input and tries to update the shape of existing waterbodies as available in the NRCan database. The image processing is performed offline once new Landsat-8 images are identified.

This document describes the web service interfaces for the exchange of updated of the outline of inland waterbodies available within the Canvec database. The specification defines services names, query parameters and expected results. The service can be accessed using the following URL : http://cangeo.crim.ca/hydro

System Updates

The information content is updated on a monthly basis:

  1. The new Landsat-8 imagery for the current month is downloaded, only images with less than 10% of cloud cover are used.
  2. The NTS tiles covered by the image swath are identified
  3. The initial water vectors are downloaded from Geobase
  4. The updated vectors are converted in kml, kmz, GeoJSON and ESRI Shapefile formats
  5. The corresponding files for the tile feeds are updated

Calling patterns

The services will be invoked using a subset of REST and HTTP methods. In particular, all services using the HTTP GET method. The service provides results organized according to the National Topographic System at 1:50k scale. The following URI pattern is to be used for each tile

cangeo.crim.ca/hydro/tiles/<1000k>/<250k>/<50k>/last.<format>

For instance for the NTS tile #032h01 would be:

cangeo.crim.ca/hydro/tiles/032/h/01/last

For a general query of the system:

cangeo.crim.ca/hydro/tiles/last

The service is available on the TCP/IP port 80.

We recommend to use Google Earth in order to visualize the kml and kmz files, the menu “Add/Network Link” can then be used to load the remote files directly. Note that since February 2015, Google map does not support direct kml loading anymore.

Service Methods

Overview of all tiles

tiles/all - to request an overview of all NTS tiles. Useful to get a specific tile request.

Available requests are :

cangeo.crim.ca/hydro/tiles/all
cangeo.crim.ca/hydro/tiles/all.xml
cangeo.crim.ca/hydro/tiles/all.kml
cangeo.crim.ca/hydro/tiles/all.kmz

The first two will retrieve the data in xml format and the two other as a kml file or a zipped kmz file. See the next chapter for more information on responses formats. You should only note that no rss are available for these requests.

Latest information on a specific NTS tile

tiles/last – to request the latest information for a tile available within the last 30 days

Example of requests:

cangeo.crim.ca/hydro/tiles/last
cangeo.crim.ca/hydro/tiles/032/h/01/last

For instance, in Google Earth, we can form 2 network links using the link http://cangeo.crim.ca/hydro/tiles/all.kml to show the entire NTS system and http://cangeo.crim.ca/hydro/tiles/last.kml to show the latest updated tiles:

Figure 1

In order to navigate the content, we suggest to add a network link in Google Earth for http://cangeo.crim.ca/hydro/tiles/last.kml, then zoom in on a tile of interest, click on the yellow pin at the center and an information bubble should appear:

Figure 2

Clicking on on the “kmz” link will load the corresponding kmz file for this tile:

Figure 3

You can then consult object attributes by clicking on each object:

Figure 4

For the IMAGE_ID attribute, a “kmz” link is also available that will give you a preview of the Landsat-8 images (at a degraded resolution):

Figure 5

If you click on the image, an information bubble with the link “Full metadata” will give access to the image attributes:

Figure 6

Latest information about processed imagery

images/last – to request the latest information about the imagery processed within the last 30 days

cangeo.crim.ca/hydro/images/last

Response Formats

The system supports five response formats (XML, GeoRSS, KML, KMZ, GeoJson and ESRI Shapefile). The format is specified as an extension of the 'last' request (one of : xml, xml, kml, kmz, json, shp). If no extension is given, an XML response is returned, unless that the header specifies a valid alternative type via the Accept field (one of : application/xml, application/rss+xml, application/kml, application/kmz, application/json or application/zip). If an extension is given the Accept field is ignored, thus the extension type has precedence.

There is some valid requests:

cangeo.crim.ca/hydro/tiles/last
cangeo.crim.ca/hydro/tiles/last.xml
cangeo.crim.ca/hydro/tiles/last.rss
cangeo.crim.ca/hydro/tiles/last.kml
cangeo.crim.ca/hydro/tiles/last.kmz
cangeo.crim.ca/hydro/tiles/last.json
cangeo.crim.ca/hydro/tiles/032/h/01/last
cangeo.crim.ca/hydro/tiles/032/h/01/last.xml
cangeo.crim.ca/hydro/tiles/032/h/01/last.rss
cangeo.crim.ca/hydro/tiles/032/h/01/last.kml
cangeo.crim.ca/hydro/tiles/032/h/01/last.kmz
cangeo.crim.ca/hydro/tiles/032/h/01/last.json
cangeo.crim.ca/hydro/tiles/032/h/01/last.shp

XML (/last, /last.xml or /last with header containing Accept : application/xml)

By default, the service returns a response in XML format, with a root element kml respecting the namespace given here http://www.opengis.net/kml/2.2. The geographical data is encoded using the KML syntax conforming to the mime type : 'application/vnd.google-earth.kml+xml'. In that case, all the information is returned so the file may get large depending on the query.

<kml xmlns="http://www.opengis.net/kml/2.2">
<Document><Folder><name>032a04</name>
  <Placemark>
	<Style><LineStyle><color>ff0000ff</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style>
	<ExtendedData><SchemaData schemaUrl="#032a04_261">
		<SimpleData name="ACCURACY">22</SimpleData>
		<SimpleData name="ACQTECH">5</SimpleData>
		<SimpleData name="CODE">1481262</SimpleData>
		<SimpleData name="DATANAME">032A04</SimpleData>
		<SimpleData name="DEFINITION">-1</SimpleData>
		<SimpleData name="ID">32a4c79a258844cfa7934a6b69aeb65c</SimpleData>
		<SimpleData name="ISOLATED">0</SimpleData>
		<SimpleData name="LAKCONCOD">-1</SimpleData>
		<SimpleData name="LAKLANG">-1</SimpleData>
		<SimpleData name="PERMANENCY">1</SimpleData>
		<SimpleData name="PROVIDER">2</SimpleData>
		<SimpleData name="RIVCONCOD">-1</SimpleData>
		<SimpleData name="RIVLANG">-1</SimpleData>
		<SimpleData name="THEME">HD</SimpleData>
		<SimpleData name="VALDATE">1976</SimpleData>
		<SimpleData name="AC_SUCCESS">1</SimpleData>
		<SimpleData name="AC_COMMON">0.737350767481524</SimpleData>
		<SimpleData name="AC_ADDS">0.166714042069358</SimpleData>
		<SimpleData name="AC_SUPS">0.262649232518476</SimpleData>
		<SimpleData name="AC_CONF">0</SimpleData>
		<SimpleData name="IMAGE_ID">LC80150272013271LGN00</SimpleData>
		<SimpleData name="CENTRE_X">-73.966871962079594</SimpleData>
		<SimpleData name="CENTRE_Y">48.241107486944884</SimpleData>
	</SchemaData>
</ExtendedData>
      <MultiGeometry>
      <Polygon>
      <outerBoundaryIs>
      <LinearRing>
      <coordinates>-73.988316198636511,48.250881857562064 -73.988297565725958,48.251826373252321 -73.988095527398116,48.251824595322901 -73.987683460191775,48.252225830713186 -73.986673261072283,48.252216932067022 -73.986675927285262,48.252082001340902 -73.985870438787359,48.251939945372776 -73.985673737805087,48.251668301790978 -73.984262147939475,48.251520885952736 -73.984264820430553,48.251385955310894 -73.98183770677187,48.251499442392188 -73.981835027884856,48.251634372929743 -73.981430953570182,48.251630794017132 -73.981428273600727,48.251765724534557 -73.980620123082801,48.251758562416462 -73.980617440968174,48.251893492896855 -73.978799098676291,48.251877357291718 -73.978801785573182,48.251742426887304 -73.97779159876012,48.25173345028189 -73.97801514754893,48.250655803229378 -73.976600916458906,48.250643224033148 -73.976603609022291,48.250508293692135 -73.976202237843793,48.250369766131385 -73.976213012070261,48.249830044788922 -73.978036657747566,48.24957635993507 -73.978047412371751,48.249036638208821 -73.977845385675096,48.249034842347022 -73.97805816667919,48.248496916429872 -73.977856142107612,48.248495120601895 -73.977861520205067,48.248225259709557 -73.977659496715816,48.24822346354361 -73.977468233453678,48.247681945266237 -73.978481027720107,48.247555993662765 -73.978478340373982,48.24769092415243 -73.978680361817425,48.247692718865025 -73.978674988128304,48.247962579851347 -73.978472965622373,48.247960785121847 -73.978470278216903,48.248095715601607 -73.978672301254079,48.248097510339555 -73.978669614360058,48.248232440824495 -73.978871637948274,48.248234235216003 -73.97886895156573,48.248369165706087 -73.979070975704985,48.248370959751163 -73.979466969557919,48.248779338303152 -73.979668995350281,48.248781131308895 -73.979671679667078,48.248646200794909 -73.980679124608542,48.2487900910142 -73.980681806268976,48.248655160458021 -73.981085857047987,48.248658741839023 -73.981088537626135,48.2485238112627 -73.98189663729589,48.248530969732286 -73.981893958842804,48.24866590034231 -73.982298009858553,48.24866947746461 -73.982295332448288,48.248804408088198 -73.983100761536562,48.248946488761682 -73.983095410867719,48.249216350059733 -73.984102877064046,48.249360210411282 -73.984100204336855,48.24949514109413 -73.984302233239262,48.249496925979315 -73.984698277585153,48.249905286789378 -73.985304369310143,48.249910637261692 -73.985307038908545,48.24977570653833 -73.987731401200875,48.2497970763851 -73.987728737978173,48.249932007209082 -73.9883321689383,48.250072272556281 -73.988321522148837,48.250611995906638 -73.988119488603132,48.250610218052557 -73.988114164028119,48.25088007969125 -73.988316198636511,48.250881857562064
      </coordinates>
      </LinearRing>
      </outerBoundaryIs>
      </Polygon>
      </MultiGeometry>
  </Placemark>
  </Folder>
</Document>
</kml> 

GeoRSS (/last.rss or /last with header containing Accept : application/rss+xml)

GeoRSS is also an xml format but that is directly compatible with RSS readers and also Google Map. This is a small file that gives only an overview of the information. We use the extension rss in the request (last.rss). The geographical information is encoded in the GeoJSON format. Depending on the level of the query, different information are displayed, they are 2 levels:

  1. General overview: http://cangeo.crim.ca/hydro/tiles/last.rss (see Figure 7) below. When clicking on a specific tile marker, a information panel should open with a “Tile Details” view link that enables the user to go to a tile specific GeoRSS. The “kmz” link will produce a link to a kmz file that can be opened in Google Earth.
  2. Tile specific overview (see Figure 8 below) where only waterbody center of mass are shown: cangeo.crim.ca/hydro/tiles/<1000k>/<250k>/<50k>/last.rss. At that level, only a quality factor and the name of the image used in the update is given, the user can visualize the object in kmz format (Figure 3) by clicking on “View Details”.
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:georss="http://www.georss.org/georss" slick-uniqueid="3">
<div>
<a id="slick_uniqueid"/>
</div>
<title>Last_tiles</title>
<id>Last_tiles</id>
<updated>2013-09-28T15:46:19Z</updated>
<author>
<name>CRIM</name>
</author>
<entry>
<title>032f05</title>
<id>032f05</id>
<updated>2013-09-17T16:04:09Z</updated>
<published>2013-09-17T16:04:09Z</published>
<content type="html">
Last Update: 2013-09-17T16:04:09Z<br/><a href="http://geo-ti.crim.ca/feeds/50k/032/f/05/Last.kml">Download kml</a> | <a href="https://maps.google.com/maps?q=http://geo-ti.crim.ca/feeds/50k/032/f/05/Last.xml?2014-02-27T13:00:24-05:00">View Details</a>
</content>
<georss:point>49.375 -77.75</georss:point>
<georss:polygon>
49.25 -78 49.267 -78 49.283 -78 49.3 -78 49.317 -78 49.333 -78 49.35 -78 49.367 -78 49.383 -78 49.4 -78 49.417 -78 49.433 -78 49.45 -78 49.467 -78 49.483 -78 49.5 -78 49.5 -77.983 49.5 -77.967 49.5 -77.95 49.5 -77.933 49.5 -77.917 49.5 -77.9 49.5 -77.883 49.5 -77.867 49.5 -77.85 49.5 -77.833 49.5 -77.817 49.5 -77.8 49.5 -77.783 49.5 -77.767 49.5 -77.75 49.5 -77.733 49.5 -77.717 49.5 -77.7 49.5 -77.683 49.5 -77.667 49.5 -77.65 49.5 -77.633 49.5 -77.617 49.5 -77.6 49.5 -77.583 49.5 -77.567 49.5 -77.55 49.5 -77.533 49.5 -77.517 49.5 -77.5 49.483 -77.5 49.467 -77.5 49.45 -77.5 49.433 -77.5 49.417 -77.5 49.4 -77.5 49.383 -77.5 49.367 -77.5 49.35 -77.5 49.333 -77.5 49.317 -77.5 49.3 -77.5 49.283 -77.5 49.267 -77.5 49.25 -77.5 49.25 -77.517 49.25 -77.533 49.25 -77.55 49.25 -77.567 49.25 -77.583 49.25 -77.6 49.25 -77.617 49.25 -77.633 49.25 -77.65 49.25 -77.667 49.25 -77.683 49.25 -77.7 49.25 -77.717 49.25 -77.733 49.25 -77.75 49.25 -77.767 49.25 -77.783 49.25 -77.8 49.25 -77.817 49.25 -77.833 49.25 -77.85 49.25 -77.867 49.25 -77.883 49.25 -77.9 49.25 -77.917 49.25 -77.933 49.25 -77.95 49.25 -77.967 49.25 -77.983 49.25 -78
</georss:polygon>
</entry>
</feed> 

Figure 7. GeoRSS displayed in Google Map

Figure 8. Tile specific GeoRSS displayed in Google Map

Figure 9. Updated object with associated attributes

GeoJSON (/last.json or /last with header containing Accept : application/json)

The geojson format is also available.
The specification of this format can be accessed here : https://wiki.corpo.crim.ca/doku.php and a sample of the format can be seen below.

{
    "type" : "FeatureCollection",
    "crs": { 
        "type": "name", 
        "properties": { 
            "name": "urn:ogc:def:crs:OGC:1.3:CRS84" 
        } 
    },
    "features": [
        { 
            "type": "Feature", 
            "properties": { 
                "Name": "66f6921e705c4c8c9cfbd917fa8c38cd", 
                "Description": "<table border=\"1\" cellpadding=\"2\" cellspacing=\"0 ..."
            }, 
            "geometry": { 
                "type": "Polygon", 
                "coordinates": [ [ [ -65.048175258758761, 48.284188877093285 ], [ -65.048213019520745, 48.285132930418726 ], [ -65.047000587592478, 48.285154526219316 ], [ -65.046984413733838, 48.284749931653799 ], [ -65.046782343200732, 48.284753529661096 ], [ -65.046760780736804, 48.284214070121827 ], [ -65.046558712289141, 48.284217667706528 ], [ -65.046739218907959, 48.283674610524436 ], [ -65.047552876323991, 48.283795081745232 ], [ -65.047765729206461, 48.28406121206644 ], [ -65.048175258758761, 48.284188877093285 ] ] ] 
            } 
        },
        { 
            "type": "Feature", 
            "properties": { 
                "Name": "44e488c773c843bfbc8352bf924ff159", 
                "Description": "<table border=\"1\" cellpadding=\"2\" cellspacing=\"0 ..."
             }, 
            "geometry": { 
                "type": "Polygon", 
                "coordinates": [ [ [ -65.225155661209641, 48.36889435260656 ], [ -65.224965035693515, 48.369167963173062 ], [ -65.224560274021044, 48.369175794387388 ], [ -65.224566150113091, 48.369310641649953 ], [ -65.224363768678373, 48.369314556741877 ], [ -65.224369644280216, 48.369449404019178 ], [ -65.224167262268679, 48.369453318773751 ], [ -65.224173137380319, 48.369588166065775 ], [ -65.223970754791964, 48.369592080482988 ], [ -65.223583610278396, 48.370004450269725 ], [ -65.222976457191933, 48.370016189417775 ], [ -65.222988201402643, 48.370285884189514 ], [ -65.222785815886823, 48.37028979656413 ], [ -65.222791687523582, 48.370424643962849 ], [ -65.222184529115808, 48.370436379007188 ], [ -65.222178659079688, 48.370301531553203 ], [ -65.221768018732789, 48.370174505605775 ], [ -65.221345644889155, 48.369777783076565 ], [ -65.220940877390177, 48.369785601630028 ], [ -65.220935010771584, 48.369650754047029 ], [ -65.220530244166682, 48.369658571140519 ], [ -65.220524378658368, 48.36952372351702 ], [ -65.219304218743147, 48.369412318410603 ], [ -65.219292494344913, 48.369142622924265 ], [ -65.2190901128523, 48.36914652872904 ], [ -65.219078389693934, 48.368876833191081 ], [ -65.218876009225127, 48.368880738603295 ], [ -65.218840843988048, 48.368071651790025 ], [ -65.218227852804091, 48.367948517690714 ], [ -65.21822199372609, 48.367813669816663 ], [ -65.217394917399005, 48.367424739185267 ], [ -65.21738906062761, 48.367289891222853 ], [ -65.21759143499699, 48.367285988521601 ], [ -65.217568006209405, 48.366746596708367 ], [ -65.217770378401795, 48.366742693724873 ], [ -65.21796103428251, 48.366469094530245 ], [ -65.219175259869488, 48.366445667244548 ], [ -65.219181121182771, 48.366580515063788 ], [ -65.220008196777385, 48.366969432899509 ], [ -65.22001406039729, 48.367104280630336 ], [ -65.220841150755575, 48.36749319221434 ], [ -65.221066991557265, 48.368028673902018 ], [ -65.221269368349596, 48.368024764686673 ], [ -65.221275235516202, 48.368159612277402 ], [ -65.221477612798751, 48.368155702687901 ], [ -65.222108222021575, 48.368683361815947 ], [ -65.222917738735731, 48.368667715336315 ], [ -65.223131862217997, 48.368933497636128 ], [ -65.223733128542122, 48.368786910515468 ], [ -65.223947256739265, 48.369052691218926 ], [ -65.224149637193591, 48.369048776875417 ], [ -65.224340266704132, 48.368775167595551 ], [ -65.225155661209641, 48.36889435260656 ] ] ] 
            } 
        },
        ...
    ]
}

KML (/last.kml or /last with header containing Accept : application/vnd.google-earth.kml+xml)

The Keyhole Markup Language (KML) is a xml format proposed by Google. This format is ideal for displaying geographic information and is used exclusively as soon as we reach the individual waterbody object (see Figure 3). This response type can also be selected for the 'last' request as shown with the previous response type.

<?xml version='1.0' encoding='UTF-8'?>
<kml xmlns="http://www.opengis.net/kml/2.2">
 <Document>
  <Schema name="" id="autocarto">
   <SimpleField name="ACCURACY" type="float"/>
   <SimpleField name="ACQTECH" type="int"/>
   <SimpleField name="CODE" type="float"/>
   <SimpleField name="DATANAME" type="string"/>
   <SimpleField name="DEFINITION" type="int"/>
   <SimpleField name="ID" type="string"/>
   <SimpleField name="ISOLATED" type="int"/>
   <SimpleField name="LAKCONCOD" type="float"/>
   <SimpleField name="LAKGEODB" type="string"/>
   <SimpleField name="LAKLANG" type="int"/>
   <SimpleField name="LAKNAMEEN" type="string"/>
   <SimpleField name="LAKNAMEFR" type="string"/>
   <SimpleField name="LAKNAMEID" type="string"/>
   <SimpleField name="PERMANENCY" type="int"/>
   <SimpleField name="PROVIDER" type="int"/>
   <SimpleField name="RIVCONCOD" type="float"/>
   <SimpleField name="RIVGEODB" type="string"/>
   <SimpleField name="RIVLANG" type="int"/>
   <SimpleField name="RIVNAMEEN" type="string"/>
   <SimpleField name="RIVNAMEFR" type="string"/>
   <SimpleField name="RIVNAMEID" type="string"/>
   <SimpleField name="THEME" type="string"/>
   <SimpleField name="VALDATE" type="string"/>
   <SimpleField name="AC_SUCCESS" type="int"/>
   <SimpleField name="AC_COMMON" type="float"/>
   <SimpleField name="AC_ADDS" type="float"/>
   <SimpleField name="AC_SUPS" type="float"/>
   <SimpleField name="AC_CONF" type="int"/>
   <SimpleField name="IMAGE_ID" type="string"/>
   <SimpleField name="CENTRE_X" type="float"/>
   <SimpleField name="CENTRE_Y" type="float"/>
   <SimpleField name="IMAGE_DATETIME" type="string"/>
  </Schema>
  <Placemark>
   <Style>
    <LineStyle>
     <color>ff0000ff</color>
    </LineStyle>
    <PolyStyle>
     <fill>0</fill>
    </PolyStyle>
   </Style>
   <name>32a4c79a258844cfa7934a6b69aeb65c</name>
   <Snippet maxLines="1">32a4c79a258844cfa7934a6b69aeb65c</Snippet>
   <description><![CDATA[<table border="1" cellpadding="2" cellspacing="0"><tr><td>ACCURACY</td><td>22</td></tr><tr><td>ACQTECH</td><td>5</td></tr><tr><td>CODE</td><td>1481262</td></tr><tr><td>DATANAME</td><td>032A04</td></tr><tr><td>DEFINITION</td><td>-1</td></tr><tr><td>ID</td><td>32a4c79a258844cfa7934a6b69aeb65c</td></tr><tr><td>ISOLATED</td><td>0</td></tr><tr><td>LAKCONCOD</td><td>-1</td></tr><tr><td>LAKLANG</td><td>-1</td></tr><tr><td>PERMANENCY</td><td>1</td></tr><tr><td>PROVIDER</td><td>2</td></tr><tr><td>RIVCONCOD</td><td>-1</td></tr><tr><td>RIVLANG</td><td>-1</td></tr><tr><td>THEME</td><td>HD</td></tr><tr><td>VALDATE</td><td>1976</td></tr><tr><td>AC_SUCCESS</td><td>1</td></tr><tr><td>AC_COMMON</td><td>0.737350767481524</td></tr><tr><td>AC_ADDS</td><td>0.166714042069358</td></tr><tr><td>AC_SUPS</td><td>0.262649232518476</td></tr><tr><td>AC_CONF</td><td>0</td></tr><tr><td>IMAGE_ID</td><td>LC80150272013271LGN00</td></tr><tr><td>CENTRE_X</td><td>-73.966871962079594</td></tr><tr><td>CENTRE_Y</td><td>48.241107486944884</td></tr><tr><td>IMAGE_DATETIME</td><td>2013-09-28T15:45:55Z</td></tr></table>]]></description>
   <ExtendedData>
    <SchemaData schemaUrl="#autocarto">
     <SimpleData name="ACCURACY">22</SimpleData>
     <SimpleData name="ACQTECH">5</SimpleData>
     <SimpleData name="CODE">1481262</SimpleData>
     <SimpleData name="DATANAME">032A04</SimpleData>
     <SimpleData name="DEFINITION">-1</SimpleData>
     <SimpleData name="ID">32a4c79a258844cfa7934a6b69aeb65c</SimpleData>
     <SimpleData name="ISOLATED">0</SimpleData>
     <SimpleData name="LAKCONCOD">-1</SimpleData>
     <SimpleData name="LAKLANG">-1</SimpleData>
     <SimpleData name="PERMANENCY">1</SimpleData>
     <SimpleData name="PROVIDER">2</SimpleData>
     <SimpleData name="RIVCONCOD">-1</SimpleData>
     <SimpleData name="RIVLANG">-1</SimpleData>
     <SimpleData name="THEME">HD</SimpleData>
     <SimpleData name="VALDATE">1976</SimpleData>
     <SimpleData name="AC_SUCCESS">1</SimpleData>
     <SimpleData name="AC_COMMON">0.737350767481524</SimpleData>
     <SimpleData name="AC_ADDS">0.166714042069358</SimpleData>
     <SimpleData name="AC_SUPS">0.262649232518476</SimpleData>
     <SimpleData name="AC_CONF">0</SimpleData>
     <SimpleData name="IMAGE_ID">LC80150272013271LGN00</SimpleData>
     <SimpleData name="CENTRE_X">-73.966871962079594</SimpleData>
     <SimpleData name="CENTRE_Y">48.241107486944884</SimpleData>
     <SimpleData name="IMAGE_DATETIME">2013-09-28T15:45:55Z</SimpleData>
    </SchemaData>
   </ExtendedData>
   <MultiGeometry>
    <Polygon>
     <outerBoundaryIs>
      <LinearRing>
       <coordinates>-73.965829924957106,48.243664171824051 -73.965827204704198,48.243799101870245 -73.965625199407853,48.243797284685137 -73.965627920191892,48.243662354647498 -73.965829924957106,48.243664171824051</coordinates>
      </LinearRing>
     </outerBoundaryIs>
    </Polygon>
   </MultiGeometry>
  </Placemark>
 </Document>
</kml>

KMZ (/last.kmz or /last with header containing Accept : application/vnd.google-earth.kmz)

Same format as above but in a zipped format which reduce the size of the data.

ESRI Shapefile (/last.shp or /last with header containing Accept : application/zip)

A zipped format containing all files required by ESRI Shapefile standard.

Canarie API

Service exceptions

The CANGEO system returns an exceptions in the HTTP response body when something goes wrong. The format can be one of the following ones: 'text/html', 'application/json' or 'application/xml'. Based on the header Accept field, html would have precedence over json and json over xml which will be the default one if the Accept field is empty. It should be note that the extension of the url (ex.: last.xml) isn't used for the type of response since even parsing the url could cause an exception and thus the response type would be undefined.

The following fields are given when an exception occurs:

FieldDescription
StatusThe HTTP status code for the exception (see table below)
MessageThe description of the HTTP status code
Code*An internal error code which is more specific on the exception
More_info*More information on the internal error code (Contextual)

*Theses fields may not be present if the exception occurs outside of the service core scripts.

In xml, the response appears as a <RestException> element within the <CanGeoResponse> root tag:

<CanGeoResponse>
    <RestException>
        <Status>404</Status>
        <Message>The requested resource was not found</Message>
        <Code>-5</Code>
        <MoreInfo>The required file isn't found on server (It is possible that the requested info doesn't exist). The file '50k/999/p/16/Last.kml' cannot be found on server.</MoreInfo>
    </RestException>
</CanGeoResponse> 

In json, the response contains the same fields like this:

{
    Code: -5
    Message: "The requested resource was not found"
    More_info: "The required file isn't found on server (It is possible that the requested info doesn't exist). The file '50k/999/p/16/Last.kml' cannot be found on server."
    Status: 404
}

And finally in html it will look like this:

Cangeo

404: The requested resource was not found

-5: The required file isn't found on server (It is possible that the requested info doesn't exist). The file '50k/999/p/16/Last.kml' cannot be found on server.
Voir cangeo.crim.ca/hydro/doc pour avoir plus de details sur l'utilisation.

HTML status that can be returned by the service :

Code Description
200 Successful request, results follow
204 Successful request, no content : Return for the /source url since it is not available
400 Bad request due to improper specifications, unrecognized parameter, parameter value out of range, etc.
404 The requested resource was not found
405 Method not allowed
500 Internal server error
503 Service temporarily unavailable