SlideShare a Scribd company logo
1 of 67
Download to read offline
Yahoo Geo
Technologies               Things you might not know about.




   Chris&an Heilmann, Tech Talk ‐ Sunnyvale, Ca,  8/4/2010
Geolocation is the
new thing.
It is also big
business.
Yahoo has amazing
geo technology
products.
And they work
localised to outside
the US.
Problem is that geo
is hard-core Math.
There are a few
different ingredients
to playing with geo
location.
Finding the current location.
Finding the current location.
Turning a location into a
place.
Finding the current location.
Turning a location into a
place.
Finding a geographical
hierarchy.
Finding the current location.
Turning a location into a
place.
Finding a geographical
hierarchy.
Geo-tagging information.
Finding the current location.
Turning a location into a
place.
Finding a geographical
hierarchy.
Geo-tagging information.
Displaying geo information.
Finding the current location.

                                Finding the current
                                location happens in
                                different ways.
Finding the current location.



                  sniffing.
                  The creepy way - IP
Finding the current location.
Finding the current location.




                                h=p://isithackday.com/hacks/geo/js‐loca&on.html
Finding the current location.

                                The problem with IP
                                sniffing is accuracy.
Finding the current location.

                                The other problem:
                                it is not reliable.
Finding the current location.

                                The non-creepy and
                                more accurate way -
                                the W3C
                                geolocation API.
Finding the current location.




                                Firefox/(Mobile) Safari/Chrome (dev build)
Finding the current location.

                                Another way is of
                                course to get
                                location
                                information from
                                the user’s social
                                presence.
Finding the current location.

                                Plazes, FireEagle,
                                Twitter, Yahoo,
                                Flickr, Foursquare,
                                Gowalla, Brightkite,
                                Google Buzz/
                                Latitude, Dopplr...
Problem: none of
this works in YAP
applications.
Problem: none of
this works in YAP
applications.
Turning a location into a place.

                                   Having a latitude
                                   and longitude is
                                   fine and dandy but
                                   it is ambiguous.
Turning a location into a place.

                                   The same lat/lon
                                   pair could be a lot
                                   of things - the
                                   centre of a town, a
                                   point of interest...
Turning a location into a place.

                                   This is why we need
                                   to turn lat/lon into
                                   something that is
                                   human readable.
Turning a location into a place.

                                   This is called
                                   reverse geocoding
                                   and there are a few
                                   services for it out
                                   there.
Turning a location into a place.

                                   My personal
                                   favourite (as it
                                   works world-wide)
                                   is the Flickr reverse
                                   geocoder.
Turning a location into a place.




                                   h=p://www.flickr.com/services/api/flickr.places.findByLatLon.html
Turning a location into a place.

                                   You can use this
                                   using YQL:
                                   select * from flickr.places where
                                   lat=51.5142271 and lon=‐0.1289602
Turning a location into a place.

                                   To get more in-
                                   depth data, use
                                   flickr and Yahoo
                                   Geo:
                                   select * from geo.places where woeid in (
                                     select place.woeid from flickr.places 
                                     where lat=51.5142271 and lon=‐0.1289602
                                   )
Turning a location into a place.
Turning a location into a place.
Turning a location into a place.

                         Whoa!!!

               WOEID
Finding a geographical hierarchy.

                                    What’s around a
                                    certain location?




                                        h=p://developer.yahoo.com/geo/
Turning a location into a place.

                                   GeoPlanet gives
                                   you hierarchies:

                                   Parent, Ancestors, Children,
                                   Siblings, Neigbours,
                                   BelongTos.
Finding a geographical hierarchy.




                                    h=p://isithackday.com/geoplanet‐explorer/?woeid=615702
Finding a geographical hierarchy.




                                    h=p://isithackday.com/geoplanet‐explorer/geodrilldown.php
Finding a geographical hierarchy.
Finding the current location.

                                Putting it all
                                together, we can
                                get this:



                                 h=p://isithackday.com/hacks/geo/geotest.php
What if you have no
                           location but only a
Geo-tagging information.




                           resource?
Geo-tagging information.




                           h=p://developer.yahoo.com/geo/placemaker/
Placemaker takes a
                           text, or a web URL
Geo-tagging information.




                           and extracts the
                           geographical
                           information from it.
select * from 
Geo-tagging information.



                           geo.placemaker where 
                           documentContent = "Hey I 
                           am in Atlanta! I came here 
                           from London and will 
                           travel onwards to Las 
                           Vegas and Sao Paulo" and 
                           documentType="text/
                           plain"
select * from geo.placemaker where 
Geo-tagging information.


                           documentURL =
                           "h=p://icant.co.uk" and documentType="text/
                           html" and appid=""

                           select * from geo.placemaker where 
                           documentURL =
                           "h=p://newsrss.bbc.co.uk/rss/
                           newsonline_uk_edi&on/front_page/rss.xml"
                           and documentType="text/rss" and appid=""
Placemaker returns
                           places and
Geo-tagging information.




                           references - you can
                           use these to
                           enhance texts with
                           geo information.
To see Placemaker
                           in action, check out
Geo-tagging information.




                           the GeoMaker hack.
                            h=p://github.com/codepo8/geomaker
Geo-tagging information.




                           h=p://icant.co.uk/geomaker/
Geo-tagging information.
Geo-tagging information.




                           Geonames ID
                           ISO
                           FIPS
                           INSEE
                           JGDC
                           IATA
                           ICAO
                           WOEID
Geo-tagging information.




Concordance
Geo-tagging information.




                           http://isithackday.com/hacks/geo/geosetta.php
Displaying geo
Displaying geo information.



                              information is done
                              via Map APIs
By far the easiest
Displaying geo information.



                              way to build a very
                              simple map is to
                              use the Google
                              static maps API.
<img src=”h=p://maps.google.com/maps/api/
                              sta&cmap?
Displaying geo information.


                              sensor=false
                              &size=200x200
                              &maptype=roadmap
                              &key=YOUR_MAP_KEY
                              &markers=color:blue|label:1|37.4447,‐122.161
                              &markers=color:blue|label:2|37.3385,‐121.886
                              &markers=color:blue|label:3|37.3716,‐122.038
                              &markers=color:blue|label:4|37.7792,‐122.42” 
                              alt=””>
If you want to use
Displaying geo information.



                              Yahoo Maps with
                              the data returned
                              from the earlier
                              YQL calls here’s the
                              code:
Displaying geo information.
Displaying geo information.
If you want to use
Displaying geo information.



                              any map provider
                              easily without
                              deep-diving into an
                              API, use
                              Mapstraction.
Displaying geo information.




h=p://www.mapstrac&on.com/
Putting it all
                 together...
Summa summarum




                 http://isithackday.com/hacks/geo/yql-geo-library/
And the hacking
continues...



   h=p://delicious.com/tag/geotoys
 Chris&an Heilmann
 h=p://wait‐&ll‐i.com             Cheers
 h=p://developer‐evangelism.com
 h=p://twi=er.com/codepo8   

More Related Content

Similar to Introduction to Geo Technologies

Hacking up location aware apps
Hacking up location aware appsHacking up location aware apps
Hacking up location aware appsAnshu Prateek
 
Locate your hacks - Open Hack 2012 India
Locate your hacks - Open Hack 2012 IndiaLocate your hacks - Open Hack 2012 India
Locate your hacks - Open Hack 2012 Indiathreepointone
 
The Geo-aware Parent
The Geo-aware ParentThe Geo-aware Parent
The Geo-aware ParentMatt Machell
 
Geo-ing Global TeachMeet BETT 2011
Geo-ing Global TeachMeet BETT 2011Geo-ing Global TeachMeet BETT 2011
Geo-ing Global TeachMeet BETT 2011Dom Breadmore
 
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
 
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
 
Drupal mapping modules
Drupal mapping modulesDrupal mapping modules
Drupal mapping modulesPatrick Hayes
 
mDevcon tour 2014 beyondar
mDevcon tour 2014 beyondarmDevcon tour 2014 beyondar
mDevcon tour 2014 beyondarJoan Puig Sanz
 
HTML5勉強会#23_GeoHex
HTML5勉強会#23_GeoHexHTML5勉強会#23_GeoHex
HTML5勉強会#23_GeoHexTadayasu Sasada
 
Geolocation in Drupal
Geolocation in DrupalGeolocation in Drupal
Geolocation in DrupalMediacurrent
 

Similar to Introduction to Geo Technologies (20)

Hacking up location aware apps
Hacking up location aware appsHacking up location aware apps
Hacking up location aware apps
 
Hacking up location aware apps
Hacking up location aware appsHacking up location aware apps
Hacking up location aware apps
 
Hacking location aware apps
Hacking location aware appsHacking location aware apps
Hacking location aware apps
 
Hacking location aware hacks HackU IIT Bombay
Hacking location aware hacks HackU IIT BombayHacking location aware hacks HackU IIT Bombay
Hacking location aware hacks HackU IIT Bombay
 
Locate your hacks
Locate your hacksLocate your hacks
Locate your hacks
 
Locate your hacks
Locate your hacksLocate your hacks
Locate your hacks
 
Locate your hacks - Open Hack 2012 India
Locate your hacks - Open Hack 2012 IndiaLocate your hacks - Open Hack 2012 India
Locate your hacks - Open Hack 2012 India
 
The Geo-aware Parent
The Geo-aware ParentThe Geo-aware Parent
The Geo-aware Parent
 
Geo-ing Global TeachMeet BETT 2011
Geo-ing Global TeachMeet BETT 2011Geo-ing Global TeachMeet BETT 2011
Geo-ing Global TeachMeet BETT 2011
 
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
 
Geobi Project - fossa2010
Geobi Project -  fossa2010Geobi Project -  fossa2010
Geobi Project - fossa2010
 
Zenly - Reverse geocoding
Zenly - Reverse geocodingZenly - Reverse geocoding
Zenly - Reverse geocoding
 
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
 
Users and Geo
Users and GeoUsers and Geo
Users and Geo
 
Pack Your Bags 2012
Pack Your Bags 2012Pack Your Bags 2012
Pack Your Bags 2012
 
Drupal mapping modules
Drupal mapping modulesDrupal mapping modules
Drupal mapping modules
 
M libraries final
M libraries finalM libraries final
M libraries final
 
mDevcon tour 2014 beyondar
mDevcon tour 2014 beyondarmDevcon tour 2014 beyondar
mDevcon tour 2014 beyondar
 
HTML5勉強会#23_GeoHex
HTML5勉強会#23_GeoHexHTML5勉強会#23_GeoHex
HTML5勉強会#23_GeoHex
 
Geolocation in Drupal
Geolocation in DrupalGeolocation in Drupal
Geolocation in Drupal
 

More from Christian Heilmann

Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Christian Heilmann
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilegeChristian Heilmann
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloChristian Heilmann
 
Artificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteChristian Heilmann
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteChristian Heilmann
 
Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandChristian Heilmann
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilegeChristian Heilmann
 
Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerChristian Heilmann
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Christian Heilmann
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?Christian Heilmann
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Christian Heilmann
 
Progressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachProgressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachChristian Heilmann
 
Progressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsProgressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsChristian Heilmann
 
Non-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansChristian Heilmann
 
Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Christian Heilmann
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlChristian Heilmann
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Christian Heilmann
 
The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)Christian Heilmann
 

More from Christian Heilmann (20)

Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019
 
Hinting at a better web
Hinting at a better webHinting at a better web
Hinting at a better web
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC Oslo
 
Artificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynote
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynote
 
Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays Finland
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developer
 
Taking the P out of PWA
Taking the P out of PWATaking the P out of PWA
Taking the P out of PWA
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
Progressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachProgressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReach
 
Progressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsProgressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worlds
 
Non-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humans
 
Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017
 
The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)
 

Introduction to Geo Technologies