Geotagger Documentation

Installing and Upgrading

Upgrading from Geotagger 2.x

Geotagger 3+ is a complete re-write. Geotagger 3+ is a proper fieldtype and does not include extension code or module code any longer. Follow these instructions if you have previously installed Geotagger 2.x.

  • Uninstall your Geotagger 2.x extension, module and fieldtype. You won't lose any field data since Geotagger doesn't actually store any data currently.
  • Follow installation instructions below.
  • Follow instructions for adding a Geotagger Field below.

EE2 Installation

  • Copy EE2/system/expressionengine/third_party/geotagger to your third_party folder (e.g. /_your_ee_systemdir/expressionengine/third_party/).
  • Copy EE2/themes/third_party/geotagger to your themes third_party folder (e.g. /themes/third_party/).
  • Login to the ExpressionEngine Control Panel, go to Add-Ons → Fieldtypes.
  • Find Geotagger in the list of fieldtypes and click “Install”.

EE3+ Installation

  • Copy the geotagger folder to your system/user/addons folder.
  • Copy themes/geotagger folder to your themes/user folder.
  • Login to the ExpressionEngine Control Panel and go to the Add-Ons section.
  • Find Geotagger in the list of add-ons and click “Install”.

Adding a Geotagger Field

  1. Login to the ExpressionEngine Control Panel, go to Admin → Channel Administration → Custom Fields.
  2. Find the field group you want to add a Geotagger field to and click Add/Edit Custom Fields.
  3. Click the Create a New Custom Field button.
  4. Select Geotagger in the Field Type dropdown.
  5. Enter the field label.
  6. Enter the field name.
  7. Under Custom Field Options, select a Geotagger mode (Manual or Auto-tag).
  8. Select a default zoom level for the map that will display after a location has been geotagged.
  9. Specify field mappings for the location fields you will be using. You should map at least one of the following:
    • - Address field
    • - City field
    • - State field
    • - Zip code field
  10. Specify field mappings for latitude and longitude fields.
  11. Optionally specify a field mapping to capture the zoom level.
  12. Click Submit.

Channel Form

Geotagger fully supports usage in channel:form and we have included an example form to help get you started. Be sure to review the requirements and instructions below when setting up your channel:form with Geotagger

  • Your Channel Form must have a class="geotagger" attribute.
  • DO NOT give the submit button a name="submit" attribute. Doing so will break Auto-tag mode. Setting a name attribute is ok, just not the word "submit"
  • For Geotagger related inputs (fields you have mapped in the field configuration), make sure you set the id attribute on your custom field name (e.g. id="venues_address" id="venues_latitude" etc).
  • Override Geotagger's CSS by applying your own style sheet.
  • You can only use one channel:form with Geotagger per page.
    {exp:channel:form channel="venues" return="geotagger/ENTRY_ID" entry_id="{segment_2}" class="geotagger"}
        The example below puts the latitude, longitude and zoom custom fields in hidden inputs. This isn't required, feel free to display them if you need to.
        <input type="hidden" name="venues_latitude" id="venues_latitude" value="{venues_latitude}" />
        <input type="hidden" name="venues_longitude" id="venues_longitude" value="{venues_longitude}" />
        <input type="hidden" name="venues_zoom" id="venues_zoom" value="{venues_zoom}" />
            <label for="title">Title</label>
            <input type="text" name="title" id="title" value="{title}" size="50" maxlength="100" />
            <label for="venues_address">Address</label>
            <input type="text" name="venues_address" id="venues_address" value="{venues_address}" size="50" maxlength="100" />
            <label for="venues_geotagger">Map</label>
    <p><input type="submit" value="Save Entry" name="geotag_submit" /></p>


Having problems setting up and/or using Geotagger? Support is offered from 10am to 4pm EST weekdays. Send us an email at and we will respond as quickly as we can.