anchor.diff: -<!doctype html>
  -
  -<!--
  -  Copyright (C) 2011-2012 Pavel Shramov
  -  Copyright (C) 2013 Maxime Petazzoni <maxime.petazzoni@bulix.org>
  -  All Rights Reserved.
  -
  -  Redistribution and use in source and binary forms, with or without
  -  modification, are permitted provided that the following conditions are met:
  -
  -  - Redistributions of source code must retain the above copyright notice,
  -    this list of conditions and the following disclaimer.
  -
  -  - Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  -
  -  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  -  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  -  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  -  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
  -  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  -  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  -  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  -  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  -  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  -  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  -  POSSIBILITY OF SUCH DAMAGE.
  --->
  -
   <html>
     <head>
       <title>leaflet-gpx demo</title>
  
positive.code:       .gpx { border: 5px #aaa solid; border-radius: 5px;
          box-shadow: 0 0 3px 3px #ccc;
          width: 1000px; margin: 1em auto; }
        .gpx header { padding: 0.5em; }
        .gpx h3 { margin: 0; padding: 0; font-weight: bold; }
        .gpx .start { font-size: smaller; color: #444; }
        .gpx .map { border: 1px #888 solid; border-left: none; border-right: none;
          width: 1000px; height: 500px; margin: 0; }
        .gpx footer { background: #f0f0f0; padding: 0.5em; }
  
negative.code:       });
        elevation.addTo(map);
  
        var gjl = L.geoJson(geojson,{ onEachFeature: function(feature, layer) { elevation.addData.bind(elevation)(feature, layer); } }).addTo(map);
  
        map.addLayer(tileLayer).fitBounds(gjl.getBounds());
  
        _c('distance').textContent = round(geojson.properties.distance / 1000);
        _c('duration').textContent = format_duration(geojson.properties.moving_duration);
        _c('average-speed').textContent = round(geojson.properties.average_moving_speed);
        _c('elevation-gain').textContent = round(geojson.properties.uphill_elevation);
        _c('elevation-loss').textContent = -1 * round(geojson.properties.downhill_elevation);
      </script>
    </body>
  </html>
  