SlideShare a Scribd company logo
1 of 177
Download to read offline
Beyond GoogleMaps
Andrew Turner, Mapufacture & FortiusOne
or...
or...
 Evolved Maps,
desconstructed
A Brief History
  of Mapping *




                  *IANAH
StoryMapping
Emphemeral Maps   http://maps.google.com
Meaning
Meaning
Navigation
Compass
1492 - Columbus sails
   the ocean blue
Cartographic Renaissance
So geographers, in Afric maps,
With savage pictures fill their gaps,
And o’er unhabitable downs
Place elephants for want of towns.
          - Jonathan Swift
Ortelius Atlas
Exploration
Travel Guides
Driving Guides
GIS
Internet Maps
2005 - Google slips the
        map
urban renewal
    participatory web



  2005 - Google slips the
          map
                        mobile computing
GPS becomes
 ubiquitous
HousingMaps   http://housingmaps.com
Slippy Maps
      &
Spinny Globes
GoogleMaps   http://maps.google.com
Interactivity   http://maps.google.com
Design
Usability
http://maps.google.com/maps?f=q&hl=en&geocode=&q=Cape+Town&ie=UTF8&ll=-33.938803,18.486214&spn=0.182293,0.331306&z=12




                        Data Coverage and
                                   Quality
http://maps.google.com/maps?f=q&hl=en&geocode=&q=Cape+Town&ie=UTF8&ll=-33.938803,18.486214&spn=0.182293,0.331306&z=12




                        Data Coverage and
                                   Quality
                                                                   http://openstreetmap.org/?lat=-33.9377&lon=18.4745&zoom=12&layers=B000FTF
Brighton, UK
Brighton, UK
Data Ownership and
           Access
Data Ownership and
           Access
Technology Limitations
Technology Limitations
Where Next?
              http://flickr.com/photos/loupiote/25426957
Storage
id       name      rating    lat      lon
10045    Vibe Bar    4.3     52.81    0.295
10046   Half Moon    3.8     53.432   0.312
           Pub
10047   Windmill     2.6     50.982   0.256
10048   Marquess     1.7     51.023    1.24
        oAnglesey
         Grange
10049                4.5     52.110   0.4562
          Pub
        Coopers
10050                3.5     50.862   0.821
         Arms
          Old
10051                3.2     52.591   0.312
        Queens
          Oxo
10052                1.3     51.93    -0.351
          Head
         Tower
10053   Riverside    3.9     52.18     0.62
id       name      rating    lat      lon
10045    Vibe Bar    4.3     52.81    0.295
10046   Half Moon    3.8     53.432   0.312
           Pub
10047   Windmill     2.6     50.982   0.256
10048   Marquess     1.7     51.023    1.24
        oAnglesey
         Grange
10049                4.5     52.110   0.4562
          Pub
        Coopers
10050                3.5     50.862   0.821
         Arms
          Old
10051                3.2     52.591   0.312
        Queens
          Oxo
10052                1.3     51.93    -0.351
          Head
         Tower
10053   Riverside    3.9     52.18     0.62
SELECT name,latitude,longitude, acos(SIN( PI()* 40.7383040 /180 )*SIN( PI()*latitude/180 )
)+(cos(PI()* 40.7383040 /180)*COS( PI()*latitude/180) *COS(PI()*longitude/180-PI()* -73.99319 /180)
)* 3963.191 AS distance

FROM allcountries

WHERE 3963.191 * ACOS( (SIN(PI()* 40.7383040 /180)*SIN(PI() * latitude/180)) +
(COS(PI()* 40.7383040 /180)*cos(PI()*latitude/180)*COS(PI() * longitude/180-PI()* -73.99319 /180))
) < = 1.5

ORDER BY 3963.191 * ACOS(
(SIN(PI()* 40.7383040 /180)*SIN(PI()*latitude/180)) +
(COS(PI()* 40.7383040 /180)*cos(PI()*latitude/180)*COS(PI() * longitude/180-PI()* -73.99319 /180))
)
SELECT the_geom
FROM geom_table
WHERE ST_Distance(the_geom, GeomFromText('POINT(0.02839 51.50807)', -1)) < 100
SELECT the_geom
FROM geom_table
WHERE the_geom && 'BOX3D(0.02 51,0.03 52)'::box3d
  AND
ST_Distance(the_geom, GeomFromText('POINT(0.02839 51.50807)', -1)) < 100
SpatiaLite
SQLite + Spatial Types




              http://www.gaia-gis.it/spatialite/
GeoHash



          http://geohash.org/
GeoHash



          http://geohash.org/
GeoHash
SELECT name
FROM pubs
WHERE geohash LIKE quot;GCPUV%quot;




                              http://geohash.org/
GeoHash
SELECT name
FROM pubs
WHERE geohash LIKE quot;GCPUVR%quot;
OR geohash LIKE quot;GCPVJ2%quot;




                               http://geohash.org/
Data
GeoNames   http://geonames.org
GeoNames   http://geonames.org
Implicit GeoData   http://geocodr.net
Implicit GeoData   http://geocodr.net
OpenStreetMap   http://openstreetmap.org
OpenStreetMap London   http://openstreetmap.org
Wiki for the World
Flickr OSM   http://www.flickr.com/map?
             &fLat=39.9227&fLon=116.4694&zl=6
OpenAerialMap   http://openaerialmap.org
GeoCommons Finder!   http://geocommons.com
GeoCommons Finder!   http://finder.geocommons.com
Sharing
GeoRSS
GeoRSS
GeoRSS


+
GeoRSS


    <georss:point>
+      45.256 -71.92
    </georss:point>
GeoRSS


    <georss:point>
+      45.256 -71.92
    </georss:point>
GeoRSS


    <georss:point>
+      45.256 -71.92
    </georss:point>
RSS / Atom
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<feed xml:lang=quot;en-USquot; xmlns:dc=quot;http://purl.org/dc/elements/1.1/quot; xml:base=quot;http://grwifi.net/feedquot; xmlns=quot;http://www.w3.org/2005/Atomquot;>
 <title>Grand Rapids WiFi: News, Updated Hotspot Locations, and Comments</title>
 <id>http://grwifi.net/atom/locations</id>
 <link href=quot;http://grwifi.net/feedquot; rel=quot;selfquot; type=quot;application/atom+xmlquot;/>
 <rights>Creative Commons Attribution-NonCommercial-ShareAlike 2.0 http://creativecommons.org/licenses/by-nc-sa/2.0/ </rights>
 <updated>2007-03-28T17:31:33+00:00</updated>
 <entry>
   <id>http://grwifi.net/location/view/skelletones#comment3862</id>
   <title>Grand Rapids WiFi: Comment on The Euclid</title>
   <link href=quot;http://grwifi.net/location/view/skelletones#comment3862quot; rel=quot;alternatequot; type=quot;text/htmlquot;/>
   <category term=quot;The Euclidquot;/>
   <author><name>mari</name></author>
   <content type=quot;xhtmlquot;><p>i know a local band in kalamazoo called rising vacancy. i was wondering how …/p></content>
   <published>2007-03-28T17:31:33+00:00</published>
 </entry>
 <entry>
   <id>http://grwifi.net/location/view/bk-east-paris#comment3855</id>
   <title>Grand Rapids WiFi: Comment on Burger King - East Paris</title>
   <link href=quot;http://grwifi.net/location/view/bk-east-paris#comment3855quot; rel=quot;alternatequot; type=quot;text/htmlquot;/>
   <category term=quot;Burger King - East Parisquot;/>
   <author><name>Brandino</name></author>
   <content type=quot;xhtmlquot;><p>I love burger king </p></content>
   <published>2007-03-21T16:38:19+00:00</published>
 </entry>
 <entry>
   <id>http://grwifi.net/location/view/common-ground#comment3843</id>
   <title>Grand Rapids WiFi: Comment on Common Ground Coffee Shop</title>
   <link href=quot;http://grwifi.net/location/view/common-ground#comment3843quot; rel=quot;alternatequot; type=quot;text/htmlquot;/>
   <category term=quot;Common Ground Coffee Shopquot;/>
   <author>
    <name>Rex Cowan</name>
   </author>
   <content type=quot;xhtmlquot;>
    <div xmlns=quot;http://www.w3.org/1999/xhtmlquot;><p>Common Ground is a welcoming place with a warm atmosphere, the clerk I talked to had …</p></
content>
   <published>2007-03-17T01:45:59+00:00</published>
 </entry>
</feed>
GeoRSS
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<feed xml:lang=quot;en-USquot; xmlns:dc=quot;http://purl.org/dc/elements/1.1/quot; xml:base=quot;http://grwifi.net/feedquot; xmlns:georss=quot;http://www.georss.org/georssquot; xmlns=quot;http://
www.w3.org/2005/Atomquot;>
 <title>Grand Rapids WiFi: News, Updated Hotspot Locations, and Comments</title>
 <id>http://grwifi.net/atom/locations</id>
 <link href=quot;http://grwifi.net/feedquot; rel=quot;selfquot; type=quot;application/atom+xmlquot;/>
 <rights>Creative Commons Attribution-NonCommercial-ShareAlike 2.0 http://creativecommons.org/licenses/by-nc-sa/2.0/ </rights>
 <updated>2007-03-28T17:31:33+00:00</updated>
 <entry>
   <id>http://grwifi.net/location/view/skelletones#comment3862</id>
   <title>Grand Rapids WiFi: Comment on The Euclid</title>
   <link href=quot;http://grwifi.net/location/view/skelletones#comment3862quot; rel=quot;alternatequot; type=quot;text/htmlquot;/>
   <category term=quot;The Euclidquot;/>
   <author><name>mari</name></author>
   <georss:point>42.960126 -85.667997</georss:point>
   <content type=quot;xhtmlquot;><p>i know a local band in kalamazoo called rising vacancy. i was wondering how …/p></content>
   <published>2007-03-28T17:31:33+00:00</published>
 </entry>
 <entry>
   <id>http://grwifi.net/location/view/bk-east-paris#comment3855</id>
   <title>Grand Rapids WiFi: Comment on Burger King - East Paris</title>
   <link href=quot;http://grwifi.net/location/view/bk-east-paris#comment3855quot; rel=quot;alternatequot; type=quot;text/htmlquot;/>
   <category term=quot;Burger King - East Parisquot;/>
   <author><name>Brandino</name></author>
   <georss:point>42.911495 -85.568665</georss:point>
   <content type=quot;xhtmlquot;><p>I love burger king </p></content>
   <published>2007-03-21T16:38:19+00:00</published>
 </entry>
 <entry>
   <id>http://grwifi.net/location/view/common-ground#comment3843</id>
   <title>Grand Rapids WiFi: Comment on Common Ground Coffee Shop</title>
   <link href=quot;http://grwifi.net/location/view/common-ground#comment3843quot; rel=quot;alternatequot; type=quot;text/htmlquot;/>
   <category term=quot;Common Ground Coffee Shopquot;/>
   <author>
    <name>Rex Cowan</name>
   </author>
   <georss:point>42.962927 -85.637179</georss:point>
   <content type=quot;xhtmlquot;>
    <div xmlns=quot;http://www.w3.org/1999/xhtmlquot;><p>Common Ground is a welcoming place with a warm atmosphere, the clerk I talked to had …</p></content>
   <published>2007-03-17T01:45:59+00:00</published>
 </entry>
</feed>
GeoNames GeoRSS   http://www.geonames.org/rss-to-georss-converter.html
KML
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<kml xmlns=quot;http://earth.google.com/kml/2.2quot;>
  <Placemark>
    <name>Simple placemark</name>
    <description>Attached to the ground. Intelligently places itself
        at the height of the underlying terrain.</description>
    <Point>
       <coordinates>-122.0822035425683,37.42228990140251,0</coordinates>
    </Point>
  </Placemark>
</kml>
KML Extended Data

 <ExtendedData id=quot;roomsquot;>
     <name>Rooms</name>
     <value>3</value>
 </ExtendedData>
KML Network Links

</NetworkLink>
    <NetworkLink>
    <name><![CDATA[Pubs in London]]></name>
    <Link>
        <href>http://maker.geocommons.com/maps/839/overlays/1</href>
    </Link>
</NetworkLink>
GeoJSON


{ quot;typequot;: quot;Pointquot;, quot;coordinatesquot;: [100.0, 0.0] }
GeoJSON
{ quot;blogquot;: {
    quot;postsquot;: [
       { quot;typequot;: quot;atom:itemquot;,
         quot;atom:summaryquot;: quot;post 1quot;,
         quot;atom:descriptionquot;: quot;i love bloggingquot;
         },
       { quot;typequot;: quot;atom:itemquot;,
         quot;atom:summaryquot;: quot;post 2 from CAquot;,
         quot;atom:descriptionquot;: quot;geoblogging in Californiaquot;
         quot;geometryquot;: {
            quot;typequot;, quot;Pointquot;,
            quot;coordinatesquot;: [-120, 40]
            }
         },
    ],
  quot;geometryquot;: {
    quot;typequot;: quot;Polygonquot;,
    quot;coordinatesquot;: [[[-121, 39], [-119, 39], [-119, 41], [-121, 41], [-121, 39]]]
    }
  }
}
GeoWeb
Resources

• /places
• /places/89
• /places/89.atom
• /places/89.kml
Web Aligned   http://highearthorbit.com/a-proposal-georss-kml
Formats

HTML : RSS
Formats

HTML : RSS ::
Formats

HTML : RSS :: KML : GeoRSS
Formats

HTML : RSS :: KML : GeoRSS
     Visualization : Syndication
Mapufacture   http://mapufacture.com
Visualization
Mapstraction
Mapstraction API
<script src=quot;http://maps.google.com/maps?file=api&v=2&key=YOUR_KEYquot; type=quot;text/javascriptquot;>
</script>
<script type=quot;text/javascriptquot; src=quot;mapstraction.jsquot;></script>

<div id=quot;mapstractionquot; style=quot;width: 400px; height: 400px;quot;></div>

<script type=quot;text/javascriptquot;>
var mapstraction = new Mapstraction('mapstraction','google');

var myPoint = new LatLonPoint(37.4041, -122.0081);
mapstraction.setCenterAndZoom(myPoint, 10);

mapstraction.addControls({
    pan: true,
    zoom: 'small',
    map_type: true
});

</script>
Power of the Swap




var mapstraction = new Mapstraction(‘map’, ‘google’);
Power of the Swap




mapstraction.swap(‘mapstraction’, ‘yahoo’);
Power of the Swap




mapstraction.swap(‘mapstraction’, ‘microsoft’);
Power of the Swap




mapstraction.swap(‘mapstraction’, ‘openstreetmap’);
Overlays
mapstraction.addImageOverlay
  (quot;overquot;,file,opacity,west,south,east,north);

mapstraction.addImageOverlay(quot;overquot;,quot;images/
santodomingo.pngquot;,50,-70.01544, 18.39777, -69.80567,
18.563517);
Filters

mapstraction.removeAllFilters();
mapstraction.addFilter('category', 'eq', 10 );
mapstraction.doFilter();
Filters

mapstraction.removeAllFilters();
mapstraction.addFilter('category', 'eq', 10 );
mapstraction.doFilter();


mapstraction.toggleFilter('category', 'eq', 10 );
Sliders
OpenLayers   http://openlayers.org
map = new OpenLayers.Map(quot;mapquot;, {
    maxResolution: 360/512,
        projection: quot;EPSG:4326quot; ,
        numZoomLevels: 20,
        minZoomLevel: 0,
        maxZoomLevel: 19,
    controls: [
        new OpenLayers.Control.Navigation(),
        new OpenLayers.Control.PanPanel(),
        new OpenLayers.Control.ZoomPanel()
    ]
});
var wms = new OpenLayers.Layer.WMS(
    quot;worldquot;,
    quot;/cgi-bin/tilecache/tilecache.cgi?quot;,
    {layers: 'world'}
);
map.addLayers([wms]);
map.setCenter(new OpenLayers.LonLat(0, 32), 7);
map = new OpenLayers.Map(quot;mapquot;, {
    maxResolution: 360/512,
        projection: quot;EPSG:4326quot; ,
        numZoomLevels: 20,
        minZoomLevel: 0,
        maxZoomLevel: 19,
    controls: [
        new OpenLayers.Control.Navigation(),
        new OpenLayers.Control.PanPanel(),
        new OpenLayers.Control.ZoomPanel()
    ]
});
var wms = new OpenLayers.Layer.WMS(
    quot;worldquot;,
    quot;/cgi-bin/tilecache/tilecache.cgi?quot;,
    {layers: 'world'}
);
map.addLayers([wms]);
map.setCenter(new OpenLayers.LonLat(0, 32), 7);
<link rel=quot;stylesheetquot; href=quot;../themes/gray.cssquot; type=quot;text/cssquot; media=quot;screenquot; />
<div id=quot;mapquot; class=quot;gray smallmapquot;></div>
<link rel=quot;stylesheetquot; href=quot;../themes/gray.cssquot; type=quot;text/cssquot; media=quot;screenquot; />
<div id=quot;mapquot; class=quot;gray smallmapquot;></div>

         div.gray .olControlZoomPanel {
             top: 14px;
             left: 14px;
         }

         div.gray .olControlZoomPanel div {
             background-image: url(img/gray/gray_zoom_horiz.png);
             height: 18px;
             width: 18px;
         }

         div.gray .olControlZoomPanel .olControlZoomInItemInactive {
             top: 0px;
             left: 25px;
             background-position: 18px 0px;
         }

         div.gray .olControlZoomPanel .olControlZoomToMaxExtentItemInactive {
             top: 0px;
             left: 0px;
             background-position: 0px -18px;
         }

         div.gray .olControlZoomPanel .olControlZoomOutItemInactive {
             top: 0px;
             left: 0px;
             background-position: 0px 0px;
         }
<link rel=quot;stylesheetquot; href=quot;../themes/gray.cssquot; type=quot;text/cssquot; media=quot;screenquot; />
<div id=quot;mapquot; class=quot;gray smallmapquot;></div>

         div.gray .olControlZoomPanel {
             top: 14px;
             left: 14px;
         }

         div.gray .olControlZoomPanel div {
             background-image: url(img/gray/gray_zoom_horiz.png);
             height: 18px;
             width: 18px;
         }

         div.gray .olControlZoomPanel .olControlZoomInItemInactive {
             top: 0px;
             left: 25px;
             background-position: 18px 0px;
         }

         div.gray .olControlZoomPanel .olControlZoomToMaxExtentItemInactive {
             top: 0px;
             left: 0px;
             background-position: 0px -18px;
         }

         div.gray .olControlZoomPanel .olControlZoomOutItemInactive {
             top: 0px;
             left: 0px;
             background-position: 0px 0px;
         }
<link rel=quot;stylesheetquot; href=quot;../themes/hearts.cssquot; type=quot;text/cssquot; media=quot;screenquot; />
<div id=quot;mapquot; class=quot;hearts smallmapquot;></div>
<link rel=quot;stylesheetquot; href=quot;../themes/hearts.cssquot; type=quot;text/cssquot; media=quot;screenquot; />
<div id=quot;mapquot; class=quot;hearts smallmapquot;></div>




                 .hearts .olControlZoomPanel div {
                     background-image: url(img/hearts/hearts-zoom.png);
                 }
                 .hearts .olControlPanPanel div {
                     background-image: url(img/hearts/hearts-panel.png);
                 }
<link rel=quot;stylesheetquot; href=quot;../themes/hearts.cssquot; type=quot;text/cssquot; media=quot;screenquot; />
<div id=quot;mapquot; class=quot;hearts smallmapquot;></div>




                 .hearts .olControlZoomPanel div {
                     background-image: url(img/hearts/hearts-zoom.png);
                 }
                 .hearts .olControlPanPanel div {
                     background-image: url(img/hearts/hearts-panel.png);
                 }
Accessibility
ModestMaps
package {
    public class ModestMapsSample extends Sprite
    {
        private var map:Map;
        public function ModestMapsSample()
        {
            map = new TweenMap(stage.stageWidth - 2 * PADDING, stage.stageHeight - 2 * PADDING,
                                true,
                                new MicrosoftRoadMapProvider(),
                                new MapExtent(37.829853, 37.700121, -122.212601, -122.514725));
            map.addChild(new MapControls(map));
            map.addChild(new ZoomSlider(map));
            addChild(map);
        }
    }
}
London2012   http://london2012.co.uk
Hurricane Tracking   http://hurricanewiki.org
Analysis
WalkScore   http://walkscore.com
MySociety House Price     http://www.mysociety.org/2007/more-travel-maps/

        vs. Travel Time
pgRouting



            http://pgrouting.postlbs.org/
Safe Routing   http://www.ridethecity.com
Fuel Efficiency Routing
Bakery Routing
Cartography
NeoCartography
wrp.geothings.net
BurningManEarth   http://earth.burningman.org
Maps for Farmers   http://serveyourcountryfood.com
Mapnik
<?xml version=quot;1.0quot; encoding=quot;utf-8quot;?>
<!DOCTYPE Map>
<Map bgcolor=quot;#b5d0d0quot; srs=quot;+proj=latlong +datum=WGS84quot;>
    <Style name=quot;worldquot;>
        <Rule>
               <MaxScaleDenominator>250000000000</MaxScaleDenominator>
               <MinScaleDenominator>6000000</MinScaleDenominator>
               <PolygonSymbolizer>
                 <CssParameter name=quot;fillquot;>#f2efe9</CssParameter>
               </PolygonSymbolizer>
                <LineSymbolizer>
                 <CssParameter name=quot;strokequot;>#b5d0d0</CssParameter>
             <CssParameter name=quot;stroke-widthquot;>0.5</CssParameter>
               </LineSymbolizer>
        </Rule>
    </Style>
    <Layer name=quot;worldquot; status=quot;onquot; srs=quot;+proj=latlong +datum=WGS84quot;>
        <StyleName>world</StyleName>
        <Datasource>
             <Parameter name=quot;typequot;>shape</Parameter>
             <Parameter name=quot;filequot;>/Users/ajturner/Projects/mapnik/world_borders</Parameter>
        </Datasource>
    </Layer>
</Map>




                                      Mapnik              http://mapnik.com
OpenCycleMap   http://opencyclemap.org
OpenCycleMap   http://opencyclemap.org
Shenzen Maps
example.mml                                            example.mss

<?xml version=quot;1.0quot; encoding=quot;utf-8quot;?>                 * {
<!DOCTYPE Map>                                               line-width: 1;
<Map bgcolor=quot;#b5d0d0quot; srs=quot;...quot;>                            line-color: #999;
   <Stylesheet>                                              polygon-fill: #fff;
        Map { map-bgcolor: #ccc; }                     }
    </Stylesheet>
    <Stylesheet src=quot;example.mssquot;/>                    *[zoom>=6][zoom<12] {
    <Layer name=quot;worldquot; status=quot;onquot; srs=quot;...quot;>             line-color: #f90;
        <StyleName>world</StyleName>                   }
        <Datasource>                                   #world-borders[zoom<10] NAME
            <Parameter name=quot;typequot;>shape</Parameter>   {
            <Parameter name=quot;filequot;>...</Parameter>         text-fill: #333;
        </Datasource>                                  }
    </Layer>
</Map>




                           Cascadenick                     http://code.google.com/p/mapnik-utils/
Tiles
Tiles
Tiles
TileCache




TileCache   http://tilecache.org
Image
WMS
Mapnik   TileCache
Image
 CRS




         TileCache   http://tilecache.org
Image
WMS
                                     TMS
Mapnik   TileCache
                                  900913
Image
                                  (google)
 CRS




         TileCache   http://tilecache.org
Mapstraction Tiles
mapstraction.addTileLayer(quot;http://oakland-1950s.s3.amazonaws.com/{Z}-r{Y}-c{X}.jpgquot;, 80);
New Orleans   http://maps.thinknola.com
EveryBlock   http://everyblock.com
Mobile
Mobline Placemarking
uLocate WHERE
uLocate WHERE
Android Innovations



cab4me
Ambient Location




OmniFocus
UrbanSpoon
API




      Dash   http://dash.net
PocketMaps
PocketMaps
height = 11
width = 8.5
margin = .25
dpi = 144

bbox = (45.482882,-73.619899,45.532687,-73.547801)
zoom = 16

out = quot;montreal_pocketmmap.pdfquot;

pm = pocketMMap(height, width, margin, dpi)
pm.load_provider('OPEN_STREET_MAP')
pm.draw(bbox, zoom)
pm.save(out)




                              ruby: http://github.com/ajturner/pocketmaps
                         python: http://aaronland.info/python/pocketMMap
Geolocation
W3C Geolocation   http://dev.w3.org/geo/api/spec-source.html
navigator.geolocation.getCurrentPosition(function(pos) {
   alert( pos.latitude + quot;, quot; + pos.longitude );
})
interface Geolocation {
   readonly attribute Position lastPosition;

     void getCurrentPosition(in PositionCallback successCallback);

     int watchPosition(in PositionCallback successCallback);

     void clearWatch(in int watchId);
};
PlundrDS
FireEagle   http://fireeagle.com
geotagging pacers
         M   T   W   Th
geotagging pacers
         M    T       W   Th
         1   23   4
geotagging pacers
         M    T       W   Th
         1   23   4
geotagging pacers
         M    T       W   Th
         1   23   4
geotagging pacers
         M    T       W   Th
         1   23   4
BBC Bangladesh Boat
            Journey
Public Geodata
     Repository
Metadata, Statistics,
        Open Data
GeoData Visualization
Thematic Styling
Classification
Styling
Base Data
Comparative Analysis   http://maker.geocommons.com/maps/839
Inspect the Data
Styled KML
GeoWeb




We’re Hiring   Help build the GeoWeb
Asante sana!
  andrew@highearthorbit.com
       highearthorbit.com
      twitter.com/ajturner

More Related Content

Viewers also liked

Waze, the mobile location landscape; avichai bakst
Waze, the mobile  location landscape; avichai bakstWaze, the mobile  location landscape; avichai bakst
Waze, the mobile location landscape; avichai bakstMatthew Robinson
 
How DeepMind Mastered The Game Of Go
How DeepMind Mastered The Game Of GoHow DeepMind Mastered The Game Of Go
How DeepMind Mastered The Game Of GoTim Riser
 
Waze Overview
Waze OverviewWaze Overview
Waze OverviewDee E
 
Data Storage and Processing
Data Storage and ProcessingData Storage and Processing
Data Storage and ProcessingJohn Reiser
 
Image to sketch effect Step by Step Photoshop Tutorial
Image to sketch effect  Step by Step Photoshop Tutorial Image to sketch effect  Step by Step Photoshop Tutorial
Image to sketch effect Step by Step Photoshop Tutorial Web D School
 
New Jersey Land Change Viewer
New Jersey Land Change ViewerNew Jersey Land Change Viewer
New Jersey Land Change ViewerJohn Reiser
 
6th Grade Social Studies Ancient Engineering
6th Grade Social Studies Ancient Engineering 6th Grade Social Studies Ancient Engineering
6th Grade Social Studies Ancient Engineering Aaron Maurer
 
Building a semantic-based decision support system to optimize the energy use ...
Building a semantic-based decision support system to optimize the energy use ...Building a semantic-based decision support system to optimize the energy use ...
Building a semantic-based decision support system to optimize the energy use ...Gonçal Costa Jutglar
 
Linked Data for the Enterprise: Opportunities and Challenges
Linked Data for the Enterprise: Opportunities and ChallengesLinked Data for the Enterprise: Opportunities and Challenges
Linked Data for the Enterprise: Opportunities and ChallengesMarin Dimitrov
 
Happiness short film and Website tv briefs
Happiness short film and Website  tv briefsHappiness short film and Website  tv briefs
Happiness short film and Website tv briefsGraveney School
 
Russian Revolution Part 2
Russian Revolution Part 2Russian Revolution Part 2
Russian Revolution Part 2Joseph Fuertsch
 
Ocean Globe, Ocean Geospatial Appliance
Ocean Globe, Ocean Geospatial ApplianceOcean Globe, Ocean Geospatial Appliance
Ocean Globe, Ocean Geospatial ApplianceHigh Tech Maui
 
Tutorial on photoshop
Tutorial on photoshopTutorial on photoshop
Tutorial on photoshopDiamondLSilva
 
Internet-enabled GIS for Planners
Internet-enabled GIS for PlannersInternet-enabled GIS for Planners
Internet-enabled GIS for PlannersJohn Reiser
 

Viewers also liked (20)

WAZE
WAZE WAZE
WAZE
 
Waze, the mobile location landscape; avichai bakst
Waze, the mobile  location landscape; avichai bakstWaze, the mobile  location landscape; avichai bakst
Waze, the mobile location landscape; avichai bakst
 
How DeepMind Mastered The Game Of Go
How DeepMind Mastered The Game Of GoHow DeepMind Mastered The Game Of Go
How DeepMind Mastered The Game Of Go
 
Waze Overview
Waze OverviewWaze Overview
Waze Overview
 
turkish airlines
turkish airlinesturkish airlines
turkish airlines
 
business model of waze
business model of wazebusiness model of waze
business model of waze
 
Information management
Information managementInformation management
Information management
 
Data Storage and Processing
Data Storage and ProcessingData Storage and Processing
Data Storage and Processing
 
Image to sketch effect Step by Step Photoshop Tutorial
Image to sketch effect  Step by Step Photoshop Tutorial Image to sketch effect  Step by Step Photoshop Tutorial
Image to sketch effect Step by Step Photoshop Tutorial
 
New Jersey Land Change Viewer
New Jersey Land Change ViewerNew Jersey Land Change Viewer
New Jersey Land Change Viewer
 
6th Grade Social Studies Ancient Engineering
6th Grade Social Studies Ancient Engineering 6th Grade Social Studies Ancient Engineering
6th Grade Social Studies Ancient Engineering
 
Great depression 2010
Great depression 2010Great depression 2010
Great depression 2010
 
Building a semantic-based decision support system to optimize the energy use ...
Building a semantic-based decision support system to optimize the energy use ...Building a semantic-based decision support system to optimize the energy use ...
Building a semantic-based decision support system to optimize the energy use ...
 
Linked Data for the Enterprise: Opportunities and Challenges
Linked Data for the Enterprise: Opportunities and ChallengesLinked Data for the Enterprise: Opportunities and Challenges
Linked Data for the Enterprise: Opportunities and Challenges
 
Happiness short film and Website tv briefs
Happiness short film and Website  tv briefsHappiness short film and Website  tv briefs
Happiness short film and Website tv briefs
 
Nioxon to ford 2011
Nioxon to ford 2011Nioxon to ford 2011
Nioxon to ford 2011
 
Russian Revolution Part 2
Russian Revolution Part 2Russian Revolution Part 2
Russian Revolution Part 2
 
Ocean Globe, Ocean Geospatial Appliance
Ocean Globe, Ocean Geospatial ApplianceOcean Globe, Ocean Geospatial Appliance
Ocean Globe, Ocean Geospatial Appliance
 
Tutorial on photoshop
Tutorial on photoshopTutorial on photoshop
Tutorial on photoshop
 
Internet-enabled GIS for Planners
Internet-enabled GIS for PlannersInternet-enabled GIS for Planners
Internet-enabled GIS for Planners
 

Similar to Beyond Google Maps - FOWA 2008 London

Handling Real-time Geostreams
Handling Real-time GeostreamsHandling Real-time Geostreams
Handling Real-time Geostreamsguest35660bc
 
Handling Real-time Geostreams
Handling Real-time GeostreamsHandling Real-time Geostreams
Handling Real-time GeostreamsRaffi Krikorian
 
Illuminated Hacks -- Where 2.0 101 Tutorial
Illuminated Hacks -- Where 2.0 101 TutorialIlluminated Hacks -- Where 2.0 101 Tutorial
Illuminated Hacks -- Where 2.0 101 Tutorialmikel_maron
 
O'Reilly WebCast - Trends And Technologies In Where2.0
O'Reilly WebCast - Trends And Technologies In Where2.0O'Reilly WebCast - Trends And Technologies In Where2.0
O'Reilly WebCast - Trends And Technologies In Where2.0Andrew Turner
 
Leaflet JS (GIS) and Capital MetroRail
Leaflet JS (GIS) and Capital MetroRailLeaflet JS (GIS) and Capital MetroRail
Leaflet JS (GIS) and Capital MetroRailterrafrost2
 
AssetTouchAndTry-20180322
AssetTouchAndTry-20180322AssetTouchAndTry-20180322
AssetTouchAndTry-20180322Takashi Jona
 
Geospatial technologies
Geospatial technologiesGeospatial technologies
Geospatial technologiesHal Seki
 
Searching the Now
Searching the NowSearching the Now
Searching the Nowlucasjosh
 
Edge trends mizuno-template
Edge trends mizuno-templateEdge trends mizuno-template
Edge trends mizuno-templateshintaro mizuno
 
Harbin 哈尔滨 china 中國 power point 2011
Harbin 哈尔滨 china 中國 power point 2011Harbin 哈尔滨 china 中國 power point 2011
Harbin 哈尔滨 china 中國 power point 2011Tim Wilson
 
Shkrubbel for Open Web Camp 3
Shkrubbel for Open Web Camp 3Shkrubbel for Open Web Camp 3
Shkrubbel for Open Web Camp 3kitthod
 

Similar to Beyond Google Maps - FOWA 2008 London (20)

OpenStreetMap (en Zzzinc)
OpenStreetMap (en Zzzinc)OpenStreetMap (en Zzzinc)
OpenStreetMap (en Zzzinc)
 
Maps, mashups and metadata:geospatial standards for access and retrieval
Maps, mashups and metadata:geospatial standards for access and retrievalMaps, mashups and metadata:geospatial standards for access and retrieval
Maps, mashups and metadata:geospatial standards for access and retrieval
 
Handling Real-time Geostreams
Handling Real-time GeostreamsHandling Real-time Geostreams
Handling Real-time Geostreams
 
Handling Real-time Geostreams
Handling Real-time GeostreamsHandling Real-time Geostreams
Handling Real-time Geostreams
 
#rtgeo (Where 2.0 2011)
#rtgeo (Where 2.0 2011)#rtgeo (Where 2.0 2011)
#rtgeo (Where 2.0 2011)
 
Illuminated Hacks -- Where 2.0 101 Tutorial
Illuminated Hacks -- Where 2.0 101 TutorialIlluminated Hacks -- Where 2.0 101 Tutorial
Illuminated Hacks -- Where 2.0 101 Tutorial
 
O'Reilly WebCast - Trends And Technologies In Where2.0
O'Reilly WebCast - Trends And Technologies In Where2.0O'Reilly WebCast - Trends And Technologies In Where2.0
O'Reilly WebCast - Trends And Technologies In Where2.0
 
Where in the world
Where in the worldWhere in the world
Where in the world
 
SPARQL Tutorial
SPARQL TutorialSPARQL Tutorial
SPARQL Tutorial
 
Leaflet JS (GIS) and Capital MetroRail
Leaflet JS (GIS) and Capital MetroRailLeaflet JS (GIS) and Capital MetroRail
Leaflet JS (GIS) and Capital MetroRail
 
AssetTouchAndTry-20180322
AssetTouchAndTry-20180322AssetTouchAndTry-20180322
AssetTouchAndTry-20180322
 
Geospatial technologies
Geospatial technologiesGeospatial technologies
Geospatial technologies
 
Advanced Kml
Advanced KmlAdvanced Kml
Advanced Kml
 
Embedded Metadata working group
Embedded Metadata working groupEmbedded Metadata working group
Embedded Metadata working group
 
Rails Gis Hacks
Rails Gis HacksRails Gis Hacks
Rails Gis Hacks
 
Searching the Now
Searching the NowSearching the Now
Searching the Now
 
Edge trends mizuno-template
Edge trends mizuno-templateEdge trends mizuno-template
Edge trends mizuno-template
 
Harbin 哈尔滨 china 中國 power point 2011
Harbin 哈尔滨 china 中國 power point 2011Harbin 哈尔滨 china 中國 power point 2011
Harbin 哈尔滨 china 中國 power point 2011
 
RESTFul IDEAS
RESTFul IDEASRESTFul IDEAS
RESTFul IDEAS
 
Shkrubbel for Open Web Camp 3
Shkrubbel for Open Web Camp 3Shkrubbel for Open Web Camp 3
Shkrubbel for Open Web Camp 3
 

More from Andrew Turner

GeoDC June 2012 - GeoCommons
GeoDC June 2012 - GeoCommonsGeoDC June 2012 - GeoCommons
GeoDC June 2012 - GeoCommonsAndrew Turner
 
Charlottesville Data bootcamp 2017
Charlottesville Data bootcamp 2017Charlottesville Data bootcamp 2017
Charlottesville Data bootcamp 2017Andrew Turner
 
State of the Map 2015
State of the Map 2015State of the Map 2015
State of the Map 2015Andrew Turner
 
Crisis Cartography - AAG 2013
Crisis Cartography - AAG 2013Crisis Cartography - AAG 2013
Crisis Cartography - AAG 2013Andrew Turner
 
OpenGovHub - Mapping Social Infrastructure with Social Media
OpenGovHub - Mapping Social Infrastructure with Social MediaOpenGovHub - Mapping Social Infrastructure with Social Media
OpenGovHub - Mapping Social Infrastructure with Social MediaAndrew Turner
 
OK festival Lightning Talk - Collaborative Open Geospatial Data
OK festival Lightning Talk - Collaborative Open Geospatial DataOK festival Lightning Talk - Collaborative Open Geospatial Data
OK festival Lightning Talk - Collaborative Open Geospatial DataAndrew Turner
 
GeoIQ Stack - Where 2012
GeoIQ Stack - Where 2012GeoIQ Stack - Where 2012
GeoIQ Stack - Where 2012Andrew Turner
 
Geospatial Archiving - Society of American Archivists
Geospatial Archiving - Society of American ArchivistsGeospatial Archiving - Society of American Archivists
Geospatial Archiving - Society of American ArchivistsAndrew Turner
 
Playful Explorations of Public and Personal Data - OSCON Data 2011
Playful Explorations of Public and Personal Data - OSCON Data 2011Playful Explorations of Public and Personal Data - OSCON Data 2011
Playful Explorations of Public and Personal Data - OSCON Data 2011Andrew Turner
 
Conversing around Data with Collaborative Analysis - Where2011
Conversing around Data with Collaborative Analysis - Where2011Conversing around Data with Collaborative Analysis - Where2011
Conversing around Data with Collaborative Analysis - Where2011Andrew Turner
 
tech tools for global collaboration 4 good
tech tools for global collaboration 4 goodtech tools for global collaboration 4 good
tech tools for global collaboration 4 goodAndrew Turner
 
Where2.0 That Matters
Where2.0 That MattersWhere2.0 That Matters
Where2.0 That MattersAndrew Turner
 
Humanitarian Mapping - Interaction ICCC
Humanitarian Mapping - Interaction ICCCHumanitarian Mapping - Interaction ICCC
Humanitarian Mapping - Interaction ICCCAndrew Turner
 
Open Access to Multi-Domain Collaborative Geospatial Analysis - AGU 2009
Open Access to Multi-Domain Collaborative Geospatial Analysis - AGU 2009Open Access to Multi-Domain Collaborative Geospatial Analysis - AGU 2009
Open Access to Multi-Domain Collaborative Geospatial Analysis - AGU 2009Andrew Turner
 
Crisis Mapping Lightning Talk Geo Commons
Crisis Mapping Lightning Talk   Geo CommonsCrisis Mapping Lightning Talk   Geo Commons
Crisis Mapping Lightning Talk Geo CommonsAndrew Turner
 
How Neogeography Killed GIS
How Neogeography Killed GISHow Neogeography Killed GIS
How Neogeography Killed GISAndrew Turner
 
Where2.0+Gov2.0 - Gov2.0 Summit
Where2.0+Gov2.0 - Gov2.0 SummitWhere2.0+Gov2.0 - Gov2.0 Summit
Where2.0+Gov2.0 - Gov2.0 SummitAndrew Turner
 
Library of Congress - Neogeography and Geospatial data preservation
Library of Congress - Neogeography and Geospatial data preservationLibrary of Congress - Neogeography and Geospatial data preservation
Library of Congress - Neogeography and Geospatial data preservationAndrew Turner
 
GeoCommons Open-Source GeoCoder
GeoCommons Open-Source GeoCoderGeoCommons Open-Source GeoCoder
GeoCommons Open-Source GeoCoderAndrew Turner
 
Geospatial Analysis in the Cloud
Geospatial Analysis in the CloudGeospatial Analysis in the Cloud
Geospatial Analysis in the CloudAndrew Turner
 

More from Andrew Turner (20)

GeoDC June 2012 - GeoCommons
GeoDC June 2012 - GeoCommonsGeoDC June 2012 - GeoCommons
GeoDC June 2012 - GeoCommons
 
Charlottesville Data bootcamp 2017
Charlottesville Data bootcamp 2017Charlottesville Data bootcamp 2017
Charlottesville Data bootcamp 2017
 
State of the Map 2015
State of the Map 2015State of the Map 2015
State of the Map 2015
 
Crisis Cartography - AAG 2013
Crisis Cartography - AAG 2013Crisis Cartography - AAG 2013
Crisis Cartography - AAG 2013
 
OpenGovHub - Mapping Social Infrastructure with Social Media
OpenGovHub - Mapping Social Infrastructure with Social MediaOpenGovHub - Mapping Social Infrastructure with Social Media
OpenGovHub - Mapping Social Infrastructure with Social Media
 
OK festival Lightning Talk - Collaborative Open Geospatial Data
OK festival Lightning Talk - Collaborative Open Geospatial DataOK festival Lightning Talk - Collaborative Open Geospatial Data
OK festival Lightning Talk - Collaborative Open Geospatial Data
 
GeoIQ Stack - Where 2012
GeoIQ Stack - Where 2012GeoIQ Stack - Where 2012
GeoIQ Stack - Where 2012
 
Geospatial Archiving - Society of American Archivists
Geospatial Archiving - Society of American ArchivistsGeospatial Archiving - Society of American Archivists
Geospatial Archiving - Society of American Archivists
 
Playful Explorations of Public and Personal Data - OSCON Data 2011
Playful Explorations of Public and Personal Data - OSCON Data 2011Playful Explorations of Public and Personal Data - OSCON Data 2011
Playful Explorations of Public and Personal Data - OSCON Data 2011
 
Conversing around Data with Collaborative Analysis - Where2011
Conversing around Data with Collaborative Analysis - Where2011Conversing around Data with Collaborative Analysis - Where2011
Conversing around Data with Collaborative Analysis - Where2011
 
tech tools for global collaboration 4 good
tech tools for global collaboration 4 goodtech tools for global collaboration 4 good
tech tools for global collaboration 4 good
 
Where2.0 That Matters
Where2.0 That MattersWhere2.0 That Matters
Where2.0 That Matters
 
Humanitarian Mapping - Interaction ICCC
Humanitarian Mapping - Interaction ICCCHumanitarian Mapping - Interaction ICCC
Humanitarian Mapping - Interaction ICCC
 
Open Access to Multi-Domain Collaborative Geospatial Analysis - AGU 2009
Open Access to Multi-Domain Collaborative Geospatial Analysis - AGU 2009Open Access to Multi-Domain Collaborative Geospatial Analysis - AGU 2009
Open Access to Multi-Domain Collaborative Geospatial Analysis - AGU 2009
 
Crisis Mapping Lightning Talk Geo Commons
Crisis Mapping Lightning Talk   Geo CommonsCrisis Mapping Lightning Talk   Geo Commons
Crisis Mapping Lightning Talk Geo Commons
 
How Neogeography Killed GIS
How Neogeography Killed GISHow Neogeography Killed GIS
How Neogeography Killed GIS
 
Where2.0+Gov2.0 - Gov2.0 Summit
Where2.0+Gov2.0 - Gov2.0 SummitWhere2.0+Gov2.0 - Gov2.0 Summit
Where2.0+Gov2.0 - Gov2.0 Summit
 
Library of Congress - Neogeography and Geospatial data preservation
Library of Congress - Neogeography and Geospatial data preservationLibrary of Congress - Neogeography and Geospatial data preservation
Library of Congress - Neogeography and Geospatial data preservation
 
GeoCommons Open-Source GeoCoder
GeoCommons Open-Source GeoCoderGeoCommons Open-Source GeoCoder
GeoCommons Open-Source GeoCoder
 
Geospatial Analysis in the Cloud
Geospatial Analysis in the CloudGeospatial Analysis in the Cloud
Geospatial Analysis in the Cloud
 

Recently uploaded

Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 

Recently uploaded (20)

Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 

Beyond Google Maps - FOWA 2008 London

  • 1. Beyond GoogleMaps Andrew Turner, Mapufacture & FortiusOne
  • 4. A Brief History of Mapping * *IANAH
  • 6. Emphemeral Maps http://maps.google.com
  • 11. 1492 - Columbus sails the ocean blue
  • 13. So geographers, in Afric maps, With savage pictures fill their gaps, And o’er unhabitable downs Place elephants for want of towns. - Jonathan Swift
  • 18. GIS
  • 20. 2005 - Google slips the map
  • 21. urban renewal participatory web 2005 - Google slips the map mobile computing GPS becomes ubiquitous
  • 22. HousingMaps http://housingmaps.com
  • 23. Slippy Maps & Spinny Globes
  • 24.
  • 25. GoogleMaps http://maps.google.com
  • 26. Interactivity http://maps.google.com
  • 30. http://maps.google.com/maps?f=q&hl=en&geocode=&q=Cape+Town&ie=UTF8&ll=-33.938803,18.486214&spn=0.182293,0.331306&z=12 Data Coverage and Quality http://openstreetmap.org/?lat=-33.9377&lon=18.4745&zoom=12&layers=B000FTF
  • 37. Where Next? http://flickr.com/photos/loupiote/25426957
  • 39. id name rating lat lon 10045 Vibe Bar 4.3 52.81 0.295 10046 Half Moon 3.8 53.432 0.312 Pub 10047 Windmill 2.6 50.982 0.256 10048 Marquess 1.7 51.023 1.24 oAnglesey Grange 10049 4.5 52.110 0.4562 Pub Coopers 10050 3.5 50.862 0.821 Arms Old 10051 3.2 52.591 0.312 Queens Oxo 10052 1.3 51.93 -0.351 Head Tower 10053 Riverside 3.9 52.18 0.62
  • 40. id name rating lat lon 10045 Vibe Bar 4.3 52.81 0.295 10046 Half Moon 3.8 53.432 0.312 Pub 10047 Windmill 2.6 50.982 0.256 10048 Marquess 1.7 51.023 1.24 oAnglesey Grange 10049 4.5 52.110 0.4562 Pub Coopers 10050 3.5 50.862 0.821 Arms Old 10051 3.2 52.591 0.312 Queens Oxo 10052 1.3 51.93 -0.351 Head Tower 10053 Riverside 3.9 52.18 0.62
  • 41.
  • 42. SELECT name,latitude,longitude, acos(SIN( PI()* 40.7383040 /180 )*SIN( PI()*latitude/180 ) )+(cos(PI()* 40.7383040 /180)*COS( PI()*latitude/180) *COS(PI()*longitude/180-PI()* -73.99319 /180) )* 3963.191 AS distance FROM allcountries WHERE 3963.191 * ACOS( (SIN(PI()* 40.7383040 /180)*SIN(PI() * latitude/180)) + (COS(PI()* 40.7383040 /180)*cos(PI()*latitude/180)*COS(PI() * longitude/180-PI()* -73.99319 /180)) ) < = 1.5 ORDER BY 3963.191 * ACOS( (SIN(PI()* 40.7383040 /180)*SIN(PI()*latitude/180)) + (COS(PI()* 40.7383040 /180)*cos(PI()*latitude/180)*COS(PI() * longitude/180-PI()* -73.99319 /180)) )
  • 43. SELECT the_geom FROM geom_table WHERE ST_Distance(the_geom, GeomFromText('POINT(0.02839 51.50807)', -1)) < 100
  • 44. SELECT the_geom FROM geom_table WHERE the_geom && 'BOX3D(0.02 51,0.03 52)'::box3d AND ST_Distance(the_geom, GeomFromText('POINT(0.02839 51.50807)', -1)) < 100
  • 45. SpatiaLite SQLite + Spatial Types http://www.gaia-gis.it/spatialite/
  • 46. GeoHash http://geohash.org/
  • 47. GeoHash http://geohash.org/
  • 48. GeoHash SELECT name FROM pubs WHERE geohash LIKE quot;GCPUV%quot; http://geohash.org/
  • 49. GeoHash SELECT name FROM pubs WHERE geohash LIKE quot;GCPUVR%quot; OR geohash LIKE quot;GCPVJ2%quot; http://geohash.org/
  • 50. Data
  • 51. GeoNames http://geonames.org
  • 52. GeoNames http://geonames.org
  • 53. Implicit GeoData http://geocodr.net
  • 54. Implicit GeoData http://geocodr.net
  • 55. OpenStreetMap http://openstreetmap.org
  • 56. OpenStreetMap London http://openstreetmap.org
  • 57. Wiki for the World
  • 58. Flickr OSM http://www.flickr.com/map? &fLat=39.9227&fLon=116.4694&zl=6
  • 59. OpenAerialMap http://openaerialmap.org
  • 60. GeoCommons Finder! http://geocommons.com
  • 61. GeoCommons Finder! http://finder.geocommons.com
  • 66. GeoRSS <georss:point> + 45.256 -71.92 </georss:point>
  • 67. GeoRSS <georss:point> + 45.256 -71.92 </georss:point>
  • 68. GeoRSS <georss:point> + 45.256 -71.92 </georss:point>
  • 69. RSS / Atom <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <feed xml:lang=quot;en-USquot; xmlns:dc=quot;http://purl.org/dc/elements/1.1/quot; xml:base=quot;http://grwifi.net/feedquot; xmlns=quot;http://www.w3.org/2005/Atomquot;> <title>Grand Rapids WiFi: News, Updated Hotspot Locations, and Comments</title> <id>http://grwifi.net/atom/locations</id> <link href=quot;http://grwifi.net/feedquot; rel=quot;selfquot; type=quot;application/atom+xmlquot;/> <rights>Creative Commons Attribution-NonCommercial-ShareAlike 2.0 http://creativecommons.org/licenses/by-nc-sa/2.0/ </rights> <updated>2007-03-28T17:31:33+00:00</updated> <entry> <id>http://grwifi.net/location/view/skelletones#comment3862</id> <title>Grand Rapids WiFi: Comment on The Euclid</title> <link href=quot;http://grwifi.net/location/view/skelletones#comment3862quot; rel=quot;alternatequot; type=quot;text/htmlquot;/> <category term=quot;The Euclidquot;/> <author><name>mari</name></author> <content type=quot;xhtmlquot;><p>i know a local band in kalamazoo called rising vacancy. i was wondering how …/p></content> <published>2007-03-28T17:31:33+00:00</published> </entry> <entry> <id>http://grwifi.net/location/view/bk-east-paris#comment3855</id> <title>Grand Rapids WiFi: Comment on Burger King - East Paris</title> <link href=quot;http://grwifi.net/location/view/bk-east-paris#comment3855quot; rel=quot;alternatequot; type=quot;text/htmlquot;/> <category term=quot;Burger King - East Parisquot;/> <author><name>Brandino</name></author> <content type=quot;xhtmlquot;><p>I love burger king </p></content> <published>2007-03-21T16:38:19+00:00</published> </entry> <entry> <id>http://grwifi.net/location/view/common-ground#comment3843</id> <title>Grand Rapids WiFi: Comment on Common Ground Coffee Shop</title> <link href=quot;http://grwifi.net/location/view/common-ground#comment3843quot; rel=quot;alternatequot; type=quot;text/htmlquot;/> <category term=quot;Common Ground Coffee Shopquot;/> <author> <name>Rex Cowan</name> </author> <content type=quot;xhtmlquot;> <div xmlns=quot;http://www.w3.org/1999/xhtmlquot;><p>Common Ground is a welcoming place with a warm atmosphere, the clerk I talked to had …</p></ content> <published>2007-03-17T01:45:59+00:00</published> </entry> </feed>
  • 70. GeoRSS <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <feed xml:lang=quot;en-USquot; xmlns:dc=quot;http://purl.org/dc/elements/1.1/quot; xml:base=quot;http://grwifi.net/feedquot; xmlns:georss=quot;http://www.georss.org/georssquot; xmlns=quot;http:// www.w3.org/2005/Atomquot;> <title>Grand Rapids WiFi: News, Updated Hotspot Locations, and Comments</title> <id>http://grwifi.net/atom/locations</id> <link href=quot;http://grwifi.net/feedquot; rel=quot;selfquot; type=quot;application/atom+xmlquot;/> <rights>Creative Commons Attribution-NonCommercial-ShareAlike 2.0 http://creativecommons.org/licenses/by-nc-sa/2.0/ </rights> <updated>2007-03-28T17:31:33+00:00</updated> <entry> <id>http://grwifi.net/location/view/skelletones#comment3862</id> <title>Grand Rapids WiFi: Comment on The Euclid</title> <link href=quot;http://grwifi.net/location/view/skelletones#comment3862quot; rel=quot;alternatequot; type=quot;text/htmlquot;/> <category term=quot;The Euclidquot;/> <author><name>mari</name></author> <georss:point>42.960126 -85.667997</georss:point> <content type=quot;xhtmlquot;><p>i know a local band in kalamazoo called rising vacancy. i was wondering how …/p></content> <published>2007-03-28T17:31:33+00:00</published> </entry> <entry> <id>http://grwifi.net/location/view/bk-east-paris#comment3855</id> <title>Grand Rapids WiFi: Comment on Burger King - East Paris</title> <link href=quot;http://grwifi.net/location/view/bk-east-paris#comment3855quot; rel=quot;alternatequot; type=quot;text/htmlquot;/> <category term=quot;Burger King - East Parisquot;/> <author><name>Brandino</name></author> <georss:point>42.911495 -85.568665</georss:point> <content type=quot;xhtmlquot;><p>I love burger king </p></content> <published>2007-03-21T16:38:19+00:00</published> </entry> <entry> <id>http://grwifi.net/location/view/common-ground#comment3843</id> <title>Grand Rapids WiFi: Comment on Common Ground Coffee Shop</title> <link href=quot;http://grwifi.net/location/view/common-ground#comment3843quot; rel=quot;alternatequot; type=quot;text/htmlquot;/> <category term=quot;Common Ground Coffee Shopquot;/> <author> <name>Rex Cowan</name> </author> <georss:point>42.962927 -85.637179</georss:point> <content type=quot;xhtmlquot;> <div xmlns=quot;http://www.w3.org/1999/xhtmlquot;><p>Common Ground is a welcoming place with a warm atmosphere, the clerk I talked to had …</p></content> <published>2007-03-17T01:45:59+00:00</published> </entry> </feed>
  • 71. GeoNames GeoRSS http://www.geonames.org/rss-to-georss-converter.html
  • 72. KML <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <kml xmlns=quot;http://earth.google.com/kml/2.2quot;> <Placemark> <name>Simple placemark</name> <description>Attached to the ground. Intelligently places itself at the height of the underlying terrain.</description> <Point> <coordinates>-122.0822035425683,37.42228990140251,0</coordinates> </Point> </Placemark> </kml>
  • 73. KML Extended Data <ExtendedData id=quot;roomsquot;> <name>Rooms</name> <value>3</value> </ExtendedData>
  • 74. KML Network Links </NetworkLink> <NetworkLink> <name><![CDATA[Pubs in London]]></name> <Link> <href>http://maker.geocommons.com/maps/839/overlays/1</href> </Link> </NetworkLink>
  • 75. GeoJSON { quot;typequot;: quot;Pointquot;, quot;coordinatesquot;: [100.0, 0.0] }
  • 76. GeoJSON { quot;blogquot;: { quot;postsquot;: [ { quot;typequot;: quot;atom:itemquot;, quot;atom:summaryquot;: quot;post 1quot;, quot;atom:descriptionquot;: quot;i love bloggingquot; }, { quot;typequot;: quot;atom:itemquot;, quot;atom:summaryquot;: quot;post 2 from CAquot;, quot;atom:descriptionquot;: quot;geoblogging in Californiaquot; quot;geometryquot;: { quot;typequot;, quot;Pointquot;, quot;coordinatesquot;: [-120, 40] } }, ], quot;geometryquot;: { quot;typequot;: quot;Polygonquot;, quot;coordinatesquot;: [[[-121, 39], [-119, 39], [-119, 41], [-121, 41], [-121, 39]]] } } }
  • 78. Resources • /places • /places/89 • /places/89.atom • /places/89.kml
  • 79. Web Aligned http://highearthorbit.com/a-proposal-georss-kml
  • 82. Formats HTML : RSS :: KML : GeoRSS
  • 83. Formats HTML : RSS :: KML : GeoRSS Visualization : Syndication
  • 84. Mapufacture http://mapufacture.com
  • 87. Mapstraction API <script src=quot;http://maps.google.com/maps?file=api&v=2&key=YOUR_KEYquot; type=quot;text/javascriptquot;> </script> <script type=quot;text/javascriptquot; src=quot;mapstraction.jsquot;></script> <div id=quot;mapstractionquot; style=quot;width: 400px; height: 400px;quot;></div> <script type=quot;text/javascriptquot;> var mapstraction = new Mapstraction('mapstraction','google'); var myPoint = new LatLonPoint(37.4041, -122.0081); mapstraction.setCenterAndZoom(myPoint, 10); mapstraction.addControls({ pan: true, zoom: 'small', map_type: true }); </script>
  • 88. Power of the Swap var mapstraction = new Mapstraction(‘map’, ‘google’);
  • 89. Power of the Swap mapstraction.swap(‘mapstraction’, ‘yahoo’);
  • 90. Power of the Swap mapstraction.swap(‘mapstraction’, ‘microsoft’);
  • 91. Power of the Swap mapstraction.swap(‘mapstraction’, ‘openstreetmap’);
  • 94. Filters mapstraction.removeAllFilters(); mapstraction.addFilter('category', 'eq', 10 ); mapstraction.doFilter(); mapstraction.toggleFilter('category', 'eq', 10 );
  • 96. OpenLayers http://openlayers.org
  • 97. map = new OpenLayers.Map(quot;mapquot;, { maxResolution: 360/512, projection: quot;EPSG:4326quot; , numZoomLevels: 20, minZoomLevel: 0, maxZoomLevel: 19, controls: [ new OpenLayers.Control.Navigation(), new OpenLayers.Control.PanPanel(), new OpenLayers.Control.ZoomPanel() ] }); var wms = new OpenLayers.Layer.WMS( quot;worldquot;, quot;/cgi-bin/tilecache/tilecache.cgi?quot;, {layers: 'world'} ); map.addLayers([wms]); map.setCenter(new OpenLayers.LonLat(0, 32), 7);
  • 98. map = new OpenLayers.Map(quot;mapquot;, { maxResolution: 360/512, projection: quot;EPSG:4326quot; , numZoomLevels: 20, minZoomLevel: 0, maxZoomLevel: 19, controls: [ new OpenLayers.Control.Navigation(), new OpenLayers.Control.PanPanel(), new OpenLayers.Control.ZoomPanel() ] }); var wms = new OpenLayers.Layer.WMS( quot;worldquot;, quot;/cgi-bin/tilecache/tilecache.cgi?quot;, {layers: 'world'} ); map.addLayers([wms]); map.setCenter(new OpenLayers.LonLat(0, 32), 7);
  • 99. <link rel=quot;stylesheetquot; href=quot;../themes/gray.cssquot; type=quot;text/cssquot; media=quot;screenquot; /> <div id=quot;mapquot; class=quot;gray smallmapquot;></div>
  • 100. <link rel=quot;stylesheetquot; href=quot;../themes/gray.cssquot; type=quot;text/cssquot; media=quot;screenquot; /> <div id=quot;mapquot; class=quot;gray smallmapquot;></div> div.gray .olControlZoomPanel { top: 14px; left: 14px; } div.gray .olControlZoomPanel div { background-image: url(img/gray/gray_zoom_horiz.png); height: 18px; width: 18px; } div.gray .olControlZoomPanel .olControlZoomInItemInactive { top: 0px; left: 25px; background-position: 18px 0px; } div.gray .olControlZoomPanel .olControlZoomToMaxExtentItemInactive { top: 0px; left: 0px; background-position: 0px -18px; } div.gray .olControlZoomPanel .olControlZoomOutItemInactive { top: 0px; left: 0px; background-position: 0px 0px; }
  • 101. <link rel=quot;stylesheetquot; href=quot;../themes/gray.cssquot; type=quot;text/cssquot; media=quot;screenquot; /> <div id=quot;mapquot; class=quot;gray smallmapquot;></div> div.gray .olControlZoomPanel { top: 14px; left: 14px; } div.gray .olControlZoomPanel div { background-image: url(img/gray/gray_zoom_horiz.png); height: 18px; width: 18px; } div.gray .olControlZoomPanel .olControlZoomInItemInactive { top: 0px; left: 25px; background-position: 18px 0px; } div.gray .olControlZoomPanel .olControlZoomToMaxExtentItemInactive { top: 0px; left: 0px; background-position: 0px -18px; } div.gray .olControlZoomPanel .olControlZoomOutItemInactive { top: 0px; left: 0px; background-position: 0px 0px; }
  • 102. <link rel=quot;stylesheetquot; href=quot;../themes/hearts.cssquot; type=quot;text/cssquot; media=quot;screenquot; /> <div id=quot;mapquot; class=quot;hearts smallmapquot;></div>
  • 103. <link rel=quot;stylesheetquot; href=quot;../themes/hearts.cssquot; type=quot;text/cssquot; media=quot;screenquot; /> <div id=quot;mapquot; class=quot;hearts smallmapquot;></div> .hearts .olControlZoomPanel div { background-image: url(img/hearts/hearts-zoom.png); } .hearts .olControlPanPanel div { background-image: url(img/hearts/hearts-panel.png); }
  • 104. <link rel=quot;stylesheetquot; href=quot;../themes/hearts.cssquot; type=quot;text/cssquot; media=quot;screenquot; /> <div id=quot;mapquot; class=quot;hearts smallmapquot;></div> .hearts .olControlZoomPanel div { background-image: url(img/hearts/hearts-zoom.png); } .hearts .olControlPanPanel div { background-image: url(img/hearts/hearts-panel.png); }
  • 106.
  • 107.
  • 108.
  • 110. package { public class ModestMapsSample extends Sprite { private var map:Map; public function ModestMapsSample() { map = new TweenMap(stage.stageWidth - 2 * PADDING, stage.stageHeight - 2 * PADDING, true, new MicrosoftRoadMapProvider(), new MapExtent(37.829853, 37.700121, -122.212601, -122.514725)); map.addChild(new MapControls(map)); map.addChild(new ZoomSlider(map)); addChild(map); } } }
  • 111. London2012 http://london2012.co.uk
  • 112. Hurricane Tracking http://hurricanewiki.org
  • 114. WalkScore http://walkscore.com
  • 115. MySociety House Price http://www.mysociety.org/2007/more-travel-maps/ vs. Travel Time
  • 116. pgRouting http://pgrouting.postlbs.org/
  • 117. Safe Routing http://www.ridethecity.com
  • 123.
  • 124. BurningManEarth http://earth.burningman.org
  • 125. Maps for Farmers http://serveyourcountryfood.com
  • 126. Mapnik
  • 127. <?xml version=quot;1.0quot; encoding=quot;utf-8quot;?> <!DOCTYPE Map> <Map bgcolor=quot;#b5d0d0quot; srs=quot;+proj=latlong +datum=WGS84quot;> <Style name=quot;worldquot;> <Rule> <MaxScaleDenominator>250000000000</MaxScaleDenominator> <MinScaleDenominator>6000000</MinScaleDenominator> <PolygonSymbolizer> <CssParameter name=quot;fillquot;>#f2efe9</CssParameter> </PolygonSymbolizer> <LineSymbolizer> <CssParameter name=quot;strokequot;>#b5d0d0</CssParameter> <CssParameter name=quot;stroke-widthquot;>0.5</CssParameter> </LineSymbolizer> </Rule> </Style> <Layer name=quot;worldquot; status=quot;onquot; srs=quot;+proj=latlong +datum=WGS84quot;> <StyleName>world</StyleName> <Datasource> <Parameter name=quot;typequot;>shape</Parameter> <Parameter name=quot;filequot;>/Users/ajturner/Projects/mapnik/world_borders</Parameter> </Datasource> </Layer> </Map> Mapnik http://mapnik.com
  • 128. OpenCycleMap http://opencyclemap.org
  • 129. OpenCycleMap http://opencyclemap.org
  • 131. example.mml example.mss <?xml version=quot;1.0quot; encoding=quot;utf-8quot;?> * { <!DOCTYPE Map> line-width: 1; <Map bgcolor=quot;#b5d0d0quot; srs=quot;...quot;> line-color: #999; <Stylesheet> polygon-fill: #fff; Map { map-bgcolor: #ccc; } } </Stylesheet> <Stylesheet src=quot;example.mssquot;/> *[zoom>=6][zoom<12] { <Layer name=quot;worldquot; status=quot;onquot; srs=quot;...quot;> line-color: #f90; <StyleName>world</StyleName> } <Datasource> #world-borders[zoom<10] NAME <Parameter name=quot;typequot;>shape</Parameter> { <Parameter name=quot;filequot;>...</Parameter> text-fill: #333; </Datasource> } </Layer> </Map> Cascadenick http://code.google.com/p/mapnik-utils/
  • 132. Tiles
  • 133. Tiles
  • 134. Tiles
  • 135. TileCache TileCache http://tilecache.org
  • 136. Image WMS Mapnik TileCache Image CRS TileCache http://tilecache.org
  • 137. Image WMS TMS Mapnik TileCache 900913 Image (google) CRS TileCache http://tilecache.org
  • 139. New Orleans http://maps.thinknola.com
  • 140. EveryBlock http://everyblock.com
  • 141. Mobile
  • 148. API Dash http://dash.net
  • 150. PocketMaps height = 11 width = 8.5 margin = .25 dpi = 144 bbox = (45.482882,-73.619899,45.532687,-73.547801) zoom = 16 out = quot;montreal_pocketmmap.pdfquot; pm = pocketMMap(height, width, margin, dpi) pm.load_provider('OPEN_STREET_MAP') pm.draw(bbox, zoom) pm.save(out) ruby: http://github.com/ajturner/pocketmaps python: http://aaronland.info/python/pocketMMap
  • 152. W3C Geolocation http://dev.w3.org/geo/api/spec-source.html
  • 153. navigator.geolocation.getCurrentPosition(function(pos) { alert( pos.latitude + quot;, quot; + pos.longitude ); })
  • 154. interface Geolocation { readonly attribute Position lastPosition; void getCurrentPosition(in PositionCallback successCallback); int watchPosition(in PositionCallback successCallback); void clearWatch(in int watchId); };
  • 155.
  • 157.
  • 158. FireEagle http://fireeagle.com
  • 159. geotagging pacers M T W Th
  • 160. geotagging pacers M T W Th 1 23 4
  • 161. geotagging pacers M T W Th 1 23 4
  • 162. geotagging pacers M T W Th 1 23 4
  • 163. geotagging pacers M T W Th 1 23 4
  • 165.
  • 166. Public Geodata Repository
  • 167. Metadata, Statistics, Open Data
  • 173. Comparative Analysis http://maker.geocommons.com/maps/839
  • 176. GeoWeb We’re Hiring Help build the GeoWeb
  • 177. Asante sana! andrew@highearthorbit.com highearthorbit.com twitter.com/ajturner