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..
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.
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.
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.
- 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. - Activate the plugin on the 'Plugins' screen in WordPress.
- (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.
- Create a new Gravity Form (or edit an existing one).
- (Optional) Visit the form settings page and select which geocoder to use. It will use OSM Nominatim by default.
- Add the input fields you want the user to fill out.
- Add the Geocoder field (under the Advanced Fields tab).
- In the Geocoder field associate the geocoder parameters with the other input fields on your form.
- 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.
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.
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.
For commercial support you can contact the plugin developer at Cimbura.com
For fast and short questions you can contact me on twitter.
= 0.0.2 =
- Updated wp-geometa-lib.
- Updated readme documentation.
- Tested with WP 4.8
- Some additional debugging code.
- Fixed Google Geocoder.
= 0.0.1 =
- Initial release!
- Support for OSM Nominatim
- Support for Google Maps API
- Support for Geocod.io
- Forward geocoding support
- Admin value editing