Ochre W3C Geolocation Services

Geolocation Services attempts to retrieve a visitor's physical location, allowing for geographically relevant content to be delivered.

Author:Ochre Development Labs (profile at wordpress.org)
WordPress version required:3.0.0
WordPress version tested:3.3.2
Plugin version:0.04
Added to WordPress repository:09-01-2012
Last updated:09-01-2012
Warning! This plugin has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.
Rating, %:0
Rated by:0
Plugin URI:http://www.ochrelabs.com/wordpress-plugins/oc...
Total downloads:2 043
Active installs:10+
plugin download
Click to start download

Ochre’s Geolocation Services plugin for
WordPress
utilizes the W3C Geolocation API to retrieve a visitor’s physical location, enabling a
WordPress website to present content relevant to a visitors current physical location such as local maps, event listings, branch and franchise locations, social media and other information that is geographically
interesting.

The plugin provides three “back end” action hooks for use by your or third party plugins or theme actions, and AJAX actions for “front end” customization such as executing javascript with the resolved Location information, redirecting to a new page, or refreshing the current page.

Configuration

Global Configuration is available from the WordPress settings->Ochre Geolocation page:

  • Global or per-post/per page geolocation behavour

Per-page and per-post configurations include:

  • Executing custom javascript
  • Redirecting to a URL
  • Performing a page refresh
  • Firing off the ochregeo actions but doing nothing on the front end
  • Disabling completely

Actions

The following actions for do_action() are fired when a Geolocation update is received:

  • ochregeo_received_nosupport : No Geolocation support in the device/browser
  • ochregeo_received_unknownpos : A position could not be retrieved
  • ochregeo_received_location : Position was received. This action is passed the OCHRELABS_WP_Geolocation object as its only argument

AJAX actions

The following AJAX actions are implemented:

  • (nopriv) ochregeo_ochregeos : Transmits location information and executes an action based on a per-post/page or global setting.
  • (nopriv) ochregeo_get_coordinates : Retrieves last received location information. (we haven’t tested this)

Executing custom javascript after a succesful Geolocation update

Javascript executed on a per-page/post or global basis has access to a res object
containing information from the Geolocation Service plugin.

Properties of this object are:

res.la; // latitude
res.ll; // longitude
res.ev; // elevation (not always available - do not rely on)
res.ac  // accuracy (not always available - do not rely on)

If reverse geo coding is enabled, the object may also contain:

res.country  // country
res.countryc // country code
res.state    // state
res.statec   // state code
res.city     // city

El Quickie API Reference

`
// This is the Ochre Geo object instantiated by the plugin.
$ochre_geo = new OCHRELABS_WP_Geolocation();

// Get status of the current geolocation request. $ochre_geo::STATUS_UPDATED means you have “valid” coordinate data.
// Constants are:
$ochre_geo::STATUS_QUERY; // waiting for update from client
$ochre_geo::STATUS_UPDATED; // received coordinate update from client
$ochre_geo::STATUS_NOTSUPPORTED; // client does not support geo location
$ochre_geo::STATUS_ERROR; // an error was returned from the client
$ochre_geo::STATUS_UNKNOWNPOS; // location was unknown
$ochre_geo::STATUS_DISABLED; // module has been told not to present geolocation query

$ochre_geo->get_status();

// Set the location information manually (not normally needed)
$ochre_geo->set_coordinates($latitude,$longitude,$elevation=0,$accuracy=0);

// get the current resolved location information – check get_status() first before relying on this data!
// the returned array will be something like: array(“latitude”=>49.1234, “longitude”=>”-123.1234″,”elevation”=>0,”accuracy”=>0);
$ochre_geo->get_coordinates();

// geocodes the current resolved location information and returns it as an array like array(“city”=>”Vancouver”,”country”=>”Canada”,”state”=>”British Columbia”,”statec”=>”BC”,”country”=>”Canada”,”countryc”=>”CA”)
$ochre_geo->geocode();

<h3>Reverse Geo Coder</h3>We've thrown in Yahoo! place finder Geocoding support.  The geocoder()
returns an array consisting of something like:

array(
“city”=>”Vancouver”,”
“country”=>”Canada”,
“state”=>”British Columbia”,
“statec”=>”BC”,
“country”=>”Canada”,
“countryc”=>”CA”
)
`

Geo Coding support is still young and subject to change. It’s not hooked into the Javascript API, and since there are at least a few geo coder javascript api’s already out there we haven’t decided whether to do this or not.


FAQ
ChangeLog