benmanu / silverstripe-leafletfield
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
Installs: 3 305
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 0
Forks: 9
Open Issues: 4
Language:JavaScript
Type:silverstripe-vendormodule
pkg:composer/benmanu/silverstripe-leafletfield
Requires
- silverstripe/cms: ^4.0
 - silverstripe/vendor-plugin: ^1.0
 
README
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 benmanu/silverstripe-leafletfield
Basic Usage
Import the field
use BenManu\LeafletField\LeafletField;
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);
Field Options
Define default field options through config.
BenManu\LeafletField\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
- Ben Manu ben@silverstripe.com
 
Requirements
- SilverStripe 4.0