Skip to content

Store geoJSON on an object through a leaflet field.

Notifications You must be signed in to change notification settings

mikenuguid/googlemap-leafletfield

 
 

Repository files navigation

SilverStripe LeafletField module

Provides a form field type allowing users to draw features on a map, the features are stored as geoJSON objects in a single database field.

Installation

$ composer require NZTA/googlemap-leafletfield

Basic Usage

Create a text database field to store the geojson value.

public static $db = array(
    'Geometry' => 'Text',
);

Create a LeafletField, passing through the object that you want to store the value against.

$field = new LeafletField('Geometry', 'Geometry', $this);

Leaflet.draw demo

Field Options

Define default field options through config.

LeafletField:
  map_options:
    center:
      latitude: "-40.866119"
      longitude: "174.143780"
    zoom: 5
  draw_options:
    polyline:
      shapeOptions:
        color: '#269634'
    polygon:
      allowIntersection: false
      drawError:
        color: '#b00b00'
        timeout: 1000
    rectangle: false
    circle: false

Define custom options for individual field instances (overrides defaults).

$field->setLimit(1); // Limit the amount of objects the field can contain.
$field->setMapOptions(array(
    'center' => array(
        'latitude' => '-40.866119',
        'longitude' => '174.143780'
    ),
    'zoom' => 5
));
$field->setDrawOptions(array(
    'polyline' => array(
        'shapeOptions' => array(
            'color' => '#269634'
        )
    ),
    'polygon' => array(
        'allowIntersection' => false,
        'drawError' => array(
            'color' => '#b00b00',
            'timeout' => 1000
        )
    ),
    'rectangle' => false,
    'circle' => false
));

The draw options are set using the same structure as Leaflet.draw options.

Maintainer Contacts

Requirements

  • SilverStripe 3.1

Project Links

About

Store geoJSON on an object through a leaflet field.

Resources

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 51.0%
  • PHP 45.8%
  • Scheme 1.7%
  • CSS 1.5%