SlideShare une entreprise Scribd logo
1  sur  39
Place not Space; Geo without MapsFOWA London, October 2009Gary Gale, Yahoo! Geo Technologies
PLACES, PEOPLE and THINGS atibens on Flickr : http://www.flickr.com/photos/atibens/2616899638/
Knowing where our users are, and the places that are important to them Knowing the geographic context of everything we index, manage and publish Knowing  geographic locations, and the names of places We Connect Places, People and Things
SOME NUMBERS KoenVereeken on Flickr : http://www.flickr.com/photos/koenvereeken/2088902012/
85% of all data stored is unstructured This doubles every 3 months 80% of all data contains a geo reference Source: Gartner Group Mr Faber on Flickr : http://www.flickr.com/photos/mrfaber/247946146/
MINE THAT CONTENT tjblackwell on Flickr : http://www.flickr.com/photos/tjblackwell/3652375290/
Content / URL + = Places & References
http://www.vicchi.org/speaking
UNLOCK PLACEMAKER https://developer.apps.yahoo.com/wsregapp/ bohman on Flickr : http://www.flickr.com/photos/bohman/210977249/
http://wherein.yahooapis.com/v1/document
Placemaker Parameters appid 100% mandatory	 inputLanguage en-US, fr-CA, … outputType XML or RSS documentContent text to geoparse documentTitle optional title documentURL URL to geoparse documentType MIME type of doc autoDisambiguate remove duplicates focusWoeid filter around a WOEID
WOEIDs stevefaeembra on Flickr : http://www.flickr.com/photos/stevefaeembra/3567750853/
Unique Permanent Global Language Neutral London = Londra = Londres = ロンドン United States = États-Unis = StatiUniti = 미국 Ensures that geography can be employed consistently and globally straup on Flickr : http://www.flickr.com/photos/straup/3504862388/
GeoPlanet A Global Location Repository Names + Geometry +Topology WOEIDs for ,[object Object]
 postal codes,  airports
 admin regions, time zones
 telephone code areas
 marketing areas
 points of interest
 colloquial areas
neighbourhoodswoodleywonderworks on Flickr : http://www.flickr.com/photos/wwworks/2222523978/
// POST to Placemaker $ch = curl_init();  define('POSTURL', 'http://wherein.yahooapis.com/v1/document'); define('POSTVARS', 'appid='.	$key.'&documentContent='.urlencode($content). 	'&documentType=text/plain&outputType=xml'.$lang); $ch = curl_init(POSTURL); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, POSTVARS); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   $placemaker = curl_exec($ch); curl_close($ch);
PLACES that_james on Flickr : http://www.flickr.com/photos/that_james/496797309/
<placeDetails> <place> <woeId>44418</woeId> <type>Town</type> <name> <![CDATA[London, England, GB]]> </name> <centroid> <latitude>51.5063</latitude> <longitude>-0.12714</longitude> </centroid> </place> <matchType>0</matchType> <weight>1</weight> <confidence>10</confidence> </placeDetails> One place for WOEID 44418
REFERENCES misterbisson on Flickr : http://www.flickr.com/photos/maisonbisson/117720946/
<reference> <woeIds>44418</woeIds> <start>1079</start> <end>1089</end> <isPlaintextMarker>1</isPlaintextMarker> <text><![CDATA[London, UK]]></text> <type>plaintext</type> <xpath><![CDATA[]]></xpath> </reference> <reference> <woeIds>44418</woeIds> <start>1116</start> <end>1126</end> <isPlaintextMarker>1</isPlaintextMarker> <text><![CDATA[London, UK]]></text> <type>plaintext</type> <xpath><![CDATA[]]></xpath> </reference> Two references for WOEID 44418 Two references for WOEID 44418
// turn into an PHP object and loop over the results $places = simplexml_load_string($placemaker, 	'SimpleXMLElement', 	LIBXML_NOCDATA);     if($places->document->placeDetails){ 		$foundplaces = array(); // create a hashmap of the places found to mix with // the references found foreach($places->document->placeDetails as $p){ 		$wkey = 'woeid'.$p->place->woeId; 		$foundplaces[$wkey]=array( 			'name'=>str_replace(', ZZ','',$p->place->name).'',    		    'type'=>$p->place->type.'',    		    'woeId'=>$p->place->woeId.'',    		    'lat'=>$p->place->centroid->latitude.'',    		    'lon'=>$p->place->centroid->longitude.'’ 		); 	} }
// loop over references and filter out duplicates $refs = $places->document->referenceList->reference; $usedwoeids = array(); foreach($refs as $r){ foreach($r->woeIds as $wi){ if(in_array($wi,$usedwoeids)){ 			continue; 	} else { 		$usedwoeids[] = $wi.''; 	} 	$currentloc = $foundplaces["woeid".$wi]; if($r->text!='' && $currentloc['name']!='' &&  		$currentloc['lat']!='' && $currentloc['lon']!=''){ 		$text = preg_replace('/+/',' ',$r->text); 		$name = addslashes(str_replace(', ZZ’, 			$currentloc['name'])); 		$desc = addslashes($text); 		$lat = $currentloc['lat']; 		$lon = $currentloc['lon']; 		$class = stripslashes($desc)."|$name|$lat|$lon"; 		$placelist.= "<li>". 	} }
select * from flickr.photos.info where photo_id in (select id from flickr.photos.search where woe_id=44418) and license=4;
<placeDetails> <place> <woeId>44418</woeId> <type>Town</type> <name> <![CDATA[London, England, GB]]> </name> <centroid> <latitude>51.5063</latitude> <longitude>-0.12714</longitude> </centroid> </place> <matchType>0</matchType> <weight>1</weight> <confidence>10</confidence> </placeDetails> ragewear on Flickr : http://www.flickr.com/photos/ragewear/3367122893/
http://developer.yahoo.com/yui/
http://developer.yahoo.com/yql/
THE INTERNET IS BROKEN Nesster on Flickr : http://www.flickr.com/photos/nesster/3168425434/
// load the URL, using YQL to filter the HTML // and fix UTF-8 nasties $url = 'http://www.vicchi.org/speaking'; $realurl = 'http://query.yahooapis.com/v1/public/yql’. 				'?q=select%20*%20'. 				'from%20html%20where%20url%20%3D%20%22'. 				urlencode($url).'%22&format=xml'; $ch = curl_init();  curl_setopt($ch, CURLOPT_URL, $realurl);  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  $c = curl_exec($ch);  curl_close($ch); if(strstr($c,'<')){ 	$c = preg_replace("/.*<results>|<results>.*/",'',$c); 	$c = preg_replace("/<xml version=amp;quot;10amp;quot;".                     " encoding=amp;quot;UTF-8amp;quot;>/",'',$c); 	$c = strip_tags($c); 	$c = preg_replace("/[?]+/"," ",$c); }
MINOR ANNOYANCES swooshthesnail on Flickr : http://www.flickr.com/photos/swooshthesnail/3281681399/
50,000 BYTES ASurroca on Flickr : http://www.flickr.com/photos/asurroca/147049402/
X NO JSON

Contenu connexe

Similaire à Place not Space; Geo without Maps

PHP and Rich Internet Applications
PHP and Rich Internet ApplicationsPHP and Rich Internet Applications
PHP and Rich Internet Applications
elliando dias
 
Five things for you - Yahoo developer offers
Five things for you - Yahoo developer offersFive things for you - Yahoo developer offers
Five things for you - Yahoo developer offers
Christian Heilmann
 

Similaire à Place not Space; Geo without Maps (20)

Photostream
PhotostreamPhotostream
Photostream
 
Photostream
PhotostreamPhotostream
Photostream
 
Exploring the Sweet Spot: Geolocation, Health, and Gov-data
Exploring the Sweet Spot: Geolocation, Health, and Gov-data Exploring the Sweet Spot: Geolocation, Health, and Gov-data
Exploring the Sweet Spot: Geolocation, Health, and Gov-data
 
JQuery Basics
JQuery BasicsJQuery Basics
JQuery Basics
 
SFUSGS
SFUSGSSFUSGS
SFUSGS
 
Maintaining your own branch of Drupal core
Maintaining your own branch of Drupal coreMaintaining your own branch of Drupal core
Maintaining your own branch of Drupal core
 
Introduction to jQuery
Introduction to jQueryIntroduction to jQuery
Introduction to jQuery
 
PHP and Rich Internet Applications
PHP and Rich Internet ApplicationsPHP and Rich Internet Applications
PHP and Rich Internet Applications
 
Views notwithstanding
Views notwithstandingViews notwithstanding
Views notwithstanding
 
August 10th, 2009 Pete De Mulle Twitter
August 10th, 2009 Pete De Mulle TwitterAugust 10th, 2009 Pete De Mulle Twitter
August 10th, 2009 Pete De Mulle Twitter
 
FVCP - Facebook , Twitter and Meetup API / Widgets
FVCP - Facebook , Twitter and Meetup API / WidgetsFVCP - Facebook , Twitter and Meetup API / Widgets
FVCP - Facebook , Twitter and Meetup API / Widgets
 
Spyware/Malware FVCP
Spyware/Malware  FVCPSpyware/Malware  FVCP
Spyware/Malware FVCP
 
Web Scraping with PHP
Web Scraping with PHPWeb Scraping with PHP
Web Scraping with PHP
 
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
 
Great Developers Steal
Great Developers StealGreat Developers Steal
Great Developers Steal
 
Drupal Lightning FAPI Jumpstart
Drupal Lightning FAPI JumpstartDrupal Lightning FAPI Jumpstart
Drupal Lightning FAPI Jumpstart
 
Five things for you - Yahoo developer offers
Five things for you - Yahoo developer offersFive things for you - Yahoo developer offers
Five things for you - Yahoo developer offers
 
ESRI Developer Summit 2008 - Microsoft Virtual Earth
ESRI Developer Summit 2008 - Microsoft Virtual EarthESRI Developer Summit 2008 - Microsoft Virtual Earth
ESRI Developer Summit 2008 - Microsoft Virtual Earth
 
Evolution of API With Blogging
Evolution of API With BloggingEvolution of API With Blogging
Evolution of API With Blogging
 
Go OO! - Real-life Design Patterns in PHP 5
Go OO! - Real-life Design Patterns in PHP 5Go OO! - Real-life Design Patterns in PHP 5
Go OO! - Real-life Design Patterns in PHP 5
 

Plus de Gary Gale

Plus de Gary Gale (20)

Turn Left For Coffee
Turn Left For CoffeeTurn Left For Coffee
Turn Left For Coffee
 
A Sense Of Place
A Sense Of PlaceA Sense Of Place
A Sense Of Place
 
The (Geo) (Mobile) (Smart) Web
The (Geo) (Mobile) (Smart) WebThe (Geo) (Mobile) (Smart) Web
The (Geo) (Mobile) (Smart) Web
 
5 Location Trends For 2011
5 Location Trends For 20115 Location Trends For 2011
5 Location Trends For 2011
 
A (Mostly) Complete & (Mostly) Accurate History Of Location (Abridged)
A (Mostly) Complete & (Mostly) Accurate History Of Location (Abridged)A (Mostly) Complete & (Mostly) Accurate History Of Location (Abridged)
A (Mostly) Complete & (Mostly) Accurate History Of Location (Abridged)
 
Of Data Silos, Geo-Babel & Other Geo Malaises
Of Data Silos, Geo-Babel & Other Geo MalaisesOf Data Silos, Geo-Babel & Other Geo Malaises
Of Data Silos, Geo-Babel & Other Geo Malaises
 
Welcome To W3G
Welcome To W3GWelcome To W3G
Welcome To W3G
 
Of Data Silos, Geo-Babel & Other Geo Malaises
Of Data Silos, Geo-Babel & Other Geo MalaisesOf Data Silos, Geo-Babel & Other Geo Malaises
Of Data Silos, Geo-Babel & Other Geo Malaises
 
Welcome To The World Of The Geo-Data Silo
Welcome To The World Of The Geo-Data SiloWelcome To The World Of The Geo-Data Silo
Welcome To The World Of The Geo-Data Silo
 
Hyperlocal or Hype (and Local)?
Hyperlocal or Hype (and Local)?Hyperlocal or Hype (and Local)?
Hyperlocal or Hype (and Local)?
 
Hyperlocal Deities, Pachyderms, the Letter W, the Number 3 and some Geo
Hyperlocal Deities, Pachyderms, the Letter W, the Number 3 and some GeoHyperlocal Deities, Pachyderms, the Letter W, the Number 3 and some Geo
Hyperlocal Deities, Pachyderms, the Letter W, the Number 3 and some Geo
 
Ubiquitous Location, The New Frontier and Hyperlocal Nirvana
Ubiquitous Location, The New Frontier and Hyperlocal NirvanaUbiquitous Location, The New Frontier and Hyperlocal Nirvana
Ubiquitous Location, The New Frontier and Hyperlocal Nirvana
 
Location, LB(M)S, Hype, Stealth Data and Stuff
Location, LB(M)S, Hype, Stealth Data and StuffLocation, LB(M)S, Hype, Stealth Data and Stuff
Location, LB(M)S, Hype, Stealth Data and Stuff
 
Location & Privacy; from OMG! to WTF?
Location & Privacy; from OMG! to WTF?Location & Privacy; from OMG! to WTF?
Location & Privacy; from OMG! to WTF?
 
WhereCamp EU 2010 Keynote
WhereCamp EU 2010 KeynoteWhereCamp EU 2010 Keynote
WhereCamp EU 2010 Keynote
 
WhereCamp EU 2010 Welcome
WhereCamp EU 2010 WelcomeWhereCamp EU 2010 Welcome
WhereCamp EU 2010 Welcome
 
(Almost) Everything You Ever Wanted To Know About Geo (with WOEIDs)
(Almost) Everything You Ever Wanted To Know About Geo (with WOEIDs)(Almost) Everything You Ever Wanted To Know About Geo (with WOEIDs)
(Almost) Everything You Ever Wanted To Know About Geo (with WOEIDs)
 
Location ... It's Moving On
Location ... It's Moving OnLocation ... It's Moving On
Location ... It's Moving On
 
Location & Privacy; from OMG! to WTF?
Location & Privacy; from OMG! to WTF?Location & Privacy; from OMG! to WTF?
Location & Privacy; from OMG! to WTF?
 
Moving LBS Beyond Mobile
Moving LBS Beyond MobileMoving LBS Beyond Mobile
Moving LBS Beyond Mobile
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Dernier (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Place not Space; Geo without Maps

  • 1. Place not Space; Geo without MapsFOWA London, October 2009Gary Gale, Yahoo! Geo Technologies
  • 2. PLACES, PEOPLE and THINGS atibens on Flickr : http://www.flickr.com/photos/atibens/2616899638/
  • 3. Knowing where our users are, and the places that are important to them Knowing the geographic context of everything we index, manage and publish Knowing geographic locations, and the names of places We Connect Places, People and Things
  • 4. SOME NUMBERS KoenVereeken on Flickr : http://www.flickr.com/photos/koenvereeken/2088902012/
  • 5. 85% of all data stored is unstructured This doubles every 3 months 80% of all data contains a geo reference Source: Gartner Group Mr Faber on Flickr : http://www.flickr.com/photos/mrfaber/247946146/
  • 6. MINE THAT CONTENT tjblackwell on Flickr : http://www.flickr.com/photos/tjblackwell/3652375290/
  • 7. Content / URL + = Places & References
  • 9. UNLOCK PLACEMAKER https://developer.apps.yahoo.com/wsregapp/ bohman on Flickr : http://www.flickr.com/photos/bohman/210977249/
  • 11. Placemaker Parameters appid 100% mandatory inputLanguage en-US, fr-CA, … outputType XML or RSS documentContent text to geoparse documentTitle optional title documentURL URL to geoparse documentType MIME type of doc autoDisambiguate remove duplicates focusWoeid filter around a WOEID
  • 12. WOEIDs stevefaeembra on Flickr : http://www.flickr.com/photos/stevefaeembra/3567750853/
  • 13. Unique Permanent Global Language Neutral London = Londra = Londres = ロンドン United States = États-Unis = StatiUniti = 미국 Ensures that geography can be employed consistently and globally straup on Flickr : http://www.flickr.com/photos/straup/3504862388/
  • 14.
  • 15. postal codes, airports
  • 16. admin regions, time zones
  • 19. points of interest
  • 21. neighbourhoodswoodleywonderworks on Flickr : http://www.flickr.com/photos/wwworks/2222523978/
  • 22. // POST to Placemaker $ch = curl_init(); define('POSTURL', 'http://wherein.yahooapis.com/v1/document'); define('POSTVARS', 'appid='. $key.'&documentContent='.urlencode($content). '&documentType=text/plain&outputType=xml'.$lang); $ch = curl_init(POSTURL); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, POSTVARS); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $placemaker = curl_exec($ch); curl_close($ch);
  • 23. PLACES that_james on Flickr : http://www.flickr.com/photos/that_james/496797309/
  • 24. <placeDetails> <place> <woeId>44418</woeId> <type>Town</type> <name> <![CDATA[London, England, GB]]> </name> <centroid> <latitude>51.5063</latitude> <longitude>-0.12714</longitude> </centroid> </place> <matchType>0</matchType> <weight>1</weight> <confidence>10</confidence> </placeDetails> One place for WOEID 44418
  • 25. REFERENCES misterbisson on Flickr : http://www.flickr.com/photos/maisonbisson/117720946/
  • 26. <reference> <woeIds>44418</woeIds> <start>1079</start> <end>1089</end> <isPlaintextMarker>1</isPlaintextMarker> <text><![CDATA[London, UK]]></text> <type>plaintext</type> <xpath><![CDATA[]]></xpath> </reference> <reference> <woeIds>44418</woeIds> <start>1116</start> <end>1126</end> <isPlaintextMarker>1</isPlaintextMarker> <text><![CDATA[London, UK]]></text> <type>plaintext</type> <xpath><![CDATA[]]></xpath> </reference> Two references for WOEID 44418 Two references for WOEID 44418
  • 27. // turn into an PHP object and loop over the results $places = simplexml_load_string($placemaker, 'SimpleXMLElement', LIBXML_NOCDATA); if($places->document->placeDetails){ $foundplaces = array(); // create a hashmap of the places found to mix with // the references found foreach($places->document->placeDetails as $p){ $wkey = 'woeid'.$p->place->woeId; $foundplaces[$wkey]=array( 'name'=>str_replace(', ZZ','',$p->place->name).'', 'type'=>$p->place->type.'', 'woeId'=>$p->place->woeId.'', 'lat'=>$p->place->centroid->latitude.'', 'lon'=>$p->place->centroid->longitude.'’ ); } }
  • 28. // loop over references and filter out duplicates $refs = $places->document->referenceList->reference; $usedwoeids = array(); foreach($refs as $r){ foreach($r->woeIds as $wi){ if(in_array($wi,$usedwoeids)){ continue; } else { $usedwoeids[] = $wi.''; } $currentloc = $foundplaces["woeid".$wi]; if($r->text!='' && $currentloc['name']!='' && $currentloc['lat']!='' && $currentloc['lon']!=''){ $text = preg_replace('/+/',' ',$r->text); $name = addslashes(str_replace(', ZZ’, $currentloc['name'])); $desc = addslashes($text); $lat = $currentloc['lat']; $lon = $currentloc['lon']; $class = stripslashes($desc)."|$name|$lat|$lon"; $placelist.= "<li>". } }
  • 29. select * from flickr.photos.info where photo_id in (select id from flickr.photos.search where woe_id=44418) and license=4;
  • 30. <placeDetails> <place> <woeId>44418</woeId> <type>Town</type> <name> <![CDATA[London, England, GB]]> </name> <centroid> <latitude>51.5063</latitude> <longitude>-0.12714</longitude> </centroid> </place> <matchType>0</matchType> <weight>1</weight> <confidence>10</confidence> </placeDetails> ragewear on Flickr : http://www.flickr.com/photos/ragewear/3367122893/
  • 33.
  • 34.
  • 35. THE INTERNET IS BROKEN Nesster on Flickr : http://www.flickr.com/photos/nesster/3168425434/
  • 36. // load the URL, using YQL to filter the HTML // and fix UTF-8 nasties $url = 'http://www.vicchi.org/speaking'; $realurl = 'http://query.yahooapis.com/v1/public/yql’. '?q=select%20*%20'. 'from%20html%20where%20url%20%3D%20%22'. urlencode($url).'%22&format=xml'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $realurl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $c = curl_exec($ch); curl_close($ch); if(strstr($c,'<')){ $c = preg_replace("/.*<results>|<results>.*/",'',$c); $c = preg_replace("/<xml version=amp;quot;10amp;quot;". " encoding=amp;quot;UTF-8amp;quot;>/",'',$c); $c = strip_tags($c); $c = preg_replace("/[?]+/"," ",$c); }
  • 37. MINOR ANNOYANCES swooshthesnail on Flickr : http://www.flickr.com/photos/swooshthesnail/3281681399/
  • 38. 50,000 BYTES ASurroca on Flickr : http://www.flickr.com/photos/asurroca/147049402/
  • 40. POST NOT GET sludgegulper on Flickr : http://www.flickr.com/photos/sludgeulper/2645478209/
  • 41. WANT TO KNOW MORE? selva on Flickr : http://www.flickr.com/photos/selva/24604141/
  • 46. THANK YOU FOR LISTENING quinn.anya on Flickr : http://www.flickr.com/photos/quinnanya/3118626057/

Notes de l'éditeur

  1. The placeDetails container defines a place – there’s one per place found – it holdsWOEID – the unique identifier for the placetype – the place type name for the placename – the fully qualified name of the placecentroid – the centroid coordinatesmatchType – the type of match (0=text/text & coordinates, 1=coordinates only)weight – relative weight of the place within the documentconfidence – confidence that the document mentions the place
  2. WOEID – list of WOEIDs referencing the placestart & end – index of first and last character in the place reference or -1 if type is XPathisPlaintextMarker – flag indicating if the reference is plain texttext – the actual place referencetype – type of reference – plaintext, Xpath, Xpathwithcountsxpath – xpath of the reference
  3. So now we have the places, their references and their WOEIDs we can easily hook into services which understand WOEIDsSuch as FlickrBecause not only does Flickr love you, it also knows about WOEIDs, as this YQL fragment shows
  4. But what about those services that don’t speak WOEID fluently?Looking back at the place definitions, we have WOEIDs.Well each WOEID has metadata attributes associated with it, such as the centroid of a place with the longitude and latitudeAnd because geo should be technologically agnostic, so must we, so with these coordinates we can use other services, such as Google Earth