SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie Google Map маркеры вместе с Symfony2

Eclipse Monkey
Eclipse MonkeyEclipse Monkey
Eclipse Monkey
ilja.panin
 
20090721 hpc exercise2
20090721 hpc exercise220090721 hpc exercise2
20090721 hpc exercise2
Michael Karpov
 
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 2012
iTrader
 
"прямое подключение и скальперские приводы" Ростислав Прус для Tradercamp 2012
"прямое подключение и скальперские приводы" Ростислав Прус для Tradercamp 2012"прямое подключение и скальперские приводы" Ростислав Прус для Tradercamp 2012
"прямое подключение и скальперские приводы" Ростислав Прус для Tradercamp 2012
iTrader
 
PhoneGap + Sencha
PhoneGap + SenchaPhoneGap + Sencha
PhoneGap + Sencha
observleer
 
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)
Ontico
 

Ähnlich wie Google Map маркеры вместе с Symfony2 (20)

Ігор Карпиленко — 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
 
"прямое подключение и скальперские приводы" Ростислав Прус для Tradercamp 2012
"прямое подключение и скальперские приводы" Ростислав Прус для Tradercamp 2012"прямое подключение и скальперские приводы" Ростислав Прус для Tradercamp 2012
"прямое подключение и скальперские приводы" Ростислав Прус для Tradercamp 2012
 
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
 
PhoneGap + Sencha
PhoneGap + SenchaPhoneGap + Sencha
PhoneGap + Sencha
 
Hunting for a C++ package manager
Hunting for a C++ package managerHunting for a C++ package manager
Hunting for a C++ package manager
 
Yamaps
YamapsYamaps
Yamaps
 
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)
 
How to write an extension for Neutron if you really need to
How to write an extension for Neutron if you really need toHow to write an extension for Neutron if you really need to
How to write an extension for Neutron if you really need to
 

Google Map маркеры вместе с Symfony2