Set the latitude and longitude using Yandex Maps
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>
...
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.
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'
)
)
))
...
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' ]
...