WordCampCB<br />Location Based Services<br />
Hash Tags and Whatnot<br />#wccb – WordCamp Columbus<br />#wccb #lbs – LBS Session <br />
Introductions<br />50% of the United States population lives <br />within a 500 mile radius of Columbus.<br />
Who are You and Why are You here?<br />Understanding<br />Ideas or Insights<br />Technologies<br />
Introductions<br />@LukePilon<br />Software Architect<br />WordPress<br />4 Years as a User<br />2 Years Designing Softwar...
Content for Today<br />Orientation – What is a LBS<br />Logic – When to leverage LBS<br />Methods – Access User Location<b...
What the what<br />Location-Based Services refers to a broad range of services that are based on (or enhanced by) informat...
What is a LBS?<br />They are a LBS and you are a LBS<br />Everyone’s a LBS, S, S, S….<br />
Location Based Services	<br />The time and place to use them.<br />
Location is Important<br />What level of location do you actually need before your user starts to see value?<br />Continen...
Use Cases<br />Ad Targeting<br />Digital Rights Management<br />Localizing Content<br />Fraud Prevention<br />
Use Cases and You<br />Providing Specific Deals, Moving Inventory<br />Protecting Your Content Rights / Restrictions<br />...
Food For Thought on LBS<br />20% of all Google Searches Performed on a Desktop Involve Location<br />40% of all Google Sea...
Accessing User Location<br />
Implementations<br />IP Geolocation<br />HTML5<br />
IP Geolocation<br />You have an IP Address & we know geographically where that is.<br />
IP GEO Properties<br />Always On<br />Static in Nature<br />No Permission<br />25-50 Mile Localization <br />
IP GEO LIBRARIESHow it gets done<br />Agreements with ISPs<br />AppSourcing the Crowd<br />Mad Scientists with Mad Bots<br...
IP Geo Libraries<br />Service Providers<br />IP2Location<br />MaxMind<br />Quova, a Neustar Service<br />Libraries in Gene...
Plugins that do IP Geo<br />GeoPosty 4,084 Downloads – 4.25 Stars<br />Quova IP Technology<br />IP2Location Tags – 468 Dow...
Plugin Features<br />Shortcodes<br />Preconfigured Widgets<br />Redirection<br />3rd Party LBS Integrations<br />
Obligatory CODE SLIDE<br /><?php echo do_shortcode('[geocity]');  ?><br />[geolongitude] and [geolatitude]<br />
HTML5 Geolocation<br />Permission based access to users’ location.<br />
HTML5 Background<br />A collection of HTML standards being brought into adoption.<br />Not something that’s going to show ...
HMTL5 Geolocation<br />A singular feature of the HTML5 Standard<br />Off By Default<br />Can be coded as dynamic<br />Perm...
HTML5 Geolocation APIHow it Gets Done<br />Cell Tower Triangulation<br />Device GPS<br />IP Geo Libraries<br />
HTML5 Geolocation API<br />IE – 9.0+<br />Firefox – 3.5+<br />Safari – 5.0+<br />Chrome – 5.0+<br />Opera – 10.6<br />iPho...
Browser Adoption<br />
IE Support #Fail<br />
Firefox Support<br />
A Safe AssumptionBefore the Opt-In<br />1+ out of 2 Users <br />Can Currently Support HTML5 Geolocation<br />
Google Analytics Will Set You Free<br />
Plugins<br />
Obligatory CODE SLIDE<br />function get_location() { navigator.geolocation.getCurrentPosition(show_map); }<br />// Callbac...
Stand and Deliver<br />You, or your client, as an LBS<br />
Best Practices<br />Location, Location, Location with Balance, Balance, Balance<br />Give the User A Logical Exit<br />Don...
Never, Never Never Ever<br />Hello [geocity]! Welcome to my site! <br />#FAIL #FAIL #FAIL #FAIL<br />
Super Simple LBSing.<br />Step 1:  Put Your Content to City Categories<br />Step 2:  Load The User’s Location Into Shortco...
The Basic Geo Loop<br /><?php$city = do_shortcode('[geocity]');$args = array('category_name' => $city);$myCityQuery = new ...
Bonus Material<br />
CODE – Useful Functions<br />// http://snipplr.com/view/2531/calculate-the-distance-between-two-coordinates-latitude-longi...
CODE – Useful Functions<br />// http://www.hashbangcode.com/blog/search-engine-spider-detection-php-258.html<br />function...
Parting Remarks<br />Imagine 2015<br />
Parting Remarks<br />Go do something excellent.<br />
Questions? <br />Luke Pilon<br />luke@mobiah.com<br />@lukepilon<br />
Upcoming SlideShare
Loading in...5
×

WordCamp Columbus - Location Based Integrations

4,096

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
4,096
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

WordCamp Columbus - Location Based Integrations

  1. 1. WordCampCB<br />Location Based Services<br />
  2. 2. Hash Tags and Whatnot<br />#wccb – WordCamp Columbus<br />#wccb #lbs – LBS Session <br />
  3. 3. Introductions<br />50% of the United States population lives <br />within a 500 mile radius of Columbus.<br />
  4. 4. Who are You and Why are You here?<br />Understanding<br />Ideas or Insights<br />Technologies<br />
  5. 5. Introductions<br />@LukePilon<br />Software Architect<br />WordPress<br />4 Years as a User<br />2 Years Designing Software<br />Community Involvement<br />CEO at Mobiah<br />AC/DC, Lolcats, and the 80s Movies<br />Mobiah, Inc<br />Services, Software, Data<br />Acquisition and Loyalty<br />GPL Software<br />Producers of GeoPosty<br />3 Plugins in the .ORG Repository<br />
  6. 6. Content for Today<br />Orientation – What is a LBS<br />Logic – When to leverage LBS<br />Methods – Access User Location<br />Basic Delivery – How to Deliver a Simple LBS Loop<br />
  7. 7. What the what<br />Location-Based Services refers to a broad range of services that are based on (or enhanced by) information about the physical location of a user and/or device.<br />$10 billion in revenue by 2016*<br />http://www.businesswire.com/news/home/20110609006492/en/Strategy-Analytics-Cellphone-Privacy-Concerns-Short-Term-Barrier<br />
  8. 8. What is a LBS?<br />They are a LBS and you are a LBS<br />Everyone’s a LBS, S, S, S….<br />
  9. 9. Location Based Services <br />The time and place to use them.<br />
  10. 10. Location is Important<br />What level of location do you actually need before your user starts to see value?<br />Continent <br />Nation<br />State<br />City<br />Block<br />
  11. 11. Use Cases<br />Ad Targeting<br />Digital Rights Management<br />Localizing Content<br />Fraud Prevention<br />
  12. 12. Use Cases and You<br />Providing Specific Deals, Moving Inventory<br />Protecting Your Content Rights / Restrictions<br />Enriching the User’s Experience <br />Blocking Unauthorized Users<br />
  13. 13. Food For Thought on LBS<br />20% of all Google Searches Performed on a Desktop Involve Location<br />40% of all Google Searches Performed on a Mobile Devices Involve Location<br />
  14. 14. Accessing User Location<br />
  15. 15. Implementations<br />IP Geolocation<br />HTML5<br />
  16. 16. IP Geolocation<br />You have an IP Address & we know geographically where that is.<br />
  17. 17. IP GEO Properties<br />Always On<br />Static in Nature<br />No Permission<br />25-50 Mile Localization <br />
  18. 18. IP GEO LIBRARIESHow it gets done<br />Agreements with ISPs<br />AppSourcing the Crowd<br />Mad Scientists with Mad Bots<br />Wifi Libraries<br />
  19. 19. IP Geo Libraries<br />Service Providers<br />IP2Location<br />MaxMind<br />Quova, a Neustar Service<br />Libraries in General<br />4B IP Addresses<br />~ 20% Actively Changing<br />Accessible via DB, API<br />
  20. 20. Plugins that do IP Geo<br />GeoPosty 4,084 Downloads – 4.25 Stars<br />Quova IP Technology<br />IP2Location Tags – 468 Downloads – 5 Stars<br />IP2Location IP Technology<br />WP Geolocation– 1,120 Downloads – 2.75 Stars<br />MaxMind IP Technology<br />
  21. 21. Plugin Features<br />Shortcodes<br />Preconfigured Widgets<br />Redirection<br />3rd Party LBS Integrations<br />
  22. 22. Obligatory CODE SLIDE<br /><?php echo do_shortcode('[geocity]');  ?><br />[geolongitude] and [geolatitude]<br />
  23. 23. HTML5 Geolocation<br />Permission based access to users’ location.<br />
  24. 24. HTML5 Background<br />A collection of HTML standards being brought into adoption.<br />Not something that’s going to show up all at once, not even on your birthday. #sorry<br />Many features are already in adoption with current browsers.<br />
  25. 25. HMTL5 Geolocation<br />A singular feature of the HTML5 Standard<br />Off By Default<br />Can be coded as dynamic<br />Permission Based, Error handling can be difficult<br />~ 12 Meter Localization <br />
  26. 26. HTML5 Geolocation APIHow it Gets Done<br />Cell Tower Triangulation<br />Device GPS<br />IP Geo Libraries<br />
  27. 27. HTML5 Geolocation API<br />IE – 9.0+<br />Firefox – 3.5+<br />Safari – 5.0+<br />Chrome – 5.0+<br />Opera – 10.6<br />iPhone – 3.0+<br />Android – 2.0+<br />http://diveintohtml5.org/geolocation.html<br />
  28. 28. Browser Adoption<br />
  29. 29. IE Support #Fail<br />
  30. 30. Firefox Support<br />
  31. 31. A Safe AssumptionBefore the Opt-In<br />1+ out of 2 Users <br />Can Currently Support HTML5 Geolocation<br />
  32. 32. Google Analytics Will Set You Free<br />
  33. 33. Plugins<br />
  34. 34. Obligatory CODE SLIDE<br />function get_location() { navigator.geolocation.getCurrentPosition(show_map); }<br />// Callback function once location has been granted<br />function show_map(position) { var latitude = position.coords.latitude; var longitude = position.coords.longitude; // let's show a map or do something interesting! }<br />
  35. 35. Stand and Deliver<br />You, or your client, as an LBS<br />
  36. 36. Best Practices<br />Location, Location, Location with Balance, Balance, Balance<br />Give the User A Logical Exit<br />Don’t Be Evil, Get Consent, Allow Record Removal<br />Privacy Policy FTW<br />
  37. 37. Never, Never Never Ever<br />Hello [geocity]! Welcome to my site! <br />#FAIL #FAIL #FAIL #FAIL<br />
  38. 38. Super Simple LBSing.<br />Step 1: Put Your Content to City Categories<br />Step 2: Load The User’s Location Into Shortcodes<br />Step 3: Get Loopy<br />
  39. 39. The Basic Geo Loop<br /><?php$city = do_shortcode('[geocity]');$args = array('category_name' => $city);$myCityQuery = new WP_Query($args);if ($myCityQuery->have_posts()): while ($myCityQuery->have_posts()): $myCityQuery->the_post();//post stuffendwhile; endif;<br />?><br />
  40. 40. Bonus Material<br />
  41. 41. CODE – Useful Functions<br />// http://snipplr.com/view/2531/calculate-the-distance-between-two-coordinates-latitude-longitude/<br />function getGeoDistance($lat1, $lng1, $lat2, $lng2, $miles = true)<br />{<br /> $pi80 = M_PI / 180;<br /> $lat1 *= $pi80;<br /> $lng1 *= $pi80;<br /> $lat2 *= $pi80;<br /> $lng2 *= $pi80;<br /> $r = 6372.797; // mean radius of Earth in km<br /> $dlat = $lat2 - $lat1;<br /> $dlng = $lng2 - $lng1;<br /> $a = sin($dlat / 2) * sin($dlat / 2) + cos($lat1) * cos($lat2) * sin($dlng / 2) * sin($dlng / 2);<br /> $c = 2 * atan2(sqrt($a), sqrt(1 - $a));<br /> $km = $r * $c;<br /> return ($miles ? ($km * 0.621371192) : $km);<br />}<br />
  42. 42. CODE – Useful Functions<br />// http://www.hashbangcode.com/blog/search-engine-spider-detection-php-258.html<br />function geoSpiderDetect() {<br /> $agentArray = array("ArchitextSpider", "Googlebot", "TeomaAgent",<br /> "Zyborg", "Gulliver", "Architext spider", "FAST-WebCrawler",<br /> "Slurp", "Ask Jeeves", "ia_archiver", "Scooter", "Mercator",<br /> "crawler@fast", "Crawler", "InfoSeek Sidewinder",<br /> "almaden.ibm.com", "appie 1.1", "augurfind", "baiduspider",<br /> "bannana_bot", "bdcindexer", "docomo", "frooglebot", "geobot",<br /> "henrythemiragorobot", "sidewinder", "lachesis", "moget/1.0",<br /> "nationaldirectory-webspider", "naverrobot", "ncsa beta",<br /> "netresearchserver", "ng/1.0", "osis-project", "polybot",<br /> "pompos", "seventwentyfour", "steeler/1.3", "szukacz",<br /> "teoma", "turnitinbot", "vagabondo", "zao/0", "zyborg/1.0",<br /> "Lycos_Spider_(T-Rex)", "Lycos_Spider_Beta2(T-Rex)",<br /> "Fluffy the Spider", "Ultraseek", "MantraAgent","Moget",<br /> "T-H-U-N-D-E-R-S-T-O-N-E", "MuscatFerret", "VoilaBot",<br /> "Sleek Spider", "KIT_Fireball", "WISEnut", "WebCrawler",<br /> "asterias2.0", "suchtop-bot", "YahooSeeker", "ai_archiver",<br /> "Jetbot"<br /> );<br />
  43. 43. Parting Remarks<br />Imagine 2015<br />
  44. 44. Parting Remarks<br />Go do something excellent.<br />
  45. 45. Questions? <br />Luke Pilon<br />luke@mobiah.com<br />@lukepilon<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×