Brilliant Geocoder for Gravity Forms

Description

Brilliant Geocoder for Gravity Forms is a powerful and flexible geocoder field
for Gravity Forms. The Geocoder field is easily be configured to capture geocoder
input values from other form fields.

It comes with the OSM Nominatim
geocoder enabled by default and supports Geocod.io
and the Google Maps API once you’ve entered
API keys for those services.

The geocoder field can be displayed as a map, as latitude and longitude
fields, as the raw GeoJSON data, or hidden.

This plugin supports WP-GeoMeta, so if you create posts or users with geocoded
data, their location will be stored as spatial metadata.

NOTICE: This plugin uses 3rd party services to provide geocoding results.
The default geocoder, OSM Nominatim, requests that you include your email address
in API calls if you are making a large number of requests. We send the WP admin
email address by default. You can change what is sent on the Gravity Forms settings
page, under
Geocoder..

What is Geocoding?

Geocoding is the process of turning
text (an address) into coordinates (latitude and longitude). With coordinates
you can display data on a map and do location based searching.

Support for Other Geocoders

Brilliant Geocoders for Gravity Forms includes hooks so that you can add
support for other geocoding services.

OSM Nominatim support is built into the plugin, but Geocod.io and Google Maps
API support is written the same way that you would add support for another
service. The Geocod.io example in particular has extensive comments.

Please see geocoders/geocodio.php and geocoders/geocodio.js for details.

Screenshots

  • Brilliant Geocoder for Gravity Forms watches for changes to the form, then finds a location based on those fields.
  • Brilliant Geocoder for Gravity Forms comes with support for three geocoders. To use Geocod.io or Google Maps API, you will need to visit the Gravity Forms settings and enter your API keys.
  • On individual form settings pages you can select which geocoder to use for the current form. Only geocoders with required API key will appear in this list.
  • The fields that appear in the Geocoding Source Fields section will dependo on which geocoder engine you've selected on the form's settings page. The geocoder fields you associate with source fields will be sent to the geocoder service. In this screenshot only a single field is needed.
  • Other geocoding engines may need separate street, city and other fields to geocode correctly.
  • You have a lot of control over what you display to the user. The default is to display a map which will show the geocoded location with a marker. You can also choose to show a GeoJSON Text area (which may only be for advanced users) or a pair of latitude and longitude text fields.
  • Here's what the three inputs will look like to the user. The map is at the top, then the GeoJSON, then the Latitude and Longitude.
  • Alternatively you could hide the geocoding interface from the user completely. It will still work and submit correctly, it just won't be visible.
  • Geocoded results are stored as GeoJSON but, for convenience, just the coordinates are show on the entry listing page.
  • On the full entry view page the map and the GeoJSON are shown.
  • When editing existing form submissions, the map, GeoJSON and latitude and longitude fields are all interlinked. You can change any of them and the other two will update. You can also edit the associated input fields and the geocoding will be updated as you would expect.

Installation

Be sure that Gravity Forms 2.0.0 or higher is installed.

With Gravity Forms installed, you can install this plugin in the usual WordPress way.

  1. Unzip and upload the plugin files to the /wp-content/plugins/brilliant-geocoder-gravityforms directory,
    or upload the plugin’s .zip file through the WordPress plugin screen directly.
  2. Activate the plugin on the ‘Plugins’ screen in WordPress.

Creating your first Geocoding field

  1. (Optional) Visit the Gravity Forms settings page enter a Geocod.io or
    Google Maps API key, or to change which email is sent with OSM Nominatim API calls.
  2. Create a new Gravity Form (or edit an existing one).
  3. (Optional) Visit the form settings page and select which geocoder to use.
    It will use OSM Nominatim by default.
  4. Add the input fields you want the user to fill out.
  5. Add the Geocoder field (under the Advanced Fields tab).
  6. In the Geocoder field associate the geocoder parameters with the other input
    fields on your form.
  7. Publish your form and add it to a page like you would any other Gravity
    Form!

and add the Geocoder field from the Advanced Fields
menu. Add other input fields, then in the Geocoder settings select which
fields will be used as parameters for the geocoding.

FAQ

Where are the Terms of Service for the Geocoding Services?
What data is sent to the geocoding service when I geocode?

Whatever fields you select as a geocoding source in Gravity Forms will be sent
to the geocoding service. This would typically means that address details
entered into the form will be sent to the geocoding service for processing.

Your API key and/or any other parameters required by the service’s terms of service
will also be sent.

Please review the Terms of Service of the service you select for details on
how your submitted data is stored or used.

How can I run spatial queries?

If you create users or posts, and set a meta value to the value of a Brilliant
Geocoder field, that value will be stored as spatial metadata.

Brilliant Geocoder for Gravity Forms uses WP-GeoMeta internally. For sample
queries, please see the WP-GeoMeta documentation.

Where can I get help with GIS and WordPress?

For commercial support you can contact the plugin developer at
Cimbura.com

For fast and short questions you can contact me on twitter.

Contributors & Developers

“Brilliant Geocoder for Gravity Forms” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

0.0.1

  • Initial release!
  • Support for OSM Nominatim
  • Support for Google Maps API
  • Support for Geocod.io
  • Forward geocoding support
  • Admin value editing