it-blaster/yandex-maps-form-type-bundle

Set the latitude and longitude using Yandex Maps

v1.0.6 2016-10-26 15:11 UTC

This package is not auto-updated.

Last update: 2024-10-23 15:22:33 UTC


README

Scrutinizer Code Quality Build Status License Total Downloads Latest Unstable Version Latest Stable Version

Set the latitude and longitude using Yandex Maps

Installation

Add it-blaster/yandex-maps-form-type-bundle to your composer.json file and run composer

...
"require": {
    "it-blaster/yandex-maps-form-type-bundle": "1.0.*"
}
...

Register the bundle in your AppKernel.php

...
new Fenrizbes\YandexMapsFormTypeBundle\FenrizbesYandexMapsFormTypeBundle(),
...

Include bundle's scripts in your page:

...
<script src="{{ asset('bundles/fenrizbesyandexmapsformtype/js/yandex_maps_widget.js') }}"></script>
...

Usage

Just set the yandex_maps FormType for your field as follows:

...
    ->add('coordinates', 'yandex_maps')
...

The type takes and returns an array with items lat for the latitude and lng for the longitude. So you need to configure your database coordinates column as OBJECT or create the setter and getter for it on your model.

Options

There are a few options that you can pass:

...
    ->add('coordinates', 'yandex_maps', array(
        'width'      => 640,      // The map's width
        'height'     => 480,      // The map's height
        'default'    => array(
            'lat' => 55.75319, // The default latitude value
            'lng' => 37.619953 // The default longitude value
        ),
        'parameters' => array(
            'type'          => 'yandex#map', // The default map's type
            'zoom'          => 11,           // The initial zoom size
            'scrollZoom'    => false,        // Enable/disable scroll zoom
            'searchSupport' => false,        // Enable/disable searching objects by searchControl
            'controls'      => array(        // Enabled map's controls
                'zoomControl'
            )
        )
    ))
...

Configuration

You can configure default values for type's options to avoid passing them every time:

...
fenrizbes_yandex_maps_form_type:
    size:
        width:  640
        height: 480
    default:
        lat: 55.75319
        lng: 37.619953
    parameters:
        type:          'yandex#map'
        zoom:          11
        scrollZoom:    false
        searchControl: false
        controls:      [ 'zoomControl' ]
...