WordCamp Columbus - Location Based Integrations
Upcoming SlideShare
Loading in...5

WordCamp Columbus - Location Based Integrations






Total Views
Views on SlideShare
Embed Views



8 Embeds 2,666

http://www.geoposty.com 2580
http://www.lukepilon.com 71
http://geoposty.com 4
http://www.slideshare.net 3
http://webcache.googleusercontent.com 3
http://dev.geoposty.com 2
http://translate.googleusercontent.com 2
http://www.geoposty.com.php5-1.dfw1-2.websitetestlink.com 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

WordCamp Columbus - Location Based Integrations WordCamp Columbus - Location Based Integrations Presentation Transcript

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