Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

of

Beyond Googlemaps - Andrew Turner Slide 1 Beyond Googlemaps - Andrew Turner Slide 2 Beyond Googlemaps - Andrew Turner Slide 3 Beyond Googlemaps - Andrew Turner Slide 4 Beyond Googlemaps - Andrew Turner Slide 5 Beyond Googlemaps - Andrew Turner Slide 6 Beyond Googlemaps - Andrew Turner Slide 7 Beyond Googlemaps - Andrew Turner Slide 8 Beyond Googlemaps - Andrew Turner Slide 9 Beyond Googlemaps - Andrew Turner Slide 10 Beyond Googlemaps - Andrew Turner Slide 11 Beyond Googlemaps - Andrew Turner Slide 12 Beyond Googlemaps - Andrew Turner Slide 13 Beyond Googlemaps - Andrew Turner Slide 14 Beyond Googlemaps - Andrew Turner Slide 15 Beyond Googlemaps - Andrew Turner Slide 16 Beyond Googlemaps - Andrew Turner Slide 17 Beyond Googlemaps - Andrew Turner Slide 18 Beyond Googlemaps - Andrew Turner Slide 19 Beyond Googlemaps - Andrew Turner Slide 20 Beyond Googlemaps - Andrew Turner Slide 21 Beyond Googlemaps - Andrew Turner Slide 22 Beyond Googlemaps - Andrew Turner Slide 23 Beyond Googlemaps - Andrew Turner Slide 24 Beyond Googlemaps - Andrew Turner Slide 25 Beyond Googlemaps - Andrew Turner Slide 26 Beyond Googlemaps - Andrew Turner Slide 27 Beyond Googlemaps - Andrew Turner Slide 28 Beyond Googlemaps - Andrew Turner Slide 29 Beyond Googlemaps - Andrew Turner Slide 30 Beyond Googlemaps - Andrew Turner Slide 31 Beyond Googlemaps - Andrew Turner Slide 32 Beyond Googlemaps - Andrew Turner Slide 33 Beyond Googlemaps - Andrew Turner Slide 34 Beyond Googlemaps - Andrew Turner Slide 35 Beyond Googlemaps - Andrew Turner Slide 36 Beyond Googlemaps - Andrew Turner Slide 37 Beyond Googlemaps - Andrew Turner Slide 38 Beyond Googlemaps - Andrew Turner Slide 39 Beyond Googlemaps - Andrew Turner Slide 40 Beyond Googlemaps - Andrew Turner Slide 41 Beyond Googlemaps - Andrew Turner Slide 42 Beyond Googlemaps - Andrew Turner Slide 43 Beyond Googlemaps - Andrew Turner Slide 44 Beyond Googlemaps - Andrew Turner Slide 45 Beyond Googlemaps - Andrew Turner Slide 46 Beyond Googlemaps - Andrew Turner Slide 47 Beyond Googlemaps - Andrew Turner Slide 48 Beyond Googlemaps - Andrew Turner Slide 49 Beyond Googlemaps - Andrew Turner Slide 50 Beyond Googlemaps - Andrew Turner Slide 51 Beyond Googlemaps - Andrew Turner Slide 52 Beyond Googlemaps - Andrew Turner Slide 53 Beyond Googlemaps - Andrew Turner Slide 54 Beyond Googlemaps - Andrew Turner Slide 55 Beyond Googlemaps - Andrew Turner Slide 56 Beyond Googlemaps - Andrew Turner Slide 57 Beyond Googlemaps - Andrew Turner Slide 58 Beyond Googlemaps - Andrew Turner Slide 59 Beyond Googlemaps - Andrew Turner Slide 60 Beyond Googlemaps - Andrew Turner Slide 61 Beyond Googlemaps - Andrew Turner Slide 62 Beyond Googlemaps - Andrew Turner Slide 63 Beyond Googlemaps - Andrew Turner Slide 64 Beyond Googlemaps - Andrew Turner Slide 65 Beyond Googlemaps - Andrew Turner Slide 66 Beyond Googlemaps - Andrew Turner Slide 67 Beyond Googlemaps - Andrew Turner Slide 68 Beyond Googlemaps - Andrew Turner Slide 69 Beyond Googlemaps - Andrew Turner Slide 70 Beyond Googlemaps - Andrew Turner Slide 71 Beyond Googlemaps - Andrew Turner Slide 72 Beyond Googlemaps - Andrew Turner Slide 73 Beyond Googlemaps - Andrew Turner Slide 74 Beyond Googlemaps - Andrew Turner Slide 75 Beyond Googlemaps - Andrew Turner Slide 76 Beyond Googlemaps - Andrew Turner Slide 77 Beyond Googlemaps - Andrew Turner Slide 78 Beyond Googlemaps - Andrew Turner Slide 79 Beyond Googlemaps - Andrew Turner Slide 80 Beyond Googlemaps - Andrew Turner Slide 81 Beyond Googlemaps - Andrew Turner Slide 82 Beyond Googlemaps - Andrew Turner Slide 83 Beyond Googlemaps - Andrew Turner Slide 84 Beyond Googlemaps - Andrew Turner Slide 85 Beyond Googlemaps - Andrew Turner Slide 86 Beyond Googlemaps - Andrew Turner Slide 87 Beyond Googlemaps - Andrew Turner Slide 88 Beyond Googlemaps - Andrew Turner Slide 89 Beyond Googlemaps - Andrew Turner Slide 90 Beyond Googlemaps - Andrew Turner Slide 91 Beyond Googlemaps - Andrew Turner Slide 92 Beyond Googlemaps - Andrew Turner Slide 93 Beyond Googlemaps - Andrew Turner Slide 94 Beyond Googlemaps - Andrew Turner Slide 95 Beyond Googlemaps - Andrew Turner Slide 96 Beyond Googlemaps - Andrew Turner Slide 97 Beyond Googlemaps - Andrew Turner Slide 98 Beyond Googlemaps - Andrew Turner Slide 99 Beyond Googlemaps - Andrew Turner Slide 100 Beyond Googlemaps - Andrew Turner Slide 101 Beyond Googlemaps - Andrew Turner Slide 102 Beyond Googlemaps - Andrew Turner Slide 103 Beyond Googlemaps - Andrew Turner Slide 104 Beyond Googlemaps - Andrew Turner Slide 105 Beyond Googlemaps - Andrew Turner Slide 106 Beyond Googlemaps - Andrew Turner Slide 107 Beyond Googlemaps - Andrew Turner Slide 108 Beyond Googlemaps - Andrew Turner Slide 109 Beyond Googlemaps - Andrew Turner Slide 110 Beyond Googlemaps - Andrew Turner Slide 111 Beyond Googlemaps - Andrew Turner Slide 112 Beyond Googlemaps - Andrew Turner Slide 113 Beyond Googlemaps - Andrew Turner Slide 114 Beyond Googlemaps - Andrew Turner Slide 115 Beyond Googlemaps - Andrew Turner Slide 116 Beyond Googlemaps - Andrew Turner Slide 117 Beyond Googlemaps - Andrew Turner Slide 118 Beyond Googlemaps - Andrew Turner Slide 119 Beyond Googlemaps - Andrew Turner Slide 120 Beyond Googlemaps - Andrew Turner Slide 121 Beyond Googlemaps - Andrew Turner Slide 122 Beyond Googlemaps - Andrew Turner Slide 123 Beyond Googlemaps - Andrew Turner Slide 124 Beyond Googlemaps - Andrew Turner Slide 125 Beyond Googlemaps - Andrew Turner Slide 126 Beyond Googlemaps - Andrew Turner Slide 127 Beyond Googlemaps - Andrew Turner Slide 128 Beyond Googlemaps - Andrew Turner Slide 129 Beyond Googlemaps - Andrew Turner Slide 130 Beyond Googlemaps - Andrew Turner Slide 131 Beyond Googlemaps - Andrew Turner Slide 132 Beyond Googlemaps - Andrew Turner Slide 133 Beyond Googlemaps - Andrew Turner Slide 134 Beyond Googlemaps - Andrew Turner Slide 135 Beyond Googlemaps - Andrew Turner Slide 136 Beyond Googlemaps - Andrew Turner Slide 137 Beyond Googlemaps - Andrew Turner Slide 138 Beyond Googlemaps - Andrew Turner Slide 139 Beyond Googlemaps - Andrew Turner Slide 140 Beyond Googlemaps - Andrew Turner Slide 141 Beyond Googlemaps - Andrew Turner Slide 142 Beyond Googlemaps - Andrew Turner Slide 143 Beyond Googlemaps - Andrew Turner Slide 144 Beyond Googlemaps - Andrew Turner Slide 145 Beyond Googlemaps - Andrew Turner Slide 146 Beyond Googlemaps - Andrew Turner Slide 147 Beyond Googlemaps - Andrew Turner Slide 148 Beyond Googlemaps - Andrew Turner Slide 149 Beyond Googlemaps - Andrew Turner Slide 150 Beyond Googlemaps - Andrew Turner Slide 151 Beyond Googlemaps - Andrew Turner Slide 152 Beyond Googlemaps - Andrew Turner Slide 153 Beyond Googlemaps - Andrew Turner Slide 154 Beyond Googlemaps - Andrew Turner Slide 155 Beyond Googlemaps - Andrew Turner Slide 156 Beyond Googlemaps - Andrew Turner Slide 157 Beyond Googlemaps - Andrew Turner Slide 158 Beyond Googlemaps - Andrew Turner Slide 159 Beyond Googlemaps - Andrew Turner Slide 160 Beyond Googlemaps - Andrew Turner Slide 161 Beyond Googlemaps - Andrew Turner Slide 162 Beyond Googlemaps - Andrew Turner Slide 163 Beyond Googlemaps - Andrew Turner Slide 164 Beyond Googlemaps - Andrew Turner Slide 165 Beyond Googlemaps - Andrew Turner Slide 166 Beyond Googlemaps - Andrew Turner Slide 167 Beyond Googlemaps - Andrew Turner Slide 168 Beyond Googlemaps - Andrew Turner Slide 169 Beyond Googlemaps - Andrew Turner Slide 170 Beyond Googlemaps - Andrew Turner Slide 171 Beyond Googlemaps - Andrew Turner Slide 172 Beyond Googlemaps - Andrew Turner Slide 173 Beyond Googlemaps - Andrew Turner Slide 174 Beyond Googlemaps - Andrew Turner Slide 175 Beyond Googlemaps - Andrew Turner Slide 176 Beyond Googlemaps - Andrew Turner Slide 177 Beyond Googlemaps - Andrew Turner Slide 178 Beyond Googlemaps - Andrew Turner Slide 179 Beyond Googlemaps - Andrew Turner Slide 180 Beyond Googlemaps - Andrew Turner Slide 181 Beyond Googlemaps - Andrew Turner Slide 182 Beyond Googlemaps - Andrew Turner Slide 183 Beyond Googlemaps - Andrew Turner Slide 184 Beyond Googlemaps - Andrew Turner Slide 185 Beyond Googlemaps - Andrew Turner Slide 186 Beyond Googlemaps - Andrew Turner Slide 187 Beyond Googlemaps - Andrew Turner Slide 188 Beyond Googlemaps - Andrew Turner Slide 189 Beyond Googlemaps - Andrew Turner Slide 190 Beyond Googlemaps - Andrew Turner Slide 191 Beyond Googlemaps - Andrew Turner Slide 192 Beyond Googlemaps - Andrew Turner Slide 193 Beyond Googlemaps - Andrew Turner Slide 194 Beyond Googlemaps - Andrew Turner Slide 195 Beyond Googlemaps - Andrew Turner Slide 196 Beyond Googlemaps - Andrew Turner Slide 197 Beyond Googlemaps - Andrew Turner Slide 198 Beyond Googlemaps - Andrew Turner Slide 199 Beyond Googlemaps - Andrew Turner Slide 200 Beyond Googlemaps - Andrew Turner Slide 201
Upcoming SlideShare
Yet another web app? Or serious business?
Next
Download to read offline and view in fullscreen.

9 Likes

Share

Download to read offline

Beyond Googlemaps - Andrew Turner

Download to read offline

Slides from Andrew Turner's presentation "Beyond Googlemaps" at the Future of Web Apps Expo 2008

Beyond Googlemaps - Andrew Turner

  1. 1. Beyond GoogleMaps Andrew Turner, Mapufacture & FortiusOne
  2. 2. or...
  3. 3. or... Evolved Maps, desconstructed
  4. 4. A Brief History of Mapping * *IANAH
  5. 5. StoryMapping
  6. 6. Emphemeral Maps http://maps.google.com
  7. 7. Meaning
  8. 8. Meaning
  9. 9. Navigation
  10. 10. Compass
  11. 11. 1492 - Columbus sails the ocean blue
  12. 12. Cartographic Renaissance
  13. 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
  14. 14. Ortelius Atlas
  15. 15. Exploration
  16. 16. Travel Guides
  17. 17. Driving Guides
  18. 18. GIS
  19. 19. Internet Maps
  20. 20. 2005 - Google slips the map
  21. 21. urban renewal participatory web 2005 - Google slips the map mobile computing GPS becomes ubiquitous
  22. 22. HousingMaps http://housingmaps.com
  23. 23. Slippy Maps & Spinny Globes
  24. 24. GoogleMaps http://maps.google.com
  25. 25. Interactivity http://maps.google.com
  26. 26. Design
  27. 27. Usability
  28. 28. 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
  29. 29. 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
  30. 30. Brighton, UK
  31. 31. Brighton, UK
  32. 32. Data Ownership and Access
  33. 33. Data Ownership and Access
  34. 34. Technology Limitations
  35. 35. Technology Limitations
  36. 36. Where Next? http://flickr.com/photos/loupiote/25426957
  37. 37. Storage
  38. 38. 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
  39. 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. 40. 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)) )
  41. 41. SELECT the_geom FROM geom_table WHERE ST_Distance(the_geom, GeomFromText('POINT(0.02839 51.50807)', -1)) < 100
  42. 42. 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
  43. 43. SpatiaLite SQLite + Spatial Types http://www.gaia-gis.it/spatialite/
  44. 44. GeoHash http://geohash.org/
  45. 45. GeoHash http://geohash.org/
  46. 46. GeoHash SELECT name FROM pubs WHERE geohash LIKE quot;GCPUV%quot; http://geohash.org/
  47. 47. GeoHash SELECT name FROM pubs WHERE geohash LIKE quot;GCPUVR%quot; OR geohash LIKE quot;GCPVJ2%quot; http://geohash.org/
  48. 48. Data
  49. 49. GeoNames http://geonames.org
  50. 50. GeoNames http://geonames.org
  51. 51. Implicit GeoData http://geocodr.net
  52. 52. Implicit GeoData http://geocodr.net
  53. 53. OpenStreetMap http://openstreetmap.org
  54. 54. OpenStreetMap London http://openstreetmap.org
  55. 55. Wiki for the World
  56. 56. Flickr OSM http://www.flickr.com/map? &fLat=39.9227&fLon=116.4694&zl=6
  57. 57. OpenAerialMap http://openaerialmap.org
  58. 58. GeoCommons Finder! http://geocommons.com
  59. 59. GeoCommons Finder! http://finder.geocommons.com
  60. 60. Mapufacture http://mapufacture.com
  61. 61. Sharing
  62. 62. GeoRSS
  63. 63. GeoRSS
  64. 64. GeoRSS +
  65. 65. GeoRSS <georss:point> + 45.256 -71.92 </georss:point>
  66. 66. GeoRSS <georss:point> + 45.256 -71.92 </georss:point>
  67. 67. GeoRSS <georss:point> + 45.256 -71.92 </georss:point>
  68. 68. 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>
  69. 69. 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>
  70. 70. GeoNames GeoRSS http://www.geonames.org/rss-to-georss-converter.html
  71. 71. 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>
  72. 72. KML Extended Data <ExtendedData id=quot;roomsquot;> <name>Rooms</name> <value>3</value> </ExtendedData>
  73. 73. KML Network Links </NetworkLink> <NetworkLink> <name><![CDATA[Pubs in London]]></name> <Link> <href>http://maker.geocommons.com/maps/839/overlays/1</href> </Link> </NetworkLink>
  74. 74. GeoJSON { quot;typequot;: quot;Pointquot;, quot;coordinatesquot;: [100.0, 0.0] }
  75. 75. 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]]] } } }
  76. 76. GeoWeb
  77. 77. Resources • /places • /places/89 • /places/89.atom • /places/89.kml
  78. 78. Web Aligned http://highearthorbit.com/a-proposal-georss-kml
  79. 79. Formats HTML : RSS
  80. 80. Formats HTML : RSS ::
  81. 81. Formats HTML : RSS :: KML : GeoRSS
  82. 82. Formats HTML : RSS :: KML : GeoRSS Visualization : Syndication
  83. 83. Visualization
  84. 84. Mapstraction
  85. 85. 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>
  86. 86. Power of the Swap var mapstraction = new Mapstraction(‘map’, ‘google’);
  87. 87. Power of the Swap mapstraction.swap(‘mapstraction’, ‘yahoo’);
  88. 88. Power of the Swap mapstraction.swap(‘mapstraction’, ‘microsoft’);
  89. 89. Power of the Swap mapstraction.swap(‘mapstraction’, ‘openstreetmap’);
  90. 90. 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);
  91. 91. Filters mapstraction.removeAllFilters(); mapstraction.addFilter('category', 'eq', 10 ); mapstraction.doFilter();
  92. 92. Filters mapstraction.removeAllFilters(); mapstraction.addFilter('category', 'eq', 10 ); mapstraction.doFilter(); mapstraction.toggleFilter('category', 'eq', 10 );
  93. 93. Sliders
  94. 94. OpenLayers http://openlayers.org
  95. 95. 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);
  96. 96. 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);
  97. 97. <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>
  98. 98. <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; }
  99. 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> 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; }
  100. 100. <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>
  101. 101. <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); }
  102. 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> .hearts .olControlZoomPanel div { background-image: url(img/hearts/hearts-zoom.png); } .hearts .olControlPanPanel div { background-image: url(img/hearts/hearts-panel.png); }
  103. 103. Accessibility
  104. 104. ModestMaps
  105. 105. 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); } } }
  106. 106. London2012 http://london2012.co.uk
  107. 107. Hurricane Tracking http://hurricanewiki.org
  108. 108. Analysis
  109. 109. WalkScore http://walkscore.com
  110. 110. MySociety House Price http://www.mysociety.org/2007/more-travel-maps/ vs. Travel Time
  111. 111. pgRouting http://pgrouting.postlbs.org/
  112. 112. Safe Routing http://www.ridethecity.com
  113. 113. Fuel Efficiency Routing
  114. 114. Bakery Routing
  115. 115. Cartography
  116. 116. NeoCartography
  117. 117. wrp.geothings.net
  118. 118. BurningManEarth http://earth.burningman.org
  119. 119. Maps for Farmers http://serveyourcountryfood.com
  120. 120. Mapnik
  121. 121. <?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
  122. 122. OpenCycleMap http://opencyclemap.org
  123. 123. OpenCycleMap http://opencyclemap.org
  124. 124. Shenzen Maps
  125. 125. 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/
  126. 126. Tiles
  127. 127. Tiles
  128. 128. Tiles
  129. 129. TileCache TileCache http://tilecache.org
  130. 130. Image WMS Mapnik TileCache Image CRS TileCache http://tilecache.org
  131. 131. Image WMS TMS Mapnik TileCache 900913 Image (google) CRS TileCache http://tilecache.org
  132. 132. Mapstraction Tiles mapstraction.addTileLayer(quot;http://oakland-1950s.s3.amazonaws.com/{Z}-r{Y}-c{X}.jpgquot;, 80);
  133. 133. New Orleans http://maps.thinknola.com
  134. 134. EveryBlock http://everyblock.com
  135. 135. Mobile
  136. 136. Mobline Placemarking
  137. 137. uLocate WHERE
  138. 138. uLocate WHERE
  139. 139. Android Innovations cab4me
  140. 140. Ambient Location OmniFocus
  141. 141. UrbanSpoon
  142. 142. API Dash http://dash.net
  143. 143. PocketMaps
  144. 144. 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
  145. 145. Geolocation
  146. 146. W3C Geolocation http://dev.w3.org/geo/api/spec-source.html
  147. 147. navigator.geolocation.getCurrentPosition(function(pos) { alert( pos.latitude + quot;, quot; + pos.longitude ); })
  148. 148. interface Geolocation { readonly attribute Position lastPosition; void getCurrentPosition(in PositionCallback successCallback); int watchPosition(in PositionCallback successCallback); void clearWatch(in int watchId); };
  149. 149. PlundrDS
  150. 150. Crowd Sourced Crisis Information
  151. 151. FireEagle http://fireeagle.com
  152. 152. geotagging pacers M T W Th
  153. 153. geotagging pacers M T W Th 1 23 4
  154. 154. geotagging pacers M T W Th 1 23 4
  155. 155. geotagging pacers M T W Th 1 23 4
  156. 156. geotagging pacers M T W Th 1 23 4
  157. 157. BBC Bangladesh Boat Journey
  158. 158. Nonline
  159. 159. AtomPub
  160. 160. AtomPub atom client http://atompub.org/
  161. 161. AtomPub resource atom client http://atompub.org/
  162. 162. AtomPub resource atom client edit http://atompub.org/
  163. 163. Workspace <service xmlns:atom=quot;http://www.w3.org/2005/atomquot; xmlns=quot;http://www.w3.org/2007/appquot;> <workspace> <atom:title>Main Site</atom:title> <collection href=quot;http://example.com/maps.atomquot;> <atom:title>Example Maps</atom:title> <accept>application/vnd.google-earth.kml+xml</accept> <accept>application/atom+xml</accept> </collection> <collection href=quot;http://example.com/places.atomquot;> <atom:title>Example Places</atom:title> <accept>application/atom+xml</accept> </collection> <collection href=quot;http://example.com/users.atomquot;> <atom:title>Example Users</atom:title> <accept>application/atom+xml</accept> </collection> </workspace> </service>
  164. 164. places.atom <feed xmlns:georss=quot;http://www.georss.org/georssquot; xmlns=quot;http://www.w3.org/2005/Atomquot;> <title>Places</title> <id>http://example.com/places</id> <link type=quot;application/atom+xmlquot; rel=quot;selfquot; href=quot;http://example.com/places.atomquot;/> <link type=quot;application/vnd.google-earth.kml+xmlquot; rel=quot;alternatequot; href=quot;http://example.com/places.kmlquot;/> <link type=quot;text/htmlquot; rel=quot;alternatequot; href=quot;http://example.com/placesquot;/> <updated>2008-03-13T21:30:10Z</updated> ... </feed>
  165. 165. Creating a Resource user@host:/tmp$ curl -i -X POST -H quot;Authorization: Basic YWRtaW46OGZjOGFkZmM=quot; -H quot;Content-Type: application/atom+xml;type=entryquot; -H quot;Slug: 600 N Sherwoodquot; -d@test.atom http://example.com/places
  166. 166. Creating a Resource user@host:/tmp$ curl -i -X POST -H quot;Authorization: Basic YWRtaW46OGZjOGFkZmM=quot; -H quot;Content-Type: application/atom+xml;type=entryquot; -H quot;Slug: 600 N Sherwoodquot; -d@test.atom http://example.com/places HTTP/1.1 201 Created Date: Fri, 14 Mar 2008 04:32:33 GMT Server: Twisted/2.5.0 TwistedWeb/[twisted.web2, version 0.2.0] Content-Length: 744 Accept-Ranges: bytes Location: http://example.com/places/600-n-sherwood Content-Type: application/atom+xml;type=entry
  167. 167. New Resource <?xml version=quot;1.0quot; encoding=quot;utf-8quot;?> <entry xmlns=quot;http://www.w3.org/2005/Atomquot; xmlns:georss=quot;http://www.georss.org/georssquot; xmlns:gml=quot;http://www.opengis.net/gmlquot;> <title>Test</title> <link href=quot;http://example.com/places/600-n-sherwood.atomquot; type=quot;application/atom+xml;type=entryquot; rel=quot;editquot;/> <link href=quot;http://example.com/places/600-n-sherwoodquot; type=quot;text/htmlquot; rel=quot;alternatequot;/> <id>urn:uuid:dfa47428-e9ce-41b4-9f42-c2a3cad9037a</id> <updated>2008-03-14T04:32:33Z</updated> <summary>Testing placemark</summary> <georss:where> <gml:Point> <gml:pos>-105.084251 40.594463</gml:pos> </gml:Point> </georss:where> </entry>
  168. 168. Updating a Resource sean@lenny:/tmp$ curl -i -X PUT -H quot;Authorization: Basic YWRtaW46OGZjOGFkZmM=quot; -H quot;Content-Type: application/atom+xml;type=entryquot; -d@test-edit.atom http://example.com/places/600-n-sherwood.atom
  169. 169. Updating a Resource sean@lenny:/tmp$ curl -i -X PUT -H quot;Authorization: Basic YWRtaW46OGZjOGFkZmM=quot; -H quot;Content-Type: application/atom+xml;type=entryquot; -d@test-edit.atom http://example.com/places/600-n-sherwood.atom HTTP/1.1 200 OK
  170. 170. AtomPub kml client atom atom json
  171. 171. AtomPub resource kml client atom atom json
  172. 172. AtomPub resource kml edit client atom atom json
  173. 173. AtomPub resource kml edit client atom atom json
  174. 174. AtomPub resource kml edit client atom atom json
  175. 175. AtomPub resource kml edit client atom atom json
  176. 176. AtomPub p1 kml p2 atom p{1,2,3,4} aggregator client p3 atom p4 json
  177. 177. AtomPub p1 kml p2 atom p{1,2,3,4} aggregator client p3 edit p1 atom p4 json
  178. 178. AtomPub p1 kml p2 atom p{1,2,3,4} aggregator client p3 edit p1 atom p4 json
  179. 179. Public Geodata Repository
  180. 180. Metadata, Statistics, Open Data
  181. 181. GeoData Visualization
  182. 182. Thematic Styling
  183. 183. Classification
  184. 184. Styling
  185. 185. Base Data
  186. 186. Comparative Analysis http://maker.geocommons.com/maps/839
  187. 187. Inspect the Data
  188. 188. Styled KML
  189. 189. GeoWeb We’re Hiring Help build the GeoWeb
  190. 190. Asante sana! andrew@highearthorbit.com highearthorbit.com twitter.com/ajturner
  • phdbrianlee

    Sep. 3, 2014
  • esteewhy

    Jun. 18, 2010
  • kotsa

    Oct. 2, 2009
  • mprove

    Jul. 1, 2009
  • placevision

    Jun. 22, 2009
  • cornelius

    Mar. 12, 2009
  • manobi

    Jan. 28, 2009
  • CecileS

    Nov. 3, 2008
  • deadentry

    Oct. 23, 2008

Slides from Andrew Turner's presentation "Beyond Googlemaps" at the Future of Web Apps Expo 2008

Views

Total views

8,965

On Slideshare

0

From embeds

0

Number of embeds

321

Actions

Downloads

162

Shares

0

Comments

0

Likes

9

×