Maps Fieldtype

Introduction

The official FieldType extension for the Maps module. Simply modify your Map from within your entry.

title

Documentation versions

Installation

Prerequisites

Make sure your system meets the minimum requirements:

Installation Instructions

Update instructions

License field

This module is using a license field to check if the license for the module is valid or not. On addons.reinos.nl you can check your license and add your valid domains.

Control panel overview

In the Module CP you can enter then your license Control panel overview

When you enter a wrong license, the module will not work and it shows you an warning Control panel overview

On a local environment, like *.dev *.local *.localhost *.test the license will be valid for the testing and building new sites.

Migration tool

With the migration tool, you can convert you data from the "Gmaps Fieldtype" to the "Maps Fieldtype".

important: before starting, make sure you make a backup of your old data, in case of failure.

Template tags

The template tags are easily to convert, just replace gmaps_fieldtype to maps_fieldtype

The Maps Field

Once Maps Fieldtype is installed, you can add a Maps field to the Publish page.

Publish page overview

When the custom field is created, you can see the Maps Fieldtype in action on the publish field

title

From here you can start adding markers, customize markers, search addresses and customize the map settings.

Editing Maps setting

To modify the settings for the Map, you can click in the top right on the 'map settings' button.

title

Search an address

To search an address, you can enter an address in the search form. If there is any result, they will be show below the form. From here you can add the address also to the map by clicking the plus sign.
The Reverse Geocode latlng option can be used to disable reverse geocoding on Latlng coordinates. This can be handy when you have an exact latlng, that does not match any streetname, city etc...

title

Refresh the map

In some situations you mess up your map and you want to reset it. With the refresh map button, you can refresh your map to the saved version.

Reset the map

To simply reset/remove all your data on your map, just click the reset map button

Edit Markers (and others)

When you added some markers to your map, you can edit the markers by clicking on the edit icon in the top. Please notice that when you hover on the marker button in the top, the marker on the map will bounce so you can see which marker you are editing.

title

Removing markers (and others)

To remove the marker, you can click in the top on the delete icon. Or you can right click on a marker in the gmaps.

Field Tag

To show your created map, you can put your custom field tag inside a {exp:channel:entries} loop. This will show your map that you created from within the CP.

{your_custom_field}

To modify the map (like the map style or anything else) you can use the power of the Maps module. Simply extend your tag with some params from the {exp:reinos_maps:map} method

{your_custom_field width="100%"}

Please make sure you add the {exp:reinos_maps:init} to your template to include the necessary files

Tag params

The following tags from the Maps module are supported

There are some that filled in automatically because you set them in the entry self.

Tag Variable

Below are the Tag Variables. Those Variables can be used in the tag described above

marker:n:latlng

Show the latlng of one marker.

{your_custom_field:marker:n:latlng}

marker:latlng

Show all latlng positions with pipeline`s

{your_custom_field:marker:latlng}

marker:n:title

Show the title for one marker

{your_custom_field:marker:n:title}

marker:title

Show all titles with pipeline`s

{your_custom_field:marker:title}

marker:n:icon

Show one icon

{your_custom_field:marker:n:icon}

marker:icon

Show all icons with pipeline`s

{your_custom_field:marker:icon}

route:from

Show the from latlng for use in the route function

{your_custom_field:route:from}

route:stops

Show the stops latlng for use in the route function

{your_custom_field:route:stops}

route:to

Show the to latlng for use in the route function

{your_custom_field:route:to}

has:markers

Variable that check if there is any marker set

{maps_field_extension:has:markers}

markers

Loop over the Markers

{maps_field_extension:markers}...{/maps_field_extension:markers}

markers:add_marker

Generate a {maps:add_marker} code from the maps module. Place this inside a {exp:reinos_maps:map}....{/exp:reinos_maps:map} to the same marker to a front-end map.

{maps_field_extension:markers}{add_marker}{/maps_field_extension:markers}

1

markers:lat

The lat of the marker

{maps_field_extension:markers}{lat}{/maps_field_extension:markers}

markers:lng

The lng of the marker

{maps_field_extension:markers}{lng}{/maps_field_extension:markers}

markers:title

The title of the marker

{maps_field_extension:markers}{title}{/maps_field_extension:markers}

markers:icon

The icon of the marker

{maps_field_extension:markers}{icon}{/maps_field_extension:markers}

markers:content

The content of the infowindow

{maps_field_extension:markers}{content}{/maps_field_extension:markers}

markers:count

Holds the current number, started from 1

{maps_field_extension:markers}{count}{/maps_field_extension:markers}

markers:abs_count

Holds the current number, started from 0

{maps_field_extension:markers}{abs_count}{/maps_field_extension:markers}

markers:total_results

Show the total numbers of markers

{maps_field_extension:markers}{total_results}{/maps_field_extension:markers}

polyline:n:from

Get the from latlng form the n polyline

{maps_field_extension:polyline:1:from}

polyline:n:stops

Get the stops (latlng pipline seperated) from the n polyline to convert it to the route method

{maps_field_extension:polyline:1:stops}

polyline:n:to

Get the to latlng form the n polyline

{maps_field_extension:polyline:1:to}

polyline[OPTIONAL:N]

Loop over the polyline positions, where N is the number of the polyline created.

{maps_fieldtype:polyline[OPTIONAL:1]}
    {stroke_color}
    {stroke_opacity}
    {stroke_weight}
    {path}
        {lat}, {lng}
    {/path}
{/maps_fieldtype:polyline[OPTIONAL:1]}

polygon[OPTIONAL:N]

Loop over the polygons, where N is the number of the polygon created.

{maps_fieldtype:polygon[OPTIONAL:1]}
    {stroke_color}
    {stroke_opacity}
    {stroke_weight}
    {fill_color}
    {fill_opacity}
    {path}
        {lat}, {lng}
    {/path}
{/maps_fieldtype:polygon[OPTIONAL:1]}

circle[OPTIONAL:N]

Loop over the circles, where N is the number of the circle created.

{maps_fieldtype:circle[OPTIONAL:1]}
    {stroke_color}
    {stroke_opacity}
    {stroke_weight}
    {fill_color}
    {fill_opacity}
    {lat}
    {lng}
    {radius}
{/maps_fieldtype:circle[OPTIONAL:1]}

rectangle[OPTIONAL:N]

Loop over the circles, where N is the number of the circle created.

{maps_fieldtype:rectangle[OPTIONAL:1]}
    {stroke_color}
    {stroke_opacity}
    {stroke_weight}
    {fill_color}
    {fill_opacity}
    {bounds}
        {lng}
        {lng}
    {/bounds}
{/maps_fieldtype:rectangle[OPTIONAL:1]}

map

Get all map variables

{maps_fieldtype:map}
    {map_types}
    {map_type}
    {zoom_level}
    {scroll_wheel}
    {zoom_control}
    {zoom_control_style}
    {zoom_control_position}
    {pan_control}
    {pan_control_position}
    {map_type_control}
    {map_type_control_style}
    {map_type_control_position}
    {street_view_control}
    {street_view_control_position}
    {google_overlay_html}
    {google_overlay_position}
    {center}
{/maps_fieldtype:map}

Channel Form

The Maps Fieldtype is fully compatible with Channel Form

Limit Access

You can set for different functions the access level based on the membergroup on the field setting page.

Access

Supported

The Fieldtype supports the following modules and extension

Content Elements

{exp:reinos_maps:init}

{exp:channel:entries entry_id="1" dynamic="no"}
    {ce_field}
        {maps_fieldtype}
               {value}
        {/maps_fieldtype}
    {/ce_field}
{/exp:channel:entries}

Webservice

The Maps Fieldtype supports all methods of the Entry API.

To import a new data map via the Entry API, you have to use the following data structure.

array('maps_field' => array(
    'markers' => array(
        array(
            'lat' =>'52.3909176',
            'lng' =>'6.049638',
            'title' => 'test',
            'icon' => null
        )
    ),
    'map' => array(
        'map_type' => 'roadmap',
        'map_types' => array(
            'hybrid',
            'roadmap',
            'satellite',
            'terrain'
        )
    ),
    'polylines' => array(),
    'polygons' => array(),

));

Extra params bug

At the moment it is not possible to use enters in your custom field like below;

{custom_field
   param1=""
   param2=""
   param3=""
}

Instead of that you have to use it the following way;

{custom_field param1="" param2="" param3=""}

See also http://expressionengine.stackexchange.com/questions/10726/custom-field-with-params-and-enters or https://support.ellislab.com/bugs/detail/19434

Hooks

reinos_maps_fieldtype_save_data

(added in v1.0.0)

 ee()->extensions->call('reinos_maps_fieldtype_save_data', $data, $entry_id, $field_id);

Changelog

2.1.1 (13-11-2019)

2.1.0 (25-10-2019)

2.0.4 (03-09-2019)

2.0.3 (27-06-2019)

2.0.2 (08-06-2019)

2.0.1 (07-06-2019)

2.0.0 (21-05-2019)

*Note: There is a change you will have to validate the license again

\Note:** Because the module has been renamed with a prefix reinos_ there is an update path by simply add the new update to your site and install it. By installing the module, you are disabling the old module that can be deleted afterward. Also note that you have to rename the module calls and hooks with a prefix reinos_

See this article about the rename https://addons.reinos.nl/news/modules-renamed

1.1.5 (06-03-2019)

1.1.4 (05-02-2019)

1.1.3 (11-01-2019)

1.1.2 (08-01-2019)

1.1.1 (02-01-2019)

1.1.0 (19-12-2018)

1.0.2 (18-12-2018)

1.0.1 (24-11-2018)

1.0.0 (12-11-2018)