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

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

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