Your SlideShare is downloading. ×
0
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

WordCamp Columbus - Location Based Integrations

4,089

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,089
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. WordCampCB<br />Location Based Services<br />
  • 2. Hash Tags and Whatnot<br />#wccb – WordCamp Columbus<br />#wccb #lbs – LBS Session <br />
  • 3. Introductions<br />50% of the United States population lives <br />within a 500 mile radius of Columbus.<br />
  • 4. Who are You and Why are You here?<br />Understanding<br />Ideas or Insights<br />Technologies<br />
  • 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. 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. 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. What is a LBS?<br />They are a LBS and you are a LBS<br />Everyone’s a LBS, S, S, S….<br />
  • 9. Location Based Services <br />The time and place to use them.<br />
  • 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. Use Cases<br />Ad Targeting<br />Digital Rights Management<br />Localizing Content<br />Fraud Prevention<br />
  • 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. 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. Accessing User Location<br />
  • 15. Implementations<br />IP Geolocation<br />HTML5<br />
  • 16. IP Geolocation<br />You have an IP Address &amp; we know geographically where that is.<br />
  • 17. IP GEO Properties<br />Always On<br />Static in Nature<br />No Permission<br />25-50 Mile Localization <br />
  • 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. 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. 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. Plugin Features<br />Shortcodes<br />Preconfigured Widgets<br />Redirection<br />3rd Party LBS Integrations<br />
  • 22. Obligatory CODE SLIDE<br />&lt;?php echo do_shortcode(&apos;[geocity]&apos;);  ?&gt;<br />[geolongitude] and [geolatitude]<br />
  • 23. HTML5 Geolocation<br />Permission based access to users’ location.<br />
  • 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. 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. HTML5 Geolocation APIHow it Gets Done<br />Cell Tower Triangulation<br />Device GPS<br />IP Geo Libraries<br />
  • 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. Browser Adoption<br />
  • 29. IE Support #Fail<br />
  • 30. Firefox Support<br />
  • 31. A Safe AssumptionBefore the Opt-In<br />1+ out of 2 Users <br />Can Currently Support HTML5 Geolocation<br />
  • 32. Google Analytics Will Set You Free<br />
  • 33. Plugins<br />
  • 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&apos;s show a map or do something interesting! }<br />
  • 35. Stand and Deliver<br />You, or your client, as an LBS<br />
  • 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. Never, Never Never Ever<br />Hello [geocity]! Welcome to my site! <br />#FAIL #FAIL #FAIL #FAIL<br />
  • 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. The Basic Geo Loop<br />&lt;?php$city = do_shortcode(&apos;[geocity]&apos;);$args = array(&apos;category_name&apos; =&gt; $city);$myCityQuery = new WP_Query($args);if ($myCityQuery-&gt;have_posts()): while ($myCityQuery-&gt;have_posts()): $myCityQuery-&gt;the_post();//post stuffendwhile; endif;<br />?&gt;<br />
  • 40. Bonus Material<br />
  • 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. CODE – Useful Functions<br />// http://www.hashbangcode.com/blog/search-engine-spider-detection-php-258.html<br />function geoSpiderDetect() {<br /> $agentArray = array(&quot;ArchitextSpider&quot;, &quot;Googlebot&quot;, &quot;TeomaAgent&quot;,<br /> &quot;Zyborg&quot;, &quot;Gulliver&quot;, &quot;Architext spider&quot;, &quot;FAST-WebCrawler&quot;,<br /> &quot;Slurp&quot;, &quot;Ask Jeeves&quot;, &quot;ia_archiver&quot;, &quot;Scooter&quot;, &quot;Mercator&quot;,<br /> &quot;crawler@fast&quot;, &quot;Crawler&quot;, &quot;InfoSeek Sidewinder&quot;,<br /> &quot;almaden.ibm.com&quot;, &quot;appie 1.1&quot;, &quot;augurfind&quot;, &quot;baiduspider&quot;,<br /> &quot;bannana_bot&quot;, &quot;bdcindexer&quot;, &quot;docomo&quot;, &quot;frooglebot&quot;, &quot;geobot&quot;,<br /> &quot;henrythemiragorobot&quot;, &quot;sidewinder&quot;, &quot;lachesis&quot;, &quot;moget/1.0&quot;,<br /> &quot;nationaldirectory-webspider&quot;, &quot;naverrobot&quot;, &quot;ncsa beta&quot;,<br /> &quot;netresearchserver&quot;, &quot;ng/1.0&quot;, &quot;osis-project&quot;, &quot;polybot&quot;,<br /> &quot;pompos&quot;, &quot;seventwentyfour&quot;, &quot;steeler/1.3&quot;, &quot;szukacz&quot;,<br /> &quot;teoma&quot;, &quot;turnitinbot&quot;, &quot;vagabondo&quot;, &quot;zao/0&quot;, &quot;zyborg/1.0&quot;,<br /> &quot;Lycos_Spider_(T-Rex)&quot;, &quot;Lycos_Spider_Beta2(T-Rex)&quot;,<br /> &quot;Fluffy the Spider&quot;, &quot;Ultraseek&quot;, &quot;MantraAgent&quot;,&quot;Moget&quot;,<br /> &quot;T-H-U-N-D-E-R-S-T-O-N-E&quot;, &quot;MuscatFerret&quot;, &quot;VoilaBot&quot;,<br /> &quot;Sleek Spider&quot;, &quot;KIT_Fireball&quot;, &quot;WISEnut&quot;, &quot;WebCrawler&quot;,<br /> &quot;asterias2.0&quot;, &quot;suchtop-bot&quot;, &quot;YahooSeeker&quot;, &quot;ai_archiver&quot;,<br /> &quot;Jetbot&quot;<br /> );<br />
  • 43. Parting Remarks<br />Imagine 2015<br />
  • 44. Parting Remarks<br />Go do something excellent.<br />
  • 45. Questions? <br />Luke Pilon<br />luke@mobiah.com<br />@lukepilon<br />

×