SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Symfony2 + Google Map
и немного Rich Marker
Что будем использовать?
Composer

Symfony2

Liip/Imagine

http://getcomposer.org/

http://symfony.com/

https://github.com/liip/LiipImagineBundle

Google Map API

Select2 JS

https://developers.google.com/maps/

http://ivaynberg.github.io/select2/

RichMarker для Google Maps v3
http://google-maps-utility-library-v3.googlecode.com/svn/trunk/richmarker/docs/reference.html

и многое другое...
PHPStorm IDE
http://getcomposer.org

Творим!
Конфигурация зависимостей в
https://packagist.org
composer.json
Установка Symfony
В окне терминала PHPStorm пишем следующее:
curl -s https://getcomposer.org/installer | php
php composer.phar install
cp app/config/parameters.yml.dist app/config/parameters.yml
nano app/config/parameters.yml
php app/check.php
php app/console doctrine:schema:create
php app/console assetic:dump
Структура
файлов Symfony
Подключение Google Maps API
В тэг <head> основного шаблона поместить:
<script src="https://maps.googleapis.com/maps/api/js?v=3&sensor=false"></script>

В тэг <body> где нужна карта размещаем:
<div id="map_canvas"></div>
Ограничения по использованию
В случае если дневной трафик
переваливает за 25000 показов,
подключать карту нужно будет с API_KEY
через Google APIs Console. Тогда Google
Map API будет для вас платным.
map.js
Создаем свой локальный map.js файл и в
нём будем писать логику работы с картой.
Его так же подключаем в <head>, только
после подключения Google Map API.

var g = google.maps;
Инициализация карты в div и
создание маркера
map = new g.Map(document.getElementById("map_canvas"), mapOptions);
mapOptions
var mapOptions = {
draggableCursor: 'auto',
draggingCursor: 'move',
disableDoubleClickZoom: true,
panControl: false,
zoomControl: true,
zoomControlOptions: {
style: g.ZoomControlStyle.LARGE,
position: g.ControlPosition.LEFT_CENTER
},
scaleControl: true,
scaleControlOptions: {
position: g.ControlPosition.LEFT_BOTTOM
},
streetViewControl: false,
overviewMapControl: false,
center: new g.LatLng(48.850258199721495, 2.362060546875),
zoom: 6,
mapTypeControlOptions: {
mapTypeIds: [g.MapTypeId.SATELLITE, 'map_style'],
style: g.MapTypeControlStyle.HORIZONTAL_BAR,
position: g.ControlPosition.BOTTOM_LEFT
}
};
Обработчики событий
RichMarker
Класс RichMarker расширяется от
OverlayView и позволяет создавать
маркер не просто картинкой, а HTMLкодом, но объявляется так же просто как
и обычный маркер.
Вот мы и добрались до DOM.
http://google-maps-utility-library-v3.googlecode.com/svn/trunk/richmarker/docs/reference.html
Создание маркера с HTML
Функция drawOBJMarker вызывается
функцией поиска и передает туда
объект, который требуется отобразить
на карте:
Вывод на карту RichMarker-ов
Сейчас я
совершил поиск
по тэгу
“monument”.
Появилось три
кружочка.
map.css
OBJFormType.php
Сущность объекта маркера
Поле изображения в сущности
маркера объекта

Конфигурация бандла VichUploaderBundle
Изображения обрабатывает
LiipImagineBundle
В процессе отрисовки маркеров
существует несколько размеров одной
и той же картинки для поиска и для
увеличенной после нажатия на маркер
объекта.
LiipImagine создаёт миниатюры, следит
чтобы картинка вписывалась в нужные
размеры.
Конфигурация liip_imagine
app/config.yml
Если вы новичок в Symfony,
можете получить представление
на сайте видео-уроков:
https://knpuniversity.com
Это поможет вам лучше понимать
структуру Symfony Framework

Contenu connexe

Similaire à Google map markers with Symfony2

Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Александр Егурцов
 
Разработка мобильных приложений на платформе Xamarin
Разработка мобильных приложений на платформе XamarinРазработка мобильных приложений на платформе Xamarin
Разработка мобильных приложений на платформе XamarinNikita Savanchuk
 
Инфраструктура распределенных приложений на Node.js
Инфраструктура распределенных приложений на Node.jsИнфраструктура распределенных приложений на Node.js
Инфраструктура распределенных приложений на Node.jsStanislav Gumeniuk
 
Программирование под Maemo
Программирование под MaemoПрограммирование под Maemo
Программирование под Maemodmitryml
 
отладка Mpi приложений
отладка Mpi приложенийотладка Mpi приложений
отладка Mpi приложенийMichael Karpov
 
Cocaine: погружение в облака — Евгений Сафронов
Cocaine: погружение в облака — Евгений СафроновCocaine: погружение в облака — Евгений Сафронов
Cocaine: погружение в облака — Евгений СафроновYandex
 
Sencha Complete: Kharkiv JS #1
Sencha Complete: Kharkiv JS #1Sencha Complete: Kharkiv JS #1
Sencha Complete: Kharkiv JS #1Illya Klymov
 
Ігор Карпиленко — PHPStorm for drupal developer
Ігор Карпиленко — PHPStorm for drupal developerІгор Карпиленко — PHPStorm for drupal developer
Ігор Карпиленко — PHPStorm for drupal developerLEDC 2016
 
Eclipse Monkey
Eclipse MonkeyEclipse Monkey
Eclipse Monkeyilja.panin
 
Андрей Михайлов. Vagrant. Быстрое развертывание среды
Андрей Михайлов. Vagrant. Быстрое развертывание средыАндрей Михайлов. Vagrant. Быстрое развертывание среды
Андрей Михайлов. Vagrant. Быстрое развертывание средыDrupalSib
 
Основы Symfony и отличия Sf 3.x от Sf 2.x
Основы Symfony и отличия Sf 3.x от Sf 2.xОсновы Symfony и отличия Sf 3.x от Sf 2.x
Основы Symfony и отличия Sf 3.x от Sf 2.xIT61
 
Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine
Антон Тюрин, Евгений Сафронов, Инфраструктура под CocaineАнтон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine
Антон Тюрин, Евгений Сафронов, Инфраструктура под CocaineTanya Denisyuk
 
Где кончается react native? / Павел Кондратенко (Rambler&Co)
Где кончается react native? / Павел Кондратенко (Rambler&Co)Где кончается react native? / Павел Кондратенко (Rambler&Co)
Где кончается react native? / Павел Кондратенко (Rambler&Co)Ontico
 
20090721 hpc exercise2
20090721 hpc exercise220090721 hpc exercise2
20090721 hpc exercise2Michael Karpov
 
11 HappyDev-lite-2015 autumn. Александр Дец. Теплый LAMPовый веб. Промышлен...
11 HappyDev-lite-2015 autumn. Александр Дец. Теплый LAMPовый веб. Промышлен...11 HappyDev-lite-2015 autumn. Александр Дец. Теплый LAMPовый веб. Промышлен...
11 HappyDev-lite-2015 autumn. Александр Дец. Теплый LAMPовый веб. Промышлен...HappyDev-lite
 
Symfony2 practice
Symfony2 practiceSymfony2 practice
Symfony2 practiceSkorney
 
GitLab, Prometheus и Grafana с Kubernetes
GitLab, Prometheus и Grafana с KubernetesGitLab, Prometheus и Grafana с Kubernetes
GitLab, Prometheus и Grafana с KubernetesVictor Login
 
Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)Alex Demchenko
 
"прямое подключение и скальперские приводы" Ростислав Прус для Tradercamp 2012
"прямое подключение и скальперские приводы" Ростислав Прус для Tradercamp 2012"прямое подключение и скальперские приводы" Ростислав Прус для Tradercamp 2012
"прямое подключение и скальперские приводы" Ростислав Прус для Tradercamp 2012iTrader
 

Similaire à Google map markers with Symfony2 (20)

Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
 
Разработка мобильных приложений на платформе Xamarin
Разработка мобильных приложений на платформе XamarinРазработка мобильных приложений на платформе Xamarin
Разработка мобильных приложений на платформе Xamarin
 
Инфраструктура распределенных приложений на Node.js
Инфраструктура распределенных приложений на Node.jsИнфраструктура распределенных приложений на Node.js
Инфраструктура распределенных приложений на Node.js
 
Программирование под Maemo
Программирование под MaemoПрограммирование под Maemo
Программирование под Maemo
 
отладка Mpi приложений
отладка Mpi приложенийотладка Mpi приложений
отладка Mpi приложений
 
Cocaine: погружение в облака — Евгений Сафронов
Cocaine: погружение в облака — Евгений СафроновCocaine: погружение в облака — Евгений Сафронов
Cocaine: погружение в облака — Евгений Сафронов
 
Sencha Complete: Kharkiv JS #1
Sencha Complete: Kharkiv JS #1Sencha Complete: Kharkiv JS #1
Sencha Complete: Kharkiv JS #1
 
Ігор Карпиленко — PHPStorm for drupal developer
Ігор Карпиленко — PHPStorm for drupal developerІгор Карпиленко — PHPStorm for drupal developer
Ігор Карпиленко — PHPStorm for drupal developer
 
Eclipse Monkey
Eclipse MonkeyEclipse Monkey
Eclipse Monkey
 
Андрей Михайлов. Vagrant. Быстрое развертывание среды
Андрей Михайлов. Vagrant. Быстрое развертывание средыАндрей Михайлов. Vagrant. Быстрое развертывание среды
Андрей Михайлов. Vagrant. Быстрое развертывание среды
 
Основы Symfony и отличия Sf 3.x от Sf 2.x
Основы Symfony и отличия Sf 3.x от Sf 2.xОсновы Symfony и отличия Sf 3.x от Sf 2.x
Основы Symfony и отличия Sf 3.x от Sf 2.x
 
Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine
Антон Тюрин, Евгений Сафронов, Инфраструктура под CocaineАнтон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine
Антон Тюрин, Евгений Сафронов, Инфраструктура под Cocaine
 
Обзор SObjectizer 5.5
Обзор SObjectizer 5.5Обзор SObjectizer 5.5
Обзор SObjectizer 5.5
 
Где кончается react native? / Павел Кондратенко (Rambler&Co)
Где кончается react native? / Павел Кондратенко (Rambler&Co)Где кончается react native? / Павел Кондратенко (Rambler&Co)
Где кончается react native? / Павел Кондратенко (Rambler&Co)
 
20090721 hpc exercise2
20090721 hpc exercise220090721 hpc exercise2
20090721 hpc exercise2
 
11 HappyDev-lite-2015 autumn. Александр Дец. Теплый LAMPовый веб. Промышлен...
11 HappyDev-lite-2015 autumn. Александр Дец. Теплый LAMPовый веб. Промышлен...11 HappyDev-lite-2015 autumn. Александр Дец. Теплый LAMPовый веб. Промышлен...
11 HappyDev-lite-2015 autumn. Александр Дец. Теплый LAMPовый веб. Промышлен...
 
Symfony2 practice
Symfony2 practiceSymfony2 practice
Symfony2 practice
 
GitLab, Prometheus и Grafana с Kubernetes
GitLab, Prometheus и Grafana с KubernetesGitLab, Prometheus и Grafana с Kubernetes
GitLab, Prometheus и Grafana с Kubernetes
 
Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)
 
"прямое подключение и скальперские приводы" Ростислав Прус для Tradercamp 2012
"прямое подключение и скальперские приводы" Ростислав Прус для Tradercamp 2012"прямое подключение и скальперские приводы" Ростислав Прус для Tradercamp 2012
"прямое подключение и скальперские приводы" Ростислав Прус для Tradercamp 2012
 

Plus de DevOWL Meetup

Что такое современная Frontend разработка
Что такое современная Frontend разработкаЧто такое современная Frontend разработка
Что такое современная Frontend разработкаDevOWL Meetup
 
CQRS and EventSourcing
CQRS and EventSourcingCQRS and EventSourcing
CQRS and EventSourcingDevOWL Meetup
 
Cага о сагах
Cага о сагахCага о сагах
Cага о сагахDevOWL Meetup
 
Trainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.js
Trainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.jsTrainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.js
Trainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.jsDevOWL Meetup
 
SEO basics for developers
SEO basics for developersSEO basics for developers
SEO basics for developersDevOWL Meetup
 
Startup tactics for developers: A, B, C
Startup tactics for developers: A, B, CStartup tactics for developers: A, B, C
Startup tactics for developers: A, B, CDevOWL Meetup
 
Easily create apps using Phonegap
Easily create apps using PhonegapEasily create apps using Phonegap
Easily create apps using PhonegapDevOWL Meetup
 
MeetupCamp Витебский летний митап 5-6 июля
MeetupCamp Витебский летний митап 5-6 июляMeetupCamp Витебский летний митап 5-6 июля
MeetupCamp Витебский летний митап 5-6 июляDevOWL Meetup
 
Обзор Haxe & OpenFl
Обзор Haxe & OpenFlОбзор Haxe & OpenFl
Обзор Haxe & OpenFlDevOWL Meetup
 
Recommerce изнутри
Recommerce изнутриRecommerce изнутри
Recommerce изнутриDevOWL Meetup
 
Database reverse engineering
Database reverse engineeringDatabase reverse engineering
Database reverse engineeringDevOWL Meetup
 
ECMAScript 5 Features
ECMAScript 5 FeaturesECMAScript 5 Features
ECMAScript 5 FeaturesDevOWL Meetup
 
AngularJS basics & theory
AngularJS basics & theoryAngularJS basics & theory
AngularJS basics & theoryDevOWL Meetup
 
Async Module Definition via RequireJS
Async Module Definition via RequireJSAsync Module Definition via RequireJS
Async Module Definition via RequireJSDevOWL Meetup
 
Потоковая репликация PostgreSQL
Потоковая репликация PostgreSQLПотоковая репликация PostgreSQL
Потоковая репликация PostgreSQLDevOWL Meetup
 

Plus de DevOWL Meetup (20)

Что такое современная Frontend разработка
Что такое современная Frontend разработкаЧто такое современная Frontend разработка
Что такое современная Frontend разработка
 
CQRS and EventSourcing
CQRS and EventSourcingCQRS and EventSourcing
CQRS and EventSourcing
 
Cага о сагах
Cага о сагахCага о сагах
Cага о сагах
 
Trainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.js
Trainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.jsTrainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.js
Trainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.js
 
SEO basics for developers
SEO basics for developersSEO basics for developers
SEO basics for developers
 
Testing is coming
Testing is comingTesting is coming
Testing is coming
 
HR VS DEV
HR VS DEVHR VS DEV
HR VS DEV
 
Startup tactics for developers: A, B, C
Startup tactics for developers: A, B, CStartup tactics for developers: A, B, C
Startup tactics for developers: A, B, C
 
Easily create apps using Phonegap
Easily create apps using PhonegapEasily create apps using Phonegap
Easily create apps using Phonegap
 
MeetupCamp Витебский летний митап 5-6 июля
MeetupCamp Витебский летний митап 5-6 июляMeetupCamp Витебский летний митап 5-6 июля
MeetupCamp Витебский летний митап 5-6 июля
 
Обзор Haxe & OpenFl
Обзор Haxe & OpenFlОбзор Haxe & OpenFl
Обзор Haxe & OpenFl
 
Recommerce изнутри
Recommerce изнутриRecommerce изнутри
Recommerce изнутри
 
Lucene in Action
Lucene in ActionLucene in Action
Lucene in Action
 
Database reverse engineering
Database reverse engineeringDatabase reverse engineering
Database reverse engineering
 
devOWL coffee-break
devOWL coffee-breakdevOWL coffee-break
devOWL coffee-break
 
ECMAScript 5 Features
ECMAScript 5 FeaturesECMAScript 5 Features
ECMAScript 5 Features
 
AngularJS basics & theory
AngularJS basics & theoryAngularJS basics & theory
AngularJS basics & theory
 
Async Module Definition via RequireJS
Async Module Definition via RequireJSAsync Module Definition via RequireJS
Async Module Definition via RequireJS
 
Bootstrap3 basics
Bootstrap3 basicsBootstrap3 basics
Bootstrap3 basics
 
Потоковая репликация PostgreSQL
Потоковая репликация PostgreSQLПотоковая репликация PostgreSQL
Потоковая репликация PostgreSQL
 

Google map markers with Symfony2