Capture location information in Gravity Forms by geocoding user's input into other form fields.
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.
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.
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.
/wp-content/plugins/brilliant-geocoder-gravityforms
directory,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.
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.
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.