Сергей Рудюк 16 июня 2015

Автор: Рудюк С.А.

http://corp2.net

Чтоб проще было создавать новых пользователей при работе в XRDP, рекомендуется сделатья ряд настроек скелета пользователей.

1. Скелет находится по адресу: /etc/skel

Владельца и группу для данного каталога указываем: root

2. В каталоге /etc/skel/Desktop можно создать те ярлыки, которые будут создаваться у пользователя при первом входе в систему.

Например, вот так выглядит содержимое файла ярлыка 1С на рабочем столе:

[Desktop Entry] Version=1.0 Type=Application Terminal=false Exec=/opt/1C/v8.3/x86_64/1cestart /L ru Categories=Office;Finance; Name[ru_RU]=1С:Предприятие Name=1C:Enterprise Icon=1cestart

3. Для того, чтоб пользователи не смогли редактировать рабочий стол, укажите права 555 на каталог /etc/skel/Desktop.

chmod -R 555 /etc/skel/Desktop

4. Для работы в режиме терминала, фон рабочего стола лучше указать однотонный. Т.к. в этом случае проще будет передаваться изображение рабочего стола.

Для того, чтоб у всех пользователей был одинаковый рабочий стол, скопируйте файлы в /etc/skel/.config/pcmanfm/LXDE соответвующего настроенного пользователя.

В частности, внешний вид рабочего стола определяется в конфигурационном файле /etc/skel/.config/pcmanfm/LXDE. Вот его содержимое:

[config] bm_open_method=0 [volume] mount_on_startup=1 mount_removable=1 autorun=1 [ui] always_show_tabs=0 max_tab_chars=32 win_width=734 win_height=503 splitter_pos=150 media_in_new_tab=0 desktop_folder_new_win=0 change_tab_on_drop=1 close_on_unmount=1 focus_previous=0 side_pane_mode=places view_mode=icon show_hidden=0 sort=gicon;ascending; toolbar=newtab;navigation;home; show_statusbar=1 pathbar_mode_buttons=0

/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf

[*] wallpaper_mode=color wallpaper_common=0 wallpapers_configured=1 wallpaper0=/usr/share/lxde/wallpapers/lxde_blue.jpg desktop_bg=#423d3d desktop_fg=#ffffff desktop_shadow=#000000 desktop_font=Sans 12 show_wm_menu=0 sort=mtime;ascending; show_documents=0 show_trash=0 show_mounts=0

5. Для того, чтоб у всех пользователей устанавливался один и тот же скринсервер, необходимо в скелет скопировать файл:

/etc/skel.xscreensaver

Так же, желательно из системы поудалять все графические скринсерверы. Т.к. даже если установить права только для чтения на данный файл, все равно программа установки скринсервера добавляет атрибут записи.

6. Для того, чтоб пользователи не могли сменить заставку, запретите чтение всем пользователям файла /usr/bin/xscreensaver-demo:

chmod -R 700 /usr/bin/xscreensaver-demo chgrp -R root /usr/bin/xscreensaver-demo chown -R root /usr/bin/xscreensaver-demo

Сергей Рудюк 16 июня 2015

LXDE.org|Lightweight X11 Desktop Environment: "Одно из главных достоинств LXDE - небольшие требования к железу. Философия LXDE - это лёгкость, полезность и практичность."

Contents

Установка

LXDE модульный и вы можете выбирать только те пакеты, которые вам нужны.

Минимально необходимые пакеты для запуска LXDE: lxde-common, lxsession, desktop-file-utils и оконный менеджер.

Вы можете установить группу пакетов LXDE:

# pacman -S lxde

Установятся следующие пакеты:

  • gpicview: Простой и легкий просмоторщик изображений
  • libfm: Библиотека для работы с файлами (lxshortcut: Простое средство редактирования ярлычков)
  • lxappearance: Редактор тем для изменения GTK+ тем, иконок и шрифтов для приложений GTK
  • lxappearance-obconf: Плагин для настройки Openbox через LXAppearance
  • lxde-common: Установки по умолчанию конфигурационных файлов для большинства интегрированных компонентов LXDE
  • lxde-icon-theme: Тема значков LXDE
  • lxdm: Легковесный менеджер дисплея приветствия
  • lxinput: Конфигурационная утилита для клавиатуры и мышки в LXDE
  • lxlauncher: Панель запуска приложений для нетбуков
  • lxmenu-data: Коллекция файлов адаптирующая меню LXDE под стандарты спецификации freedesktop.org
  • lxmusic: Минималистичный проигрыватель музыки базирующийся на xmms2
  • lxpanel: Панель задач с менеджером приложений, меню программ и апплетов
  • lxrandr: Менеджер экрана для LXDE
  • lxsession: Совместимый X11 менеджер сессий с поддержкой выключения, перезагрузки и ждущего режима
  • lxtask: Диспетчер задач и системный монитор LXDE
  • lxterminal: Стандартный эмулятор терминала для LXDE
  • menu-cache: Механизм кеширования для freedesktop.org-совместимых меню
  • openbox: Легкий и удобно конфигурируемый менеджер окон (рекомендуемый менеджер, разработанный вне проекта LXDE).
  • pcmanfm: Файловый менеджер, функционал рабочего стола и обоев

Вам также следует установить Gamin. Gamin - это инструмент для отслеживания изменений в файлах и директориях, который является реализацией подсистемы FAM. Запуск производится по требованию программ, которые им поддерживаются, поэтому не требуется отдельно демона, подобного FAM. Если у Вас установлен FAM - удалите запуск этого демона из /etc/rc.conf и остановите его перед установкой Gamin

pacman -S gamin

Другие легковесные приложения, которые рекомендуется использовать на слабых системах:

  • leafpad: Простой и легкий текстовый редактор
  • mousepad: Простой текстовый редактор (является текстовым редактором по умолчанию среды Xfce)
  • xarchiver: Легкий архиватор
  • obconf: Инструмент для настройки тем и стилей Openbox

Запуск окружения LXDE

Есть несколько способов запустить LXDE.

Display Managers

Если Вы используете менеджеры SLiM, GDM, или KDM, в настройках сессии нужно выбрать LXDE.

Инструкция по использованию LXDM ниже на этой странице.

Если не используете менеджер дисплея приветствия добавьте

export DESKTOP_SESSION=LXDE

в ваш ~/.bash_profile Для првавильного функционирования Xdg-open

Консоль

Для использования команды startx необходимо добавить в файл ~/.xinitrc команду запуска LXDE:

exec startlxde

Если Вы хотите выполнять startx автоматически при загрузке, прочитайте статью Запуск X при загрузке.

Для других задач Вы должны быть уверены, что демон dbus запущен.

Советы и рекомендации

Автомонтирвание

PCManFM (Русский)#Работа с томами

Автозапуск программ

.desktop файлы

Вы можете скопировать ярлык программы .desktop из <code>/usr/share/applications/ в ~/.config/autostart/. Например, добавим lxterminal в автозапуск:

$ ln -s /usr/share/applications/lxterminal.desktop ~/.config/autostart/

После добавления .desktop файлов Вы можете упралять ими с помощью lxsession-editAUR.

autostart файл

Второй способ. Использование файла ~/.config/lxsession/LXDE/autostart. Этот файл не скрипт, но каждая строка представляет собой команду, которая будет выполнена, если строка начинается с символа @, команда после @ будет автоматически повторно выполняться, если она падает. Например, чтобы выполнить lxterminal и leafpad автоматически при запуске:

~/.config/lxsession/LXDE/autostart
@lxterminal @leafpad

Обратите внимание: Ппсле команды ненужно ставить символ &

Существует также глобальный файл автозапуска /etc/xdg/lxsession/LXDE/autostart. Если эти файлы присутствуют одновременно, то оба будут выполнены.

Горячие клавиши

Управление горячими клавишами осуществляется через Openbox и подробно описаны здесь. Пользователи LXDE должны следовать этим инструкциям, чтобы отредактировать файл ~/.config/openbox/lxde-rc.xml

Дополнительный графический интерфейс для редактирования горячих клавиш - obkeyAUR доступен в AUR. Поумолчанию obkey редактирует файл rc.xml, Но вы можете использовать его в LXDE таким образом:

$ obkey ~/.config/openbox/lxde-rc.xml

Больше информации о obkey здесь.

Курсоры

Полная статья: X11 Cursors.

Последний lxappearance2-gitAUR в AUR предоставляет функциональные возможности для изменения тем курсора. Если Вы не хотите устанавливать экспериментальный lxappearance2, можете указать свой курсор в файле ~/.Xdefaults. См. Configuring Cursor Themes.

Простым способом является добавление курсор к теме по умолчанию. Сначала нужно создать каталог:

# mkdir /usr/share/icons/default

Then you can specify to add to the icon theme the cursor. This will use the xcursor-bluecurve pointer theme:

/usr/share/icons/default/index.theme
[icon theme] Inherits=Bluecurve

Шрифты настройка

Для установки шрифтов, вы можете использовать lxappearance и установить основной шрифт. Для настройки других шрифтов можно использовать Openbox configuration tool ObConf:

# pacman -S obconf

Раскладка клавиатуры

udev

Когда вы используете udev, конфигурация ввода по умолчанию записываются в /etc/X11/xorg.conf.d/10-evdev.conf в <code>Section "InputClass". Вы можете редактировать этот или создать новый файл /etc/X11/xorg.conf.d/20-keyboard.conf по следующему примеру (переключение раскладки клавишами Alt+Shift, индикация CAPS-диодом на клавиатуре):

Section "InputClass" Identifier "evdev keyboard catchall" MatchIsKeyboard "on" MatchDevicePath "/dev/input/event*" Driver "evdev" Option "XkbModel" "pc104" Option "XkbLayout" "us,ru" Option "XkbOptions" "grp:alt_shift_toggle,grp_led:caps" EndSection

Вы можете найти список всех значений в /usr/share/X11/xkb/rules/base.lst.

Другие способы

1 способ: Добавьте в /etc/xdg/lxsession/LXDE/autostart следующие строки перед @lxpanel --profile LXDE:

@setxkbmap -option grp:switch,grp:alt_shift_toggle,grp_led:scroll us,ru

или в ~/.config/lxsession/LXDE/autostart (для конкретного пользователя):

setxkbmap -option grp:switch,grp:alt_shift_toggle,grp_led:scroll us,ru

2 способ: Create /etc/xdg/autostart/setxkmap.desktop as following:

[Desktop Entry] Version=1.0 Encoding=UTF-8 Name=Fix keyboard settings Exec=setxkbmap -rules xorg -layout "us,ru" -variant ",winkeys" -option "grp:ctrl_shift_toggle" Terminal=false Type=Application

3 способ: Добавьте в ~/.Xkbmap, для текущего пользователя, или в /etc/X11/Xkbmap, для всей системы, строку:

-option grp:ctrl_shift_toggle,grp_led:scroll us,ru

4 способ: Добавьте следующую строку в /etc/X11/xinit/xinitrc или ~/.xinitrc:

setxkbmap -option grp:ctrl_shift_toggle,grp_led:scroll us,ru

5 способ: Установите fbxkbAUR из AUR

6 способ: Xorg (Русский)#Переключение раскладок средствами X.org

Посредством LXDE

  1. Правый клик на панели задач
  2. “Добавить/убрать элементы панели”
  3. “Добавить”
  4. “Индикатор раскладок клавиатуры”

LXDM

LXDE теперь обеспечивает экспериментальную менеджер дисплея приветствия LXDM. Это реализовано с GTK+ и supports theming.

Установка LXDM

# pacman -S lxdm

Для автоматического запуска LXDM Вы можете редактировать /etc/inittab или <code>/etc/rc.conf. Для получения дополнительной информации см. Экранный менеджер.

Настройка

Все конфигурационные файлы для LXDM расположены в /etc/lxdm. Основной файл конфигурации <code>lxdm.conf хорошо документирован в его коментарии. Файл, Xsession, является общесистемным и не должен редактироваться. Другие файлы - это bash скрипты, которые выполняются при наступлении определенных событий в LXDM. К ним относятся:

  1. LoginReady: Выполняется с правами root когда LXDM готова показать окно входа в систему.
  2. PreLogin: Выполняется с правами root перед входом пользователя.
  3. PostLogin: Выполняется с правами авторизованного пользователя сразу после входа.
  4. PostLogout: Выполняется с правами авторизованного пользователя после выхода.
  5. PreReboot: Выполняется с правами root перед перезагрузкой компьютера с LXDM.
  6. PreShutdown: Выполняется с правами root перед выключением компьютера с LXDM.
Ожидаемое поведение после Logout

Может быть немного удивительно, что LXDM по умолчанию не очищает фон рабочего стола и не убивает процессы пользователя после его выхода. Для решения проблемы необходимо добавить в файл /etc/lxdm/PostLogout:

#!/bin/sh # Kills all your processes when you log out. killall --user $USER -TERM # Set's the desktop background to solid black. Useful if you have multiple monitors. xsetroot -solid black
Автоматический вход

Если вы хотите войти в учетную запись без ввода пароля, найдите строку в /etc/lxdm/lxdm.conf, которая выглядит следующим образом:

#autologin=username

Раскомментируйте его и подставьте нужное имя пользователя, вместо "username".

PCManFM

Если вы хотите иметь доступ к Корзине, монтированию томов и folder/file tracking Вам необходима поддержка gvfs:

pacman -S polkit-gnome gvfs

polkit-gnome обеспечивает аутентификацию и должен быть запущен при входе в систему:

$ mkdir -p ~/.config/autostart $ cp /etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop ~/.config/autostart

В Arch'е этот файл в настоящее время не работает на некоторых системах. Если у вас проблема запуском, удалите строку

OnlyShowIn=GNOME;XFCE;

из файла ~/.config/autostart/polkit-gnome-authentication-agent-1.desktop:

PCManFM @ LXDE wiki

Замена оконного менеджера

Openbox, стандартный менеджер окон LXDE, может быть заменен другими. Например fvwm, icewm, dwm, metacity, compiz ...etc.

LXDE будет пытаться использовать оконный менеджер из пользовательского фаула конфигурации lxsession ~/.config/lxsession/LXDE/desktop.conf.Если его не существует, будет пытаться использовать глобальный файл конфигурации <code>/etc/xdg/lxsession/LXDE/desktop.conf.

Замените команду openbox-lxde на ваш менеджер окон:

[Session] window_manager=openbox-lxde

Для metacity:

window_manager=metacity

Для compiz:

window_manager=compiz ccp --indirect-rendering

Выключение, Перезагрузка (LXSession-logout)

Для работы Выключения, Перезагрузки, Режима сна и Режима ожидания Должен быть запущен dbus. Должен быть установлен пакет upower.

# pacman -S upower

См. xinitrc#Preserving the session подробнее о logind/ConsoleKit.

Редактирование меню приложений

Tango-preferences-desktop-locale.png

Tango-preferences-desktop-locale.png

Эта статья или раздел нуждается в переводе

Примечания: пожалуйста, используйте первый аргумент шаблона для указания дополнительной информации. (обсуждение: Talk:LXDE (Русский)#)

(нужно проверить перевод). Ссылка на оригинал
Меню приложений работает через передачу .desktop файлов, которые расположены в <code>/usr/share/applications. Многие DE запускают программы, которые supersede эти настройки для кастомизации меню. Для LXDE еще только создают редактор меню приложений, но вы можете настроить его вручную, если нужно. Сторонние редакторы меню вы можете найти в AUR - lxmedAUR.

Чтобы добавить или редактировать элемент меню, создайте или сделайте ссылку на .desktop файл в <code>/usr/share/applications. Смотрите the desktop entry specification на freedesktop.org для получения информации о структуре .desktop файлов.

Для удаления элементов из меню вместо удаления .desktop файлов, вы можете редактировать файл элемента, добавляя следующую строку:

NoDisplay=true.

Для ускорения процесса редактирования большого числа файлов вы можете поместить их в цикл. Например:

cd /usr/share/applications for i in program1.desktop program2.desktop ...; do cp /usr/share/applications/$i \ /home/user/.local/share/applications/; echo "NoDisplay=true" >> \ /home/user/.local/share/applications/$i; done

Это будет работать для всех приложений, исключая KDE. Для них единственный путь удалить их из списка меню - зайти в KDE и использовать собственный редактор меню. Для каждого элемента, который вы не желаете лицезреть, проверьте опцию 'Show only in KDE' (отображать только в KDE). Если добавление NoDisplay=True не работает, вы можете добавить ShowOnlyIn=XFCE.

Сергей Рудюк 16 июня 2015

Расскажу об одной небольшой (~30kb) JS библиотеке для удобной работы с Google Maps API под названием gmaps.js.
Раз уж библиотека создана для ускорения процесса веб-разработки, то и я вас задерживать не буду. Как можно понять из названия, она делает не что иное, как упрощает взаимодействие с API Google Maps. Многие из вас работали с API и, вероятно, каждый раз вам приходилось попотеть, чтобы порыться в документации и реализовать, например, свое собственное описание метки на карте. Или подписаться на событие взаимодействия с картой…

Итак, она пока еще не заимела ни одной мажорной версии, а в текущий момент имеет версию 0.1.12.3. Распространяется под лицензией MIT License и разрабатывается целым сообществом (и вы тоже можете в этом помочь).

Примеры возможностей

Создание карты
<code><span class="keyword">new</span> GMaps({ div: <span class="string">'#map'</span>, lat: -<span class="number">12.043333</span>, lng: -<span class="number">77.028333</span> });</code>

А еще можно добавить опции zoom, width, height. Хотя по стандарту ширина и высотка карты будут подогнаны под контейнер.

События
<code>map = <span class="keyword">new</span> GMaps({ div: <span class="string">'#map'</span>, zoom: <span class="number">16</span>, lat: -<span class="number">12.043333</span>, lng: -<span class="number">77.028333</span>, click: <span class="keyword">function</span>(e) { alert(<span class="string">'click'</span>); }, dragend: <span class="keyword">function</span>(e) { alert(<span class="string">'dragend'</span>); } });</code>

Поддерживаются все события Maps API.

Геолокация
<code>GMaps.geolocate({ success: <span class="keyword">function</span>(position) { map.setCenter(position.coords.latitude, position.coords.longitude); }, error: <span class="keyword">function</span>(error) { alert(<span class="string">'Geolocation failed: '</span>+error.message); }, not_supported: <span class="keyword">function</span>() { alert(<span class="string">"Your browser does not support geolocation"</span>); }, always: <span class="keyword">function</span>() { alert(<span class="string">"Done!"</span>); } });</code>

Ну разве не прелесть?

Добавление маркера
<code>map.addMarker({ lat: -<span class="number">12.043333</span>, lng: -<span class="number">77.028333</span>, title: <span class="string">'Lima'</span>, click: <span class="keyword">function</span>(e) { alert(<span class="string">'You clicked in this marker'</span>); }, infoWindow: { content: <span class="string">'<p>Home, sweet home...</p>'</span> } } });</code>
И всё, всё, всё!

Библиотека поддерживает почти полный функционал Maps API, включая вывод статических карт(картинкой), наложение слоев, прокладывание маршрутов, рисование полигонов, рисование своих контролов, GeoRSS и всякое такое остальное…

Прошу ознакомиться с сайтом библиотеки: http://hpneo.github.com/gmaps/ и начинать творить.
И сразу же форкнуть репозиторий на Github: https://github.com/HPNeo/gmaps

UPD: KidsKilla подсказывает, что, в принципе, по Maps API ToS никто не имеет право создавать свои врапперы(оболочки) поверх действующего API, пока не получит официальное разрешение Гугла. (https://developers.google.com/maps/terms, пункт 10.2). На что разработчик (Gustavo Leon) ответил, что сделает две вещи: 1)запросит разрешения у гугла 2)уже открыт тикет по подключению не только Google Maps API, но и OpenStreetMap. Это же счастье!


Источник: http://habrahabr.ru/post/145152/

Сергей Рудюк 16 июня 2015

f4fd091dКартографический сервис – зачем это? Ну например, я 10 лет жил в нашей маленькой провинции, а потом взял и понаехал в Москву, и всё для меня так ново. А где магазины, боулинг, кафешки, парки отдыха – надо знать же, где тратить московскую зарплату. Но вот беда, как узнать? Раньше был справочник «Желтые страницы» и там была карта и всё по адресам. Чтобы найти что-то уходило масса времени. Сейчас стало всё в разы проще. Вот прекрасный пример: http://www.pushkino.org/. Но это далеко не всё.
Я могу отслеживать погоду, пожары, пробки (кстати!) в реальном времени.
Мой заказчик может не вводить свой адрес, а попросту отметить его на карте и я буду знать куда доставить ему товар – какое классное решение, не надо всего этого – «Проспект маршала Блюхера, 43, г. Санкт-Петербург, Россия».


Задача для примера

Всё лучше узнавать практически, так что сделаем задачу для примера, чтобы обрести навыки. Вот примерный план работ:

  1. Вывести карту (надо же!)
  2. Задать город
  3. Переместить карту к городу
  4. Маркером указать адрес
  5. Добавить информации
  6. Вывести карту (надо же!)
  7. Сохранить маркер с иноформацией (при клике на него вывести ее)
  8. Избежать нагромождения (т.е. сделать кластеризацию) маркеров.


Как делать?


Ключ API

Ключ API нужен для использования работы с картой, т.е. при запросе всех их скриптов и сервисов в параметры нужно добавлять &key=[тут наш ключ]. Впрочем для http://localhost он не нужен. Получить его надо тут: http://code.google.com/apis/maps/signup.html. Кстати, работает и без него на сайте, но может это временно.
Для v.3 не нужен

Map\Marker\InfoWindow

ca139c33Для работы нам понадобится 3 основных объекта. Первое – это карта.
Карта создается очень просто. У нас есть какой-то определенный контейнер:

<code><span class="tag"><<span class="title">div</span> <span class="attribute">id</span>=<span class="value">"map_canvas"</span>></span><span class="tag"></<span class="title">div</span>></span> </code>

Подключаем скрипт:

<code><span class="tag"><<span class="title">script</span> <span class="attribute">type</span>=<span class="value">"text/javascript"</span> <span class="attribute">src</span>=<span class="value">"http://maps.google.com/maps/api/js?sensor=false"</span>></span><span class="tag"></<span class="title">script</span>></span> </code>

Инициализируем карту:

<code><span class="function"><span class="keyword">function</span> <span class="title">initialize</span><span class="params">()</span> {</span> <span class="keyword">var</span> myLatlng = <span class="keyword">new</span> google.maps.LatLng(-<span class="number">34.397</span>, <span class="number">150.644</span>); <span class="keyword">var</span> myOptions = { zoom: <span class="number">8</span>, center: myLatlng, mapTypeId: google.maps.MapTypeId.ROADMAP } <span class="keyword">var</span> map = <span class="keyword">new</span> google.maps.Map(document.getElementById(<span class="string">"map_canvas"</span>), myOptions); } </code>

center: myLatlng – это координаты центра карты
zoom – это увеличение при инициализации
mapTypeId – тип (политическая, физическая, гибрид)
Карта готова!

Второе — это метки:

<code><span class="keyword">var</span> marker = <span class="keyword">new</span> google.maps.Marker({ position: myLatlng, map: map, title:<span class="string">"Hello World!"</span> }); </code>

position – собственно координаты метки
map – на какую карту метку поместить
title – при наведении мыши будет писать “Hello World!”.

InfoWindow

<code><span class="keyword">var</span> contentString = <span class="string">'<div id="content">Тут всё то про что должно быть рассказано</div>'</span>; <span class="keyword">var</span> infowindow = <span class="keyword">new</span> google.maps.InfoWindow({ content: contentString }); <span class="keyword">var</span> marker = <span class="keyword">new</span> google.maps.Marker({ position: myLatlng, map: map, title: <span class="string">'Uluru (Ayers Rock)'</span> }); google.maps.event.addListener(marker, <span class="string">'click'</span>, <span class="keyword">function</span>() { infowindow.open(map,marker); }); </code>

content – содержимое в метке

<code>google.maps.event.addListener(marker, <span class="string">'click'</span>, <span class="keyword">function</span>() { infowindow.open(map,marker); }); </code>

— при клике на метку, показать окно с информацией, на карте map с привязкой к marker.

Geocoding

Geocoding – это просто отличная библиотека, которая позволяет делать всего 2 вещи:

  • По наименованию чего-то, найти это на карте и сообщить координаты
  • По координатам, сообщить всё что находится на этих координатах.

Запрос выглядит так. Например, мы хотим узнать где находится Иваново. Пишем запрос:
http://maps.googleapis.com/maps/api/geocode/json?address=Иваново&sensor=false&language=ru

И в ответе приходит:

<code>{ <span class="string">"status"</span>: <span class="string">"OK"</span>, <span class="string">"results"</span>: [ { <span class="string">"types"</span>: [ <span class="string">"locality"</span>, <span class="string">"political"</span> ], <span class="string">"formatted_address"</span>: <span class="string">"город Иваново, Ивановская область, Россия"</span>, - полный адрес <span class="string">"address_components"</span>: [ { - составляющие адреса <span class="string">"long_name"</span>: <span class="string">"город Иваново"</span>, <span class="string">"short_name"</span>: <span class="string">"город Иваново"</span>, <span class="string">"types"</span>: [ <span class="string">"locality"</span>, <span class="string">"political"</span> ] }, { <span class="string">"long_name"</span>: <span class="string">"Ивановский район"</span>, <span class="string">"short_name"</span>: <span class="string">"Ивановский район"</span>, <span class="string">"types"</span>: [ <span class="string">"administrative_area_level_2"</span>, <span class="string">"political"</span> ] }, { <span class="string">"long_name"</span>: <span class="string">"Ивановская область"</span>, <span class="string">"short_name"</span>: <span class="string">"Ивановская область"</span>, <span class="string">"types"</span>: [ <span class="string">"administrative_area_level_1"</span>, <span class="string">"political"</span> ] }, { <span class="string">"long_name"</span>: <span class="string">"Россия"</span>, <span class="string">"short_name"</span>: <span class="string">"RU"</span>, <span class="string">"types"</span>: [ <span class="string">"country"</span>, <span class="string">"political"</span> ] } ], <span class="string">"geometry"</span>: { <span class="string">"location"</span>: { - местонахождение <span class="string">"lat"</span>: <span class="number">56.9924086</span>, <span class="string">"lng"</span>: <span class="number">40.9677888</span> }, <span class="string">"location_type"</span>: <span class="string">"APPROXIMATE"</span>, <span class="string">"viewport"</span>: { - размеры <span class="string">"southwest"</span>: { <span class="string">"lat"</span>: <span class="number">56.9699256</span>, <span class="string">"lng"</span>: <span class="number">40.9265167</span> }, <span class="string">"northeast"</span>: { <span class="string">"lat"</span>: <span class="number">57.0148916</span>, <span class="string">"lng"</span>: <span class="number">41.0090609</span> } }, <span class="string">"bounds"</span>: { - границы <span class="string">"southwest"</span>: { <span class="string">"lat"</span>: <span class="number">56.9699256</span>, <span class="string">"lng"</span>: <span class="number">40.9265167</span> }, <span class="string">"northeast"</span>: { <span class="string">"lat"</span>: <span class="number">57.0148916</span>, <span class="string">"lng"</span>: <span class="number">41.0090609</span> } } } } ] } </code>

Вся прелесть в том, что можно в address параметре передавать значение на любом языке(Ivanovo, Іваново, <тут была арабская вязь>), еще лучше, что для Санкт-Петербурга прокатывает «Спб» и «Питер». Правда есть и недочеты: мой родной город Ивано-Франковск упорно называет Ивано-Франковськ, на украинский манер.
Вторая возможность, это по координатам узнать адрес:

http://maps.googleapis.com/maps/api/geocode/json?latlng=55.75320193022759,37.61922086773683&sensor=false&language=ru
получаем:

<code>{ <span class="string">"status"</span>: <span class="string">"OK"</span>, <span class="string">"results"</span>: [ { <span class="string">"types"</span>: [ <span class="string">"street_address"</span> ], <span class="string">"formatted_address"</span>: <span class="string">"Красная пл., 3, город Москва, Россия, 109012"</span>, <span class="string">"address_components"</span>: [ { <span class="string">"long_name"</span>: <span class="string">"3"</span>, <span class="string">"short_name"</span>: <span class="string">"3"</span>, <span class="string">"types"</span>: [ <span class="string">"street_address"</span> ] }, { <span class="string">"long_name"</span>: <span class="string">"Красная пл."</span>, <span class="string">"short_name"</span>: <span class="string">"Красная пл."</span>, <span class="string">"types"</span>: [ <span class="string">"route"</span> ] }, { <span class="string">"long_name"</span>: <span class="string">"Тверской"</span>, <span class="string">"short_name"</span>: <span class="string">"Тверской"</span>, <span class="string">"types"</span>: [ <span class="string">"sublocality"</span>, <span class="string">"political"</span> ] }, { <span class="string">"long_name"</span>: <span class="string">"город Москва"</span>, <span class="string">"short_name"</span>: <span class="string">"город Москва"</span>, <span class="string">"types"</span>: [ <span class="string">"locality"</span>, <span class="string">"political"</span> ] }, { <span class="string">"long_name"</span>: <span class="string">"АО Центральный"</span>, <span class="string">"short_name"</span>: <span class="string">"АО Центральный"</span>, <span class="string">"types"</span>: [ <span class="string">"administrative_area_level_2"</span>, <span class="string">"political"</span> ] }, { <span class="string">"long_name"</span>: <span class="string">"Москва"</span>, <span class="string">"short_name"</span>: <span class="string">"Москва"</span>, <span class="string">"types"</span>: [ <span class="string">"administrative_area_level_1"</span>, <span class="string">"political"</span> ] }, { <span class="string">"long_name"</span>: <span class="string">"Россия"</span>, <span class="string">"short_name"</span>: <span class="string">"RU"</span>, <span class="string">"types"</span>: [ <span class="string">"country"</span>, <span class="string">"political"</span> ] }, { <span class="string">"long_name"</span>: <span class="string">"109012"</span>, <span class="string">"short_name"</span>: <span class="string">"109012"</span>, <span class="string">"types"</span>: [ <span class="string">"postal_code"</span> ] } ], <span class="string">"geometry"</span>: { <span class="string">"location"</span>: { <span class="string">"lat"</span>: <span class="number">55.7546971</span>, <span class="string">"lng"</span>: <span class="number">37.6215214</span> }, <span class="string">"location_type"</span>: <span class="string">"ROOFTOP"</span>, <span class="string">"viewport"</span>: { <span class="string">"southwest"</span>: { <span class="string">"lat"</span>: <span class="number">55.7515495</span>, <span class="string">"lng"</span>: <span class="number">37.6183738</span> }, <span class="string">"northeast"</span>: { <span class="string">"lat"</span>: <span class="number">55.7578447</span>, <span class="string">"lng"</span>: <span class="number">37.6246690</span> } } } }, { ... </code>

Супер! Для того чтобы указать свой адрес, можно просто кликнуть на свой дом, добавить квартиру – и всё. Иногда это не срабатывает, например, если дома стоят вплотную друг к другу и считываются как 1 объект, а не 2-3, адрес у них будет один. Особенно плохо, когда они находятся на пересечении улиц, и один дом относится к одной улице, а второй – к перпендикулярной, но думаю по необходимости – можно указать улицу, а дом и квартиру уже вбить. Очень удобное для смартфонов решение.
Кстати, не используйте jquery $.getJSON для получения данных, используйте класс Geocoder (http://code.google.com/apis/maps/documentation/javascript/reference.html#Geocoder), он работает лучше (т.е. это означает что getJSON у меня не работает).

А теперь о не очень хорошем. Geocoder – насколько клевая функция, что пользоваться ею можно только 2500 запросов в день. Google предлагает Google API Key Premier от 10000$ в год, и тогда ограничение будет в 100 тыс. запросов в день, причем куча всяких «клевых» дополнений, но я их не могу себе позволить.

Markercluster

Когда слишком много маркеров — это выглядит конечно ужасно. Поэтому хорошо бы делать кластеризацию всех этих маркеров. Тут на Хабре я видел уже обсуждение по этому поводу: http://habrahabr.ru/blogs/google/28621/
В общем, есть отличный инструмент (а тут их целый набор http://code.google.com/apis/maps/articles/toomanymarkers.html) который помогает сделать так, чтобы толпы маркеров не пугали нас.
До:

7e88dc86865f1474Это именно то что нам надо.
Эту библиотеку можно скачать тут: http://google-maps-utility-library-v3.googlecode.com/svn/trunk/
Как использовать.
Добавляем библиотеку

<code><span class="tag"><<span class="title">script</span> <span class="attribute">type</span>=<span class="value">"text/javascript"</span> <span class="attribute">src</span>=<span class="value">"/Media/script/map/markerclusterer_packed.js"</span>></span><span class="tag"></<span class="title">script</span>></span> </code>

Составляем массив маркеров, не добавляя в карту:

<code><span class="keyword">var</span> markers = []; <span class="keyword">var</span> marker = <span class="keyword">new</span> google.maps.Marker({ position: latlng }); markers.push(marker); markerClusterer = <span class="keyword">new</span> MarkerClusterer(_<span class="keyword">this</span>.map, markers, { maxZoom: <span class="number">13</span>, gridSize: <span class="number">50</span>, styles: <span class="literal">null</span> }); </code>

maxZoom – максимальный зум при котором мы еще группируем маркеры, дальше – уже нет.
gridSize – размер ячеек сетки, чем меньше значение, тем меньше сетка группировки
styles – дополнительные стили

Код из примера

Я не буду тут расписывать что как собрать, собственно все инструменты готовы, дам ссылки на исходники, и прокомментирую некоторые вещи.
Cерверного кода (asp.net mvc) там очень мало, всего 4 запроса:

  • собственно страница
  • получить все маркеры (в json)
  • загрузить файл (через ajaxUploader) и получить ссылку для картинки
  • сохранить в базу данных маркер (на выходе json result = ok)

Основной код jquery ( тут полностью: cocosanka.ru/media/script/map/map.js ) Там есть комментарии, и всё такое.
Некоторые функции требующие пояснения:

Вычисление значения Zoom по границам
(взято отсюда: http://groups.google.com/group/google-maps-js-api-v3/browse_thread/thread/43958790eafe037f/66e889029c555bee?fwc=2)

<code><span class="keyword">this</span>.getZoom = <span class="function"><span class="keyword">function</span> <span class="params">(bounds)</span> {</span> <span class="keyword">var</span> width = $(<span class="string">".map"</span>).width(); <span class="keyword">var</span> height = $(<span class="string">".map"</span>).height(); <span class="keyword">var</span> dlat = Math.abs(bounds.getNorthEast().lat() - bounds.getSouthWest().lat()); <span class="keyword">var</span> dlon = Math.abs(bounds.getNorthEast().lng() - bounds.getSouthWest().lng()); <span class="keyword">var</span> max = <span class="number">0</span>; <span class="keyword">if</span> (dlat > dlon) { max = dlat; } <span class="keyword">else</span> { max = dlon; } <span class="keyword">var</span> clat = Math.PI * Math.abs(bounds.getSouthWest().lat() + bounds.getNorthEast().lat()) / <span class="number">360.</span>; <span class="keyword">var</span> C = <span class="number">0.0000107288</span>; <span class="keyword">var</span> z0 = Math.ceil(Math.log(dlat / (C * height)) / Math.LN2); <span class="keyword">var</span> z1 = Math.ceil(Math.log(dlon / (C * width * Math.cos(clat))) / Math.LN2); <span class="comment">//18 – это максимальный zoom для google.maps</span> <span class="keyword">return</span> <span class="number">18</span> - ((z1 > z0) ? z1 : z0); } </code>

Функция для «прыжка» маркера:

<code><span class="keyword">this</span>.toggleBounceMarker = <span class="keyword">function</span>() { <span class="keyword">if</span> (_<span class="keyword">this</span>.setMarker.getAnimation() != <span class="literal">null</span>) { _<span class="keyword">this</span>.setMarker.setAnimation(<span class="literal">null</span>); } <span class="keyword">else</span> { _<span class="keyword">this</span>.setMarker.setAnimation(google.maps.Animation.BOUNCE); } } </code>

Получение адреса:

<code><span class="keyword">this</span>.SetAddresses = <span class="function"><span class="keyword">function</span> <span class="params">(results)</span> {</span> $(<span class="string">".address_list"</span>).show(); $(<span class="string">".address_list"</span>).empty(); <span class="keyword">var</span> addressText = _<span class="keyword">this</span>.ComposeAddress(results[<span class="number">0</span>]); ... } <span class="comment">//Составить строку адреса по первому результату </span> <span class="keyword">this</span>.ComposeAddress = <span class="function"><span class="keyword">function</span> <span class="params">(item)</span> {</span> retAddress = <span class="string">""</span>; $.each(item.address_components, <span class="function"><span class="keyword">function</span> <span class="params">(i, address_item)</span> {</span> <span class="keyword">var</span> isOk = <span class="literal">false</span>; $.each(address_item.types, <span class="function"><span class="keyword">function</span> <span class="params">(j, typeName)</span> {</span> <span class="comment">//не будем брать значения адреса улицы и локали (города) - город потом будет в administrative_level_2</span> <span class="keyword">if</span> (typeName != <span class="string">"street_address"</span> && typeName != <span class="string">"locality"</span>) { isOk = <span class="literal">true</span>; } }); <span class="keyword">if</span> (isOk) { <span class="keyword">if</span> (retAddress == <span class="string">""</span>) { retAddress = address_item.long_name; } <span class="keyword">else</span> { retAddress = retAddress + <span class="string">", "</span> + address_item.long_name; } } }); <span class="keyword">return</span> retAddress; } </code>


Итого

Google Maps API – очень классная и удобная штука, которая легка в использовании и понимании. Единственно, что плохо – так это слабое покрытие регионов в России, так что сервисам, которые предполагается использовать в глубинке google.maps пока мало интересен, а вот для больших городов (особенно Москва и Питер), а также для Украины – всё отлично.
Geocoding – очень полезная вещь и при правильном использовании может стоить тех денег, что за нее просят (ну или Microsoft или Яндекс подоспеет с аналогом уже есть. Хотя насколько я знаю, картографическая информация стоит бешеных вложений.)

Пример\исходники

На живой пример можно глянуть тут: http://cocosanka.ru/map (может перестать работать если будет достигнут лимит в Geocoding). Вводите город, потом перетаскиваете маркер, потом загружаете картинку и сохранить. При клике на маркеры выводятся картинки.

Исходники: https://bitbucket.org/chernikov/citylocator

Источник: http://habrahabr.ru/post/110460/

Сергей Рудюк 16 июня 2015

bd72073cЕсть много статей на тему знакомства с Google Map Api и Yandex Map Api, но про остальные картографические сервисы не так много практического материала. В недавнем времени работал с Api:

  1. Google map
  2. Yandex map
  3. Yahoo map
  4. Bing map
  5. OpenStreet map

И хотел обобщить работу с вышеупомянутыми сервисами, а именно инициализация карты и установление маркеров по клику мышки. Материалы в статье представлены в виде Html кода, javascript и результата — скриншота, а так же исходники на vs 2010 MVC3.

С Google map ситуация проще всего: практического материала много, мой пример выглядит следующим образом:
Html page:

<code><span class="tag"><<span class="title">script</span> <span class="attribute">type</span>=<span class="value">"text/javascript"</span> <span class="attribute">src</span>=<span class="value">"http://maps.google.com/maps/api/js?sensor=false"</span> ></span><span class="tag"></<span class="title">script</span>></span> <span class="tag"><<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"@Url.Content("</span>~/<span class="attribute">Scripts</span>/<span class="attribute">jquery-1.5.1.min.js</span>")" <span class="attribute">type</span>=<span class="value">"text/javascript"</span>></span><span class="tag"></<span class="title">script</span>></span> <span class="tag"><<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"@Url.Content("</span>~/<span class="attribute">Scripts</span>/<span class="attribute">LoadGoogle.js</span>")" <span class="attribute">type</span>=<span class="value">"text/javascript"</span>></span><span class="tag"></<span class="title">script</span>></span> <span class="tag"><<span class="title">h2</span>></span>GoogleMap<span class="tag"></<span class="title">h2</span>></span> <span class="tag"><<span class="title">div</span> <span class="attribute">id</span>=<span class="value">"map"</span> <span class="attribute">style</span>=<span class="value">"width: 1400px; height: 500px;"</span>></span><span class="tag"></<span class="title">div</span>></span> </code>

Script:

<code>$(document).ready(<span class="function"><span class="keyword">function</span> <span class="params">()</span> {</span> initialize(); }); <span class="comment">//инициализация карты в div "map"</span> <span class="function"><span class="keyword">function</span> <span class="title">initialize</span><span class="params">()</span> {</span> <span class="keyword">var</span> haightAshbury = <span class="keyword">new</span> google.maps.LatLng(<span class="number">51.0532</span>, <span class="number">31.83</span>);<span class="comment">//(долгота, широта)</span> <span class="keyword">var</span> mapOptions = { zoom: <span class="number">12</span>,<span class="comment">//масштаб</span> center: haightAshbury,<span class="comment">//позиционируем карту на заданые координаты</span> mapTypeId: google.maps.MapTypeId.TERRAIN<span class="comment">//задаем тип карты</span> }; map = <span class="keyword">new</span> google.maps.Map(document.getElementById(<span class="string">"map"</span>), mapOptions);<span class="comment">//инициализация карты</span> google.maps.event.addListener(map, <span class="string">'click'</span>, <span class="function"><span class="keyword">function</span> <span class="params">(event)</span> {</span> addMarker(event.latLng); });<span class="comment">//добавляем событие нажание мышки</span> } <span class="comment">//функция добавления маркера</span> <span class="function"><span class="keyword">function</span> <span class="title">addMarker</span><span class="params">(location)</span> {</span> <span class="keyword">var</span> shadow = <span class="keyword">new</span> google.maps.MarkerImage(<span class="string">'/Images/roles.png'</span>, <span class="keyword">new</span> google.maps.Size(<span class="number">37</span>, <span class="number">32</span>), <span class="keyword">new</span> google.maps.Point(<span class="number">0</span>, <span class="number">0</span>), <span class="keyword">new</span> google.maps.Point(<span class="number">0</span>, <span class="number">32</span>)); <span class="comment">// Теневое изображение</span> <span class="keyword">var</span> image = <span class="keyword">new</span> google.maps.MarkerImage(<span class="string">'/Images/smilies.png'</span>, <span class="keyword">new</span> google.maps.Size(<span class="number">20</span>, <span class="number">32</span>), <span class="keyword">new</span> google.maps.Point(<span class="number">0</span>, <span class="number">0</span>), <span class="keyword">new</span> google.maps.Point(<span class="number">0</span>, <span class="number">32</span>)); <span class="comment">//изображение маркера</span> marker = <span class="keyword">new</span> google.maps.Marker({ position: location, map: map, shadow: shadow, icon: image, title: <span class="string">"My title!)"</span>, zIndex: <span class="number">999</span> });<span class="comment">//добавление маркера</span> </code>

В результате получим карту Google c возможностью добавлять маркеры:

53ce9ecbДля инициализации Yandex map вам понадобится ключ доступа к сервису и следующий пример:
Html page:

<code><span class="tag"><<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"http://api-maps.yandex.ru/1.1/index.xml?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"</span> <span class="attribute">type</span>=<span class="value">"text/javascript"</span>></span><span class="tag"></<span class="title">script</span>></span> <span class="tag"><<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"@Url.Content("</span>~/<span class="attribute">Scripts</span>/<span class="attribute">jquery-1.5.1.min.js</span>")" <span class="attribute">type</span>=<span class="value">"text/javascript"</span>></span><span class="tag"></<span class="title">script</span>></span> <span class="tag"><<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"@Url.Content("</span>~/<span class="attribute">Scripts</span>/<span class="attribute">LoadYandex.js</span>")" <span class="attribute">type</span>=<span class="value">"text/javascript"</span>></span><span class="tag"></<span class="title">script</span>></span> <span class="tag"><<span class="title">h2</span>></span>YandexMap<span class="tag"></<span class="title">h2</span>></span> <span class="tag"><<span class="title">div</span> <span class="attribute">id</span>=<span class="value">"YMapsID"</span> <span class="attribute">class</span>=<span class="value">"YMaps YMaps-cursor-grab"</span> <span class="attribute">style</span>=<span class="value">"width: 1400px; height: 500px;"</span>></span> <span class="tag"></<span class="title">div</span>></span> </code>

Script:

<code>$(document).ready(<span class="function"><span class="keyword">function</span> <span class="params">()</span> {</span> initialize(); }); <span class="function"><span class="keyword">function</span> <span class="title">initialize</span><span class="params">()</span> {</span> map = <span class="keyword">new</span> YMaps.Map(document.getElementById(<span class="string">"YMapsID"</span>));<span class="comment">//инициализация карты</span> map.setCenter(<span class="keyword">new</span> YMaps.GeoPoint(<span class="number">31.87</span>, <span class="number">51.0532</span>)<span class="comment">//(широта, долгота)</span> , <span class="number">12</span> <span class="comment">//Масштаб</span> , YMaps.MapType.MAP);<span class="comment">//тип карты</span> map.addControl(<span class="keyword">new</span> YMaps.TypeControl());<span class="comment">//смена типа карты</span> map.addControl(<span class="keyword">new</span> YMaps.ToolBar());<span class="comment">//инструменты</span> map.addControl(<span class="keyword">new</span> YMaps.Zoom());<span class="comment">//смена масштаба</span> map.addControl(<span class="keyword">new</span> YMaps.MiniMap());<span class="comment">//Небольшая отображающая местоположение</span> map.addControl(<span class="keyword">new</span> YMaps.ScaleLine());<span class="comment">//Отображение масштаба</span> YMaps.Events.observe(map, map.Events.Click, <span class="function"><span class="keyword">function</span> <span class="params">(map, mEvent)</span> {</span> addMarker(mEvent.getGeoPoint()); });<span class="comment">// событие щелчка мыши на карте</span> } <span class="comment">//функция добавления маркера </span> <span class="function"><span class="keyword">function</span> <span class="title">addMarker</span><span class="params">(location)</span> {</span> <span class="keyword">var</span> geoPlacemark = <span class="keyword">new</span> YMaps.Placemark(<span class="keyword">new</span> YMaps.GeoPoint(location.__lng, location.__lat), { draggable: <span class="number">1</span> }); <span class="comment">//координаты добавления метки</span> geoPlacemark.name = <span class="string">"Название чего то"</span>; geoPlacemark.description = <span class="string">"описание чего то"</span>; map.addOverlay(geoPlacemark);<span class="comment">//добавление метки </span> } </code>

В результате получим карту Yandex c возможностью добавлять маркеры:

Яндекс картаОбратите внимание на координаты, в Google идет сначала долгота, потом широта, а в Yandex наоборот!

Пример работы с Yahoo map api:
Html page:

<code><span class="tag"><<span class="title">script</span> <span class="attribute">type</span>=<span class="value">"text/javascript"</span> <span class="attribute">src</span>=<span class="value">"http://api.maps.yahoo.com/ajaxymap?v=3.8&appid=appidhere"</span>></span><span class="tag"></<span class="title">script</span>></span> <span class="tag"><<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"@Url.Content("</span>~/<span class="attribute">Scripts</span>/<span class="attribute">LoadYahoo.js</span>")" <span class="attribute">type</span>=<span class="value">"text/javascript"</span>></span><span class="tag"></<span class="title">script</span>></span> <span class="tag"><<span class="title">body</span> <span class="attribute">onload</span>=<span class="value">"initialize_ymap()"</span>></span> <span class="tag"><<span class="title">h2</span>></span>YahooMap<span class="tag"></<span class="title">h2</span>></span> <span class="tag"><<span class="title">div</span> <span class="attribute">id</span>=<span class="value">"ymap"</span> <span class="attribute">style</span>=<span class="value">"width: 1400px;height: 500px;"</span>></span><span class="tag"></<span class="title">div</span>></span> <span class="tag"></<span class="title">body</span>></span> </code>

Script:

<code><span class="function"><span class="keyword">function</span> <span class="title">initialize_ymap</span><span class="params">()</span> {</span> <span class="keyword">var</span> yPoint = <span class="keyword">new</span> YGeoPoint(<span class="number">51.0532</span>, <span class="number">31.83</span>);<span class="comment">//(долгота, широта)</span> <span class="keyword">var</span> map = <span class="keyword">new</span> YMap(document.getElementById(<span class="string">'ymap'</span>));<span class="comment">//инициализация карты</span> map.setMapType(YAHOO_MAP_SAT);<span class="comment">//тип карты</span> map.drawZoomAndCenter(yPoint, <span class="number">6</span>);<span class="comment">//масштаб</span> map.addTypeControl();<span class="comment">//добавление контроля типа</span> YEvent.Capture(map, EventsList.MouseClick, reportPosition); <span class="comment">//событие нажатия на карте</span> <span class="comment">//функция добавления маркера</span> <span class="function"><span class="keyword">function</span> <span class="title">reportPosition</span><span class="params">(_e, _c)</span>{</span> <span class="keyword">var</span> mapmapCoordCenter = map.convertLatLonXY(map.getCenterLatLon()); <span class="comment">//переобразование координат </span> <span class="keyword">var</span> currentGeoPoint = <span class="keyword">new</span> YGeoPoint( _c.Lat, _c.Lon ); <span class="comment">//Точка куда нужно поставить маркер</span> map.addMarker(currentGeoPoint); <span class="comment">//Добавление маркера</span> } } </code>

В результате получим карту Yahoo c возможностью добавлять маркеры:

Yahoo картаДля работы с Bing map api нужно взять ключ:
www.microsoft.com/maps/developers/web.aspx
Пример работы с Bing map api:
Html page:

<code><span class="tag"><<span class="title">script</span> <span class="attribute">charset</span>=<span class="value">"UTF-8"</span> <span class="attribute">type</span>=<span class="value">"text/javascript"</span> <span class="attribute">src</span>=<span class="value">"http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"</span>></span><span class="tag"></<span class="title">script</span>></span> <span class="tag"><<span class="title">script</span> <span class="attribute">charset</span>=<span class="value">"UTF-8"</span> <span class="attribute">type</span>=<span class="value">"text/javascript"</span> <span class="attribute">src</span>=<span class="value">"https://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0&s=1"</span>></span><span class="tag"></<span class="title">script</span>></span> <span class="tag"><<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"@Url.Content("</span>~/<span class="attribute">Scripts</span>/<span class="attribute">LoadBing.js</span>")" <span class="attribute">type</span>=<span class="value">"text/javascript"</span>></span><span class="tag"></<span class="title">script</span>></span> <span class="tag"><<span class="title">body</span> <span class="attribute">onload</span>=<span class="value">"GetMap();"</span>></span> <span class="tag"><<span class="title">h2</span>></span>BingMap<span class="tag"></<span class="title">h2</span>></span> <span class="tag"><<span class="title">div</span> <span class="attribute">id</span>=<span class="value">'mapDiv'</span> <span class="attribute">style</span>=<span class="value">"position:absolute; width:1400px; height:500px;"</span>></span><span class="tag"></<span class="title">div</span>></span> <span class="tag"></<span class="title">body</span>></span> </code>

Script:

<code><span class="function"><span class="keyword">function</span> <span class="title">GetMap</span><span class="params">()</span> {</span> <span class="keyword">var</span> map = <span class="keyword">new</span> Microsoft.Maps.Map(document.getElementById(<span class="string">"mapDiv"</span>), { credentials: <span class="string">"ххххххххxxxxxxxxxxxxxxxxx"</span>,<span class="comment">//ключ</span> center: <span class="keyword">new</span> Microsoft.Maps.Location(<span class="number">51.0532</span>, <span class="number">31.83</span>),<span class="comment">//(долгота,широта)</span> mapTypeId: Microsoft.Maps.MapTypeId.road,<span class="comment">//(тип карты)</span> zoom: <span class="number">8</span><span class="comment">//масштаб</span> }); <span class="comment">//Событие на кликание мышки на карте</span> Microsoft.Maps.Events.addHandler(map, <span class="string">'click'</span>, displayLatLong); <span class="function"><span class="keyword">function</span> <span class="title">displayLatLong</span><span class="params">(e)</span> {</span> <span class="keyword">if</span> (e.targetType == <span class="string">"map"</span>) { <span class="keyword">var</span> point = <span class="keyword">new</span> Microsoft.Maps.Point(e.getX(), e.getY());<span class="comment">//координаты вставки маркера</span> <span class="keyword">var</span> loc = e.target.tryPixelToLocation(point);<span class="comment">//позиция маркера</span> <span class="keyword">var</span> pin = <span class="keyword">new</span> Microsoft.Maps.Pushpin(loc);<span class="comment">//маркер</span> map.entities.push(pin);<span class="comment">//вставляем маркер</span> } } } </code>

В результате получим карту Bing c возможностью добавлять маркеры:

Карты BindПример работы с OpenStreet map api:

Html page:

<code><span class="tag"><<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"http://www.openlayers.org/api/OpenLayers.js"</span>></span><span class="tag"></<span class="title">script</span>></span> <span class="tag"><<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"@Url.Content("</span>~/<span class="attribute">Scripts</span>/<span class="attribute">LoadOpenStreet.js</span>")" <span class="attribute">type</span>=<span class="value">"text/javascript"</span>></span><span class="tag"></<span class="title">script</span>></span> <span class="tag"><<span class="title">body</span> <span class="attribute">onload</span>=<span class="value">"GetMap();"</span>></span> <span class="tag"><<span class="title">h2</span>></span>OpenStreetMap<span class="tag"></<span class="title">h2</span>></span> <span class="tag"><<span class="title">div</span> <span class="attribute">id</span>=<span class="value">"OSMap"</span> <span class="attribute">style</span>=<span class="value">"position:absolute; width:1400px; height:500px;"</span>></span><span class="tag"></<span class="title">div</span>></span> <span class="tag"></<span class="title">body</span>></span> </code>

Script:

<code><span class="function"><span class="keyword">function</span> <span class="title">GetMap</span><span class="params">()</span> {</span> map = <span class="keyword">new</span> OpenLayers.Map(<span class="string">"OSMap"</span>);<span class="comment">//инициализация карты</span> <span class="keyword">var</span> mapnik = <span class="keyword">new</span> OpenLayers.Layer.OSM();<span class="comment">//создание слоя карты</span> map.addLayer(mapnik);<span class="comment">//добавление слоя</span> map.setCenter(<span class="keyword">new</span> OpenLayers.LonLat(<span class="number">31.83</span>, <span class="number">51.0532</span>) <span class="comment">//(широта, долгота)</span> .transform( <span class="keyword">new</span> OpenLayers.Projection(<span class="string">"EPSG:4326"</span>), <span class="comment">// переобразование в WGS 1984</span> <span class="keyword">new</span> OpenLayers.Projection(<span class="string">"EPSG:900913"</span>) <span class="comment">// переобразование проекции</span> ), <span class="number">10</span> <span class="comment">// масштаб</span> ); <span class="keyword">var</span> layerMarkers = <span class="keyword">new</span> OpenLayers.Layer.Markers(<span class="string">"Markers"</span>);<span class="comment">//создаем новый слой маркеров</span> map.addLayer(layerMarkers);<span class="comment">//добавляем этот слой к карте</span> map.events.register(<span class="string">'click'</span>, map, <span class="function"><span class="keyword">function</span> <span class="params">(e)</span> {</span> <span class="keyword">var</span> size = <span class="keyword">new</span> OpenLayers.Size(<span class="number">21</span>, <span class="number">25</span>);<span class="comment">//размер картинки для маркера</span> <span class="keyword">var</span> offset = <span class="keyword">new</span> OpenLayers.Pixel(-(size.w / <span class="number">2</span>), -size.h); <span class="comment">//смещение картинки для маркера</span> <span class="keyword">var</span> icon = <span class="keyword">new</span> OpenLayers.Icon(<span class="string">'/Images/smilies.png'</span>, size, offset);<span class="comment">//картинка для маркера</span> layerMarkers.addMarker(<span class="comment">//добавляем маркер к слою маркеров</span> <span class="keyword">new</span> OpenLayers.Marker(map.getLonLatFromViewPortPx(e.xy), <span class="comment">//координаты вставки маркера</span> icon));<span class="comment">//иконка маркера</span> }); <span class="comment">//добавление событие клика по карте</span> } </code>

В результате получим карту OpenStreet c возможностью добавлять маркеры:

OpenStreet картаВот такие интересные примеры работы с картами, думаю кому то будут полезны.

Исходники на VS2010 MVC3.

Источник: http://habrahabr.ru/post/131249/

Сергей Рудюк 16 июня 2015

Когда пользователь из-за долгого простоя терминальной сессии в XRDP "подвисает", возникает необходимость снять его сессию.

Определяем id процесса сессии:

ps aux | grep xrdp | grep sess

Снимаем необходимую сессию:

kill -9 "цифра PID"

Если пользователь "висел" в конфигураторе 1С, то 1С может начать ругаться на занятость конфигуратора. В таких случаях желательно полностью завешить xrdp под этим пользователем и завершить процессы 1С. Для этого, выполняем команды:

ps aux | grep xrdp # Теперь, снимаем процессы данного пользователя kill -9 номер процесса ps aux | grep 1C # Снимаем процессы 1С kill -9 номер процесса

Сергей Рудюк 16 июня 2015
Возникла задача вывести карту из 1С в Google. При этом, карта должна работать в 1С как в Windows так и в Linux. Желательно, в разных браузерах.

Для того, чтоб карта работала не только в Linux, но и в Windows решение должно корректно работать не только в браузере Internet Explorer, но и в Firefox.

1С выводит карты так, как выводит браузер по умолчанию для данной операционной системы. Таким образом, главное достичь корректности скрипта для вывода карты, а потом этот скрипт вставить в 1С и из неё генерировать.

Вот результат работы скрипта:

GoogleMapGoogleMap2Ниже, привожу скрипт, реализующий данное чудо. Скрипт вывожу полностью, чтоб показать, что данные могут выводиться с большим количеством координат.

<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script> <style type='text/css'> #googlemaps { height: 100%; width: 100%; position:absolute; top: 0; left: 0; z-index: 0; } </style> <script type='text/javascript'>//<![CDATA[ var VanillaRunOnDomReady = function() { var marker_start = 'index_d.png'; /* file:///home/do/cf/ */ var marker_finish = 'index_e.png'; /* file:///home/do/cf/ */ function showGoogleMaps() { var latLng = new google.maps.LatLng(48.962591,32.228793); var polylineCoords = [ new google.maps.LatLng(48.962591,32.228793), new google.maps.LatLng(48.962796,32.228678), new google.maps.LatLng(48.962985,32.228754), new google.maps.LatLng(48.963029,32.229066), new google.maps.LatLng(48.963048,32.229386), new google.maps.LatLng(48.963061,32.22969), new google.maps.LatLng(48.963118,32.230882), new google.maps.LatLng(48.963142,32.231156), new google.maps.LatLng(48.963048,32.231486), new google.maps.LatLng(48.962887,32.231714), new google.maps.LatLng(48.962766,32.231923), new google.maps.LatLng(48.962605,32.232175), new google.maps.LatLng(48.962456,32.232437), new google.maps.LatLng(48.962499,32.233061), new google.maps.LatLng(48.962575,32.233397), new google.maps.LatLng(48.962751,32.233623), new google.maps.LatLng(48.962941,32.233865), new google.maps.LatLng(48.963783,32.234955), new google.maps.LatLng(48.963927,32.235157), new google.maps.LatLng(48.964094,32.235389), new google.maps.LatLng(48.964271,32.235622), new google.maps.LatLng(48.964451,32.235859), new google.maps.LatLng(48.964811,32.236314), new google.maps.LatLng(48.964966,32.236525), new google.maps.LatLng(48.965108,32.236722), new google.maps.LatLng(48.965683,32.237541), new google.maps.LatLng(48.965874,32.237796), new google.maps.LatLng(48.966008,32.237982), new google.maps.LatLng(48.966183,32.238193), new google.maps.LatLng(48.966305,32.238397), new google.maps.LatLng(48.966446,32.238585), new google.maps.LatLng(48.966598,32.238804), new google.maps.LatLng(48.966887,32.239219), new google.maps.LatLng(48.967017,32.239412), new google.maps.LatLng(48.967168,32.239624), new google.maps.LatLng(48.967461,32.240062), new google.maps.LatLng(48.967715,32.240483), new google.maps.LatLng(48.967606,32.240749), new google.maps.LatLng(48.967451,32.240972), new google.maps.LatLng(48.967308,32.241141), new google.maps.LatLng(48.967139,32.241343), new google.maps.LatLng(48.966969,32.241564), new google.maps.LatLng(48.966848,32.241782), new google.maps.LatLng(48.966725,32.242014), new google.maps.LatLng(48.965906,32.241511), new google.maps.LatLng(48.966433,32.241634), new google.maps.LatLng(48.966626,32.241682), new google.maps.LatLng(48.966803,32.241623), new google.maps.LatLng(48.966753,32.241461), new google.maps.LatLng(48.966592,32.241603), new google.maps.LatLng(48.966487,32.241826), new google.maps.LatLng(48.966522,32.242103), new google.maps.LatLng(48.966896,32.241956), new google.maps.LatLng(48.966905,32.241676), new google.maps.LatLng(48.966786,32.241501), new google.maps.LatLng(48.966606,32.241468), new google.maps.LatLng(48.966175,32.241515), new google.maps.LatLng(48.966743,32.241343), new google.maps.LatLng(48.96658,32.241489), new google.maps.LatLng(48.966547,32.242031), new google.maps.LatLng(48.96684,32.241942), new google.maps.LatLng(48.967022,32.241974), new google.maps.LatLng(48.966072,32.241978), new google.maps.LatLng(48.966262,32.241898), new google.maps.LatLng(48.967099,32.241567), new google.maps.LatLng(48.966562,32.242103), new google.maps.LatLng(48.966548,32.242414), new google.maps.LatLng(48.966665,32.242131), new google.maps.LatLng(48.966987,32.241576), new google.maps.LatLng(48.967121,32.241385), new google.maps.LatLng(48.967279,32.241182), new google.maps.LatLng(48.967443,32.240987), new google.maps.LatLng(48.967626,32.240778), new google.maps.LatLng(48.967801,32.24063), new google.maps.LatLng(48.967994,32.240842), new google.maps.LatLng(48.968524,32.241612), new google.maps.LatLng(48.968876,32.242202), new google.maps.LatLng(48.969044,32.242505), new google.maps.LatLng(48.971172,32.244412), new google.maps.LatLng(48.971377,32.244584), new google.maps.LatLng(48.97416,32.245523), new google.maps.LatLng(48.974345,32.245601), new google.maps.LatLng(48.975208,32.246303), new google.maps.LatLng(48.97548,32.246761), new google.maps.LatLng(48.975618,32.247003), new google.maps.LatLng(48.975761,32.247247), new google.maps.LatLng(48.975901,32.247507), new google.maps.LatLng(48.976029,32.247712), new google.maps.LatLng(48.976167,32.247925), new google.maps.LatLng(48.976298,32.248145), new google.maps.LatLng(48.976546,32.248583), new google.maps.LatLng(48.976678,32.248797), new google.maps.LatLng(48.977564,32.249824), new google.maps.LatLng(48.977788,32.249976), new google.maps.LatLng(48.977971,32.250088), new google.maps.LatLng(48.978562,32.25043), new google.maps.LatLng(48.978742,32.250546), new google.maps.LatLng(48.979825,32.251229), new google.maps.LatLng(48.980977,32.251602), new google.maps.LatLng(48.982623,32.248938), new google.maps.LatLng(48.985162,32.244928), new google.maps.LatLng(48.985367,32.244593), new google.maps.LatLng(48.98557,32.244267), new google.maps.LatLng(48.985779,32.243936), new google.maps.LatLng(48.985991,32.243607), new google.maps.LatLng(48.986199,32.243281), new google.maps.LatLng(48.986611,32.242648), new google.maps.LatLng(48.986974,32.242078), new google.maps.LatLng(48.987493,32.241234), new google.maps.LatLng(48.988138,32.240233), new google.maps.LatLng(48.988864,32.239104), new google.maps.LatLng(48.989343,32.238336), new google.maps.LatLng(48.989471,32.238135), new google.maps.LatLng(48.989602,32.237931), new google.maps.LatLng(48.989735,32.237721), new google.maps.LatLng(48.989869,32.237514), new google.maps.LatLng(48.990001,32.237307), new google.maps.LatLng(48.990263,32.23689), new google.maps.LatLng(48.990395,32.236676), new google.maps.LatLng(48.99066,32.236249), new google.maps.LatLng(48.9908,32.236029), new google.maps.LatLng(48.992196,32.233886), new google.maps.LatLng(48.992609,32.233242), new google.maps.LatLng(48.994238,32.230656), new google.maps.LatLng(48.995764,32.228273), new google.maps.LatLng(48.996043,32.22783), new google.maps.LatLng(48.996868,32.226522), new google.maps.LatLng(48.997572,32.225379), new google.maps.LatLng(48.997971,32.224647), new google.maps.LatLng(48.998102,32.224403), new google.maps.LatLng(48.998506,32.22366), new google.maps.LatLng(48.999721,32.22126), new google.maps.LatLng(49.000056,32.220548), new google.maps.LatLng(49.00075,32.21915), new google.maps.LatLng(49.00086,32.218932), new google.maps.LatLng(49.000977,32.218719), new google.maps.LatLng(49.001687,32.217553), new google.maps.LatLng(49.001956,32.217194), new google.maps.LatLng(49.002096,32.217017), new google.maps.LatLng(49.002237,32.216847), new google.maps.LatLng(49.002381,32.216678), new google.maps.LatLng(49.003642,32.215375), new google.maps.LatLng(49.00577,32.213399), new google.maps.LatLng(49.005949,32.213227), new google.maps.LatLng(49.00613,32.213057), new google.maps.LatLng(49.008325,32.210972), new google.maps.LatLng(49.008504,32.210778), new google.maps.LatLng(49.008679,32.210578), new google.maps.LatLng(49.00885,32.210369), new google.maps.LatLng(49.009175,32.209922), new google.maps.LatLng(49.00933,32.209681), new google.maps.LatLng(49.009478,32.209436), new google.maps.LatLng(49.009623,32.209188), new google.maps.LatLng(49.009762,32.208937), new google.maps.LatLng(49.009899,32.208683), new google.maps.LatLng(49.010031,32.208424), new google.maps.LatLng(49.01016,32.208165), new google.maps.LatLng(49.010285,32.207907), new google.maps.LatLng(49.010407,32.207647), new google.maps.LatLng(49.010525,32.207388), new google.maps.LatLng(49.010641,32.207133), new google.maps.LatLng(49.010757,32.206873), new google.maps.LatLng(49.010874,32.206612), new google.maps.LatLng(49.010993,32.20635), new google.maps.LatLng(49.011113,32.206087), new google.maps.LatLng(49.011235,32.205825), new google.maps.LatLng(49.011357,32.205561), new google.maps.LatLng(49.01148,32.205299), new google.maps.LatLng(49.011603,32.205036), new google.maps.LatLng(49.011727,32.204768), new google.maps.LatLng(49.011851,32.204499), new google.maps.LatLng(49.011975,32.204227), new google.maps.LatLng(49.012102,32.203947), new google.maps.LatLng(49.012228,32.203667), new google.maps.LatLng(49.012357,32.203386), new google.maps.LatLng(49.012483,32.203105), new google.maps.LatLng(49.012612,32.202826), new google.maps.LatLng(49.012994,32.202004), new google.maps.LatLng(49.013119,32.201732), new google.maps.LatLng(49.013241,32.201462), new google.maps.LatLng(49.01348,32.200932), new google.maps.LatLng(49.013958,32.199894), new google.maps.LatLng(49.014079,32.199631), new google.maps.LatLng(49.014904,32.197807), new google.maps.LatLng(49.01502,32.197551), new google.maps.LatLng(49.015134,32.197298), new google.maps.LatLng(49.015248,32.197049), new google.maps.LatLng(49.015696,32.196096), new google.maps.LatLng(49.015807,32.195868), new google.maps.LatLng(49.015916,32.19564), new google.maps.LatLng(49.01602,32.195415), new google.maps.LatLng(49.016126,32.195187), new google.maps.LatLng(49.016231,32.194956), new google.maps.LatLng(49.016337,32.194725), new google.maps.LatLng(49.016439,32.194496), new google.maps.LatLng(49.017053,32.193112), new google.maps.LatLng(49.017159,32.19288), new google.maps.LatLng(49.017913,32.191206), new google.maps.LatLng(49.018237,32.190474), new google.maps.LatLng(49.018345,32.19023), new google.maps.LatLng(49.018662,32.189491), new google.maps.LatLng(49.018867,32.189004), new google.maps.LatLng(49.018963,32.188767), new google.maps.LatLng(49.01926,32.188052), new google.maps.LatLng(49.019356,32.187815), new google.maps.LatLng(49.01954,32.187353), new google.maps.LatLng(49.020177,32.185853), new google.maps.LatLng(49.020335,32.185498), new google.maps.LatLng(49.020501,32.18513), new google.maps.LatLng(49.020668,32.184748), new google.maps.LatLng(49.020804,32.184426), new google.maps.LatLng(49.020877,32.183266), new google.maps.LatLng(49.020836,32.183539), new google.maps.LatLng(49.02081,32.183824), new google.maps.LatLng(49.020755,32.184086), new google.maps.LatLng(49.01972,32.184046), new google.maps.LatLng(49.019922,32.184041), new google.maps.LatLng(49.020125,32.184052), new google.maps.LatLng(49.020377,32.184062), new google.maps.LatLng(49.020593,32.1841), new google.maps.LatLng(49.020784,32.184156), new google.maps.LatLng(49.020975,32.184069), new google.maps.LatLng(49.021076,32.183821), new google.maps.LatLng(49.021179,32.183476), new google.maps.LatLng(49.021264,32.183078), new google.maps.LatLng(49.021441,32.182096), new google.maps.LatLng(49.021507,32.181762), new google.maps.LatLng(49.021571,32.181426), new google.maps.LatLng(49.021644,32.181071), new google.maps.LatLng(49.021722,32.180709), new google.maps.LatLng(49.021791,32.180359), new google.maps.LatLng(49.021853,32.180031), new google.maps.LatLng(49.021899,32.17972), new google.maps.LatLng(49.021966,32.179406), new google.maps.LatLng(49.022038,32.179094), new google.maps.LatLng(49.022114,32.17877), new google.maps.LatLng(49.022186,32.178418), new google.maps.LatLng(49.02226,32.178035), new google.maps.LatLng(49.022343,32.17763), new google.maps.LatLng(49.022431,32.177204), new google.maps.LatLng(49.022519,32.176775), new google.maps.LatLng(49.022608,32.176344), new google.maps.LatLng(49.022695,32.175912), new google.maps.LatLng(49.022779,32.175479), new google.maps.LatLng(49.022867,32.175039), new google.maps.LatLng(49.022956,32.174604), new google.maps.LatLng(49.023045,32.174181), new google.maps.LatLng(49.023128,32.173793), new google.maps.LatLng(49.023198,32.17344), new google.maps.LatLng(49.023259,32.173107), new google.maps.LatLng(49.023336,32.172761), new google.maps.LatLng(49.023416,32.172393), new google.maps.LatLng(49.02349,32.172033), new google.maps.LatLng(49.023556,32.171711), new google.maps.LatLng(49.023617,32.171442), new google.maps.LatLng(49.023689,32.171056), new google.maps.LatLng(49.023741,32.17079), new google.maps.LatLng(49.023803,32.17049), new google.maps.LatLng(49.02387,32.170152), new google.maps.LatLng(49.023949,32.169772), new google.maps.LatLng(49.024035,32.169365), new google.maps.LatLng(49.02412,32.168957), new google.maps.LatLng(49.024212,32.16852), new google.maps.LatLng(49.024314,32.168067), new google.maps.LatLng(49.024422,32.167606), new google.maps.LatLng(49.024517,32.167122), new google.maps.LatLng(49.024603,32.166616), new google.maps.LatLng(49.024702,32.166095), new google.maps.LatLng(49.024819,32.165588), new google.maps.LatLng(49.024874,32.165324), new google.maps.LatLng(49.024927,32.165051), new google.maps.LatLng(49.024983,32.164773), new google.maps.LatLng(49.025038,32.164492), new google.maps.LatLng(49.025095,32.164209), new google.maps.LatLng(49.025154,32.163925), new google.maps.LatLng(49.025216,32.163635), new google.maps.LatLng(49.025273,32.163343), new google.maps.LatLng(49.025331,32.16305), new google.maps.LatLng(49.025391,32.162751), new google.maps.LatLng(49.025456,32.162452), new google.maps.LatLng(49.025526,32.16215), new google.maps.LatLng(49.025596,32.161846), new google.maps.LatLng(49.025666,32.161539), new google.maps.LatLng(49.025736,32.161231), new google.maps.LatLng(49.025805,32.160923), new google.maps.LatLng(49.025877,32.160613), new google.maps.LatLng(49.025952,32.160303), new google.maps.LatLng(49.026032,32.159991), new google.maps.LatLng(49.026201,32.15937), new google.maps.LatLng(49.026289,32.159063), new google.maps.LatLng(49.026379,32.158758), new google.maps.LatLng(49.026472,32.158454), new google.maps.LatLng(49.026569,32.158149), new google.maps.LatLng(49.026669,32.157845), new google.maps.LatLng(49.026878,32.157245), new google.maps.LatLng(49.026987,32.156946), new google.maps.LatLng(49.027097,32.156651), new google.maps.LatLng(49.02721,32.156356), new google.maps.LatLng(49.027323,32.156061), new google.maps.LatLng(49.027437,32.155766), new google.maps.LatLng(49.027552,32.155472), new google.maps.LatLng(49.027666,32.155176), new google.maps.LatLng(49.027782,32.154881), new google.maps.LatLng(49.027896,32.154588), new google.maps.LatLng(49.02801,32.154294), new google.maps.LatLng(49.028123,32.154001), new google.maps.LatLng(49.028235,32.153707), new google.maps.LatLng(49.028345,32.153416), new google.maps.LatLng(49.028452,32.153127), new google.maps.LatLng(49.028561,32.15284), new google.maps.LatLng(49.028669,32.152552), new google.maps.LatLng(49.028779,32.152265), new google.maps.LatLng(49.028888,32.15198), new google.maps.LatLng(49.028997,32.151694), new google.maps.LatLng(49.029106,32.15141), new google.maps.LatLng(49.029216,32.151126), new google.maps.LatLng(49.029325,32.150841), new google.maps.LatLng(49.029431,32.150555), new google.maps.LatLng(49.029538,32.150272), new google.maps.LatLng(49.029645,32.149989), new google.maps.LatLng(49.029753,32.149707), new google.maps.LatLng(49.029861,32.149425), new google.maps.LatLng(49.029969,32.149138), new google.maps.LatLng(49.030077,32.148855), new google.maps.LatLng(49.030185,32.148569), new google.maps.LatLng(49.030294,32.148281), new google.maps.LatLng(49.030403,32.147992), new google.maps.LatLng(49.030514,32.147703), new google.maps.LatLng(49.030624,32.14741), new google.maps.LatLng(49.030736,32.147118), new google.maps.LatLng(49.030849,32.146825), new google.maps.LatLng(49.03096,32.146534), new google.maps.LatLng(49.03107,32.146242), new google.maps.LatLng(49.03118,32.145951), new google.maps.LatLng(49.031512,32.145071), new google.maps.LatLng(49.031626,32.144772), new google.maps.LatLng(49.031743,32.144469), new google.maps.LatLng(49.031862,32.144163), new google.maps.LatLng(49.03198,32.143855), new google.maps.LatLng(49.0321,32.143548), new google.maps.LatLng(49.03222,32.143239), new google.maps.LatLng(49.032339,32.142931), new google.maps.LatLng(49.032457,32.14262), new google.maps.LatLng(49.032575,32.142309), new google.maps.LatLng(49.032693,32.141998), new google.maps.LatLng(49.032811,32.141687), new google.maps.LatLng(49.032929,32.141376), new google.maps.LatLng(49.033047,32.141062), new google.maps.LatLng(49.033166,32.140749), new google.maps.LatLng(49.033285,32.140435), new google.maps.LatLng(49.033524,32.139812), new google.maps.LatLng(49.033643,32.139499), new google.maps.LatLng(49.033764,32.139186), new google.maps.LatLng(49.033885,32.138872), new google.maps.LatLng(49.034005,32.13856), new google.maps.LatLng(49.034366,32.137625), new google.maps.LatLng(49.034486,32.137314), new google.maps.LatLng(49.034605,32.137001), new google.maps.LatLng(49.034724,32.136688), new google.maps.LatLng(49.034841,32.136373), new google.maps.LatLng(49.034961,32.136057), new google.maps.LatLng(49.035081,32.135742), new google.maps.LatLng(49.035203,32.135426), new google.maps.LatLng(49.035326,32.135109), new google.maps.LatLng(49.03545,32.134789), new google.maps.LatLng(49.035574,32.134468), new google.maps.LatLng(49.035698,32.134145), new google.maps.LatLng(49.035821,32.133821), new google.maps.LatLng(49.035943,32.133498), new google.maps.LatLng(49.036064,32.133173), new google.maps.LatLng(49.036186,32.132849), new google.maps.LatLng(49.036309,32.132524), new google.maps.LatLng(49.036432,32.132196), new google.maps.LatLng(49.036554,32.131874), new google.maps.LatLng(49.036679,32.131551), new google.maps.LatLng(49.036806,32.131229), new google.maps.LatLng(49.036929,32.130908), new google.maps.LatLng(49.037053,32.130589), new google.maps.LatLng(49.037175,32.13027), new google.maps.LatLng(49.037295,32.129954), new google.maps.LatLng(49.037415,32.129636), new google.maps.LatLng(49.037534,32.129318), new google.maps.LatLng(49.037656,32.128998), new google.maps.LatLng(49.037778,32.128677), new google.maps.LatLng(49.037901,32.128359), new google.maps.LatLng(49.038023,32.128043), new google.maps.LatLng(49.038145,32.12773), new google.maps.LatLng(49.038263,32.127419), new google.maps.LatLng(49.038381,32.12711), new google.maps.LatLng(49.038497,32.126807), new google.maps.LatLng(49.038612,32.126508), new google.maps.LatLng(49.038726,32.12621), new google.maps.LatLng(49.03884,32.125911), new google.maps.LatLng(49.038954,32.125612), new google.maps.LatLng(49.039069,32.125316), new google.maps.LatLng(49.039183,32.125019), new google.maps.LatLng(49.039297,32.124724), new google.maps.LatLng(49.039412,32.124429), new google.maps.LatLng(49.039525,32.124134), new google.maps.LatLng(49.039641,32.123837), new google.maps.LatLng(49.039753,32.123539), new google.maps.LatLng(49.039866,32.123242), new google.maps.LatLng(49.039977,32.122947), new google.maps.LatLng(49.040091,32.122653), new google.maps.LatLng(49.040205,32.122362), new google.maps.LatLng(49.040318,32.122073), new google.maps.LatLng(49.040428,32.12179), new google.maps.LatLng(49.040536,32.12151), new google.maps.LatLng(49.040644,32.121231), new google.maps.LatLng(49.04075,32.120954), new google.maps.LatLng(49.040855,32.120674), new google.maps.LatLng(49.040959,32.120394), new google.maps.LatLng(49.041062,32.120113), new google.maps.LatLng(49.041168,32.119832), new google.maps.LatLng(49.041381,32.119273), new google.maps.LatLng(49.041694,32.118424), new google.maps.LatLng(49.041803,32.118141), new google.maps.LatLng(49.041913,32.117862), new google.maps.LatLng(49.042027,32.117587), new google.maps.LatLng(49.042279,32.117048), new google.maps.LatLng(49.042415,32.11679), new google.maps.LatLng(49.042558,32.116546), new google.maps.LatLng(49.042713,32.116321), new google.maps.LatLng(49.042873,32.116099), new google.maps.LatLng(49.043378,32.115463), new google.maps.LatLng(49.043555,32.115269), new google.maps.LatLng(49.043737,32.115087), new google.maps.LatLng(49.043924,32.114921), new google.maps.LatLng(49.044115,32.114768), new google.maps.LatLng(49.044308,32.114626), new google.maps.LatLng(49.044492,32.114491), new google.maps.LatLng(49.044678,32.114358), new google.maps.LatLng(49.044858,32.114235), new google.maps.LatLng(49.045199,32.114014), new google.maps.LatLng(49.04585,32.113744), new google.maps.LatLng(49.046198,32.113691), new google.maps.LatLng(49.046548,32.113681), new google.maps.LatLng(49.04765,32.113859), new google.maps.LatLng(49.048754,32.113928), new google.maps.LatLng(49.049142,32.113671), new google.maps.LatLng(49.049055,32.113319), new google.maps.LatLng(49.048109,32.112472), new google.maps.LatLng(49.047923,32.11224), new google.maps.LatLng(49.047585,32.11168), new google.maps.LatLng(49.047445,32.111361), new google.maps.LatLng(49.047169,32.110746), new google.maps.LatLng(49.047033,32.110445), new google.maps.LatLng(49.046902,32.110133), new google.maps.LatLng(49.046565,32.109463), new google.maps.LatLng(49.045904,32.108419), new google.maps.LatLng(49.045677,32.108051), new google.maps.LatLng(49.045452,32.107684), new google.maps.LatLng(49.045233,32.107329), new google.maps.LatLng(49.044648,32.106415), new google.maps.LatLng(49.044273,32.105816), new google.maps.LatLng(49.044045,32.105489), new google.maps.LatLng(49.043838,32.105127), new google.maps.LatLng(49.043638,32.104796), new google.maps.LatLng(49.043433,32.104483), new google.maps.LatLng(49.043037,32.103817), new google.maps.LatLng(49.042837,32.103488), new google.maps.LatLng(49.042644,32.103165), new google.maps.LatLng(49.042494,32.102852), new google.maps.LatLng(49.042374,32.102539), new google.maps.LatLng(49.042209,32.101873), new google.maps.LatLng(49.042158,32.10155), new google.maps.LatLng(49.041991,32.101008), new google.maps.LatLng(49.041758,32.101032), new google.maps.LatLng(49.041556,32.101087), new google.maps.LatLng(49.040438,32.10129), new google.maps.LatLng(49.039856,32.101279), new google.maps.LatLng(49.039681,32.101437), new google.maps.LatLng(49.039666,32.1018), new google.maps.LatLng(49.039654,32.102144), new google.maps.LatLng(49.039673,32.102422), new google.maps.LatLng(49.039874,32.1025), new google.maps.LatLng(49.040063,32.102525), new google.maps.LatLng(49.040306,32.102538), new google.maps.LatLng(49.040514,32.102545), new google.maps.LatLng(49.040523,32.102256), new google.maps.LatLng(49.040123,32.102515), new google.maps.LatLng(49.039942,32.102576), new google.maps.LatLng(49.039759,32.10257), new google.maps.LatLng(49.039935,32.102501), new google.maps.LatLng(49.040088,32.10235), new google.maps.LatLng(49.040447,32.102369), new google.maps.LatLng(49.040291,32.102548), new google.maps.LatLng(49.039662,32.102306), new google.maps.LatLng(49.039689,32.101433), new google.maps.LatLng(49.039538,32.101266), new google.maps.LatLng(49.039311,32.101257), new google.maps.LatLng(49.039064,32.101262), new google.maps.LatLng(49.038607,32.101253), new google.maps.LatLng(49.037855,32.101233), new google.maps.LatLng(49.037391,32.101209), new google.maps.LatLng(49.037198,32.101204), new google.maps.LatLng(49.036729,32.101251), new google.maps.LatLng(49.036459,32.101293), new google.maps.LatLng(49.036143,32.101301), new google.maps.LatLng(49.035804,32.101308), new google.maps.LatLng(49.035448,32.101343), new google.maps.LatLng(49.034851,32.101443), new google.maps.LatLng(49.033128,32.101496), new google.maps.LatLng(49.032858,32.101533), new google.maps.LatLng(49.031955,32.100008), new google.maps.LatLng(49.032251,32.098835), new google.maps.LatLng(49.032448,32.098066), new google.maps.LatLng(49.032548,32.09768), new google.maps.LatLng(49.032637,32.097304), new google.maps.LatLng(49.03272,32.09703), new google.maps.LatLng(49.033,32.096863), new google.maps.LatLng(49.032878,32.097088), new google.maps.LatLng(49.032759,32.09731), new google.maps.LatLng(49.032809,32.096712), new google.maps.LatLng(49.032619,32.097413), new google.maps.LatLng(49.032134,32.101446), new google.maps.LatLng(49.032939,32.101516), new google.maps.LatLng(49.03315,32.101491), new google.maps.LatLng(49.033583,32.101482), new google.maps.LatLng(49.033813,32.101498), new google.maps.LatLng(49.03404,32.101513), new google.maps.LatLng(49.034441,32.101503), new google.maps.LatLng(49.035147,32.101335), new google.maps.LatLng(49.035391,32.101299), new google.maps.LatLng(49.036077,32.101265), new google.maps.LatLng(49.036919,32.101231), new google.maps.LatLng(49.037345,32.101215), new google.maps.LatLng(49.038898,32.101503), new google.maps.LatLng(49.038895,32.10244), new google.maps.LatLng(49.038861,32.103397), new google.maps.LatLng(49.03917,32.104903), new google.maps.LatLng(49.039385,32.104936), new google.maps.LatLng(49.039571,32.104861), new google.maps.LatLng(49.039676,32.103239), new google.maps.LatLng(49.039692,32.102943), new google.maps.LatLng(49.039715,32.102318), new google.maps.LatLng(49.039727,32.10204), new google.maps.LatLng(49.039759,32.101446), new google.maps.LatLng(49.040569,32.101328), new google.maps.LatLng(49.041717,32.101101), new google.maps.LatLng(49.0419,32.101338), new google.maps.LatLng(49.042028,32.101679), new google.maps.LatLng(49.042115,32.101932), new google.maps.LatLng(49.042199,32.102175), new google.maps.LatLng(49.042302,32.102472), new google.maps.LatLng(49.042353,32.102778), new google.maps.LatLng(49.042303,32.103983), new google.maps.LatLng(49.042224,32.104257), new google.maps.LatLng(49.042007,32.103992), new google.maps.LatLng(49.042151,32.103751), new google.maps.LatLng(49.042237,32.103999), new google.maps.LatLng(49.042354,32.103731), new google.maps.LatLng(49.04234,32.103409), new google.maps.LatLng(49.042339,32.103136), new google.maps.LatLng(49.042331,32.102834), new google.maps.LatLng(49.042282,32.102071), new google.maps.LatLng(49.042288,32.100877), new google.maps.LatLng(49.042734,32.100665), new google.maps.LatLng(49.042909,32.100573), new google.maps.LatLng(49.043772,32.100134), new google.maps.LatLng(49.044014,32.100019), new google.maps.LatLng(49.044265,32.099899), new google.maps.LatLng(49.046481,32.098897), new google.maps.LatLng(49.046761,32.098761), new google.maps.LatLng(49.047056,32.098622), new google.maps.LatLng(49.047364,32.098485), new google.maps.LatLng(49.047671,32.098338), new google.maps.LatLng(49.047978,32.098187), new google.maps.LatLng(49.04859,32.097904), new google.maps.LatLng(49.048886,32.097759), new google.maps.LatLng(49.049182,32.097632), new google.maps.LatLng(49.049489,32.097506), new google.maps.LatLng(49.050115,32.097235), new google.maps.LatLng(49.050432,32.097093), new google.maps.LatLng(49.05108,32.096794), new google.maps.LatLng(49.051408,32.096655), new google.maps.LatLng(49.051727,32.096513), new google.maps.LatLng(49.052046,32.096363), new google.maps.LatLng(49.05269,32.096067), new google.maps.LatLng(49.053343,32.095778), new google.maps.LatLng(49.053672,32.095624), new google.maps.LatLng(49.054002,32.095459), new google.maps.LatLng(49.054338,32.095275), new google.maps.LatLng(49.054507,32.095175), new google.maps.LatLng(49.054847,32.094962), new google.maps.LatLng(49.055022,32.094856), new google.maps.LatLng(49.055198,32.094751), new google.maps.LatLng(49.055371,32.094648), new google.maps.LatLng(49.055543,32.094544), new google.maps.LatLng(49.055715,32.094439), new google.maps.LatLng(49.055887,32.094331), new google.maps.LatLng(49.056061,32.094222), new google.maps.LatLng(49.056236,32.094115), new google.maps.LatLng(49.056413,32.094009), new google.maps.LatLng(49.056769,32.093791), new google.maps.LatLng(49.05695,32.093683), new google.maps.LatLng(49.057132,32.093577), new google.maps.LatLng(49.057313,32.09347), new google.maps.LatLng(49.057494,32.093362), new google.maps.LatLng(49.057677,32.093248), new google.maps.LatLng(49.057861,32.093132), new google.maps.LatLng(49.058235,32.092898), new google.maps.LatLng(49.058424,32.092782), new google.maps.LatLng(49.058609,32.092672), new google.maps.LatLng(49.0588,32.092558), new google.maps.LatLng(49.058992,32.092443), new google.maps.LatLng(49.059185,32.092329), new google.maps.LatLng(49.059379,32.092216), new google.maps.LatLng(49.059571,32.092101), new google.maps.LatLng(49.059764,32.091987), new google.maps.LatLng(49.059958,32.091871), new google.maps.LatLng(49.060152,32.091754), new google.maps.LatLng(49.060344,32.091639), new google.maps.LatLng(49.060534,32.091522), new google.maps.LatLng(49.060729,32.091411), new google.maps.LatLng(49.060922,32.091301), new google.maps.LatLng(49.061117,32.091194), new google.maps.LatLng(49.061313,32.091086), new google.maps.LatLng(49.061512,32.090979), new google.maps.LatLng(49.061712,32.090873), new google.maps.LatLng(49.061912,32.09077), new google.maps.LatLng(49.062111,32.090669), new google.maps.LatLng(49.062308,32.090565), new google.maps.LatLng(49.062504,32.090461), new google.maps.LatLng(49.062697,32.090356), new google.maps.LatLng(49.062892,32.090252), new google.maps.LatLng(49.063082,32.090152), new google.maps.LatLng(49.063271,32.090055), new google.maps.LatLng(49.063459,32.089958), new google.maps.LatLng(49.063829,32.089766), new google.maps.LatLng(49.064013,32.089669), new google.maps.LatLng(49.064196,32.089573), new google.maps.LatLng(49.064378,32.089477), new google.maps.LatLng(49.06456,32.089382), new google.maps.LatLng(49.064742,32.089285), new google.maps.LatLng(49.064922,32.089189), new google.maps.LatLng(49.065103,32.089092), new google.maps.LatLng(49.065286,32.088996), new google.maps.LatLng(49.065467,32.088902), new google.maps.LatLng(49.065644,32.088805), new google.maps.LatLng(49.065819,32.088709), new google.maps.LatLng(49.065994,32.088614), new google.maps.LatLng(49.066168,32.08852), new google.maps.LatLng(49.066515,32.088344), new google.maps.LatLng(49.066688,32.088257), new google.maps.LatLng(49.06686,32.088167), new google.maps.LatLng(49.067807,32.087668), new google.maps.LatLng(49.068062,32.087527), new google.maps.LatLng(49.068263,32.087421), new google.maps.LatLng(49.068502,32.087459), new google.maps.LatLng(49.068684,32.087543), new google.maps.LatLng(49.068929,32.087409), new google.maps.LatLng(49.069116,32.087254), new google.maps.LatLng(49.069325,32.087081), new google.maps.LatLng(49.069558,32.086885), new google.maps.LatLng(49.069809,32.086685), new google.maps.LatLng(49.070367,32.086276), new google.maps.LatLng(49.07069,32.086072), new google.maps.LatLng(49.071035,32.085878), new google.maps.LatLng(49.071214,32.085786), new google.maps.LatLng(49.071396,32.0857), new google.maps.LatLng(49.07158,32.085616), new google.maps.LatLng(49.071767,32.085531), new google.maps.LatLng(49.071955,32.085445), new google.maps.LatLng(49.072149,32.085356), new google.maps.LatLng(49.072347,32.085264), new google.maps.LatLng(49.072549,32.085167), new google.maps.LatLng(49.072754,32.085068), new google.maps.LatLng(49.073371,32.084756), new google.maps.LatLng(49.073583,32.084658), new google.maps.LatLng(49.073797,32.084555), new google.maps.LatLng(49.074013,32.084453), new google.maps.LatLng(49.074232,32.084347), new google.maps.LatLng(49.074454,32.084241), new google.maps.LatLng(49.074894,32.084027), new google.maps.LatLng(49.075117,32.083923), new google.maps.LatLng(49.075558,32.083719), new google.maps.LatLng(49.075777,32.083613), new google.maps.LatLng(49.076211,32.083393), new google.maps.LatLng(49.076425,32.083284), new google.maps.LatLng(49.077057,32.082969), new google.maps.LatLng(49.077265,32.082871), new google.maps.LatLng(49.077472,32.082778), new google.maps.LatLng(49.077685,32.082701), new google.maps.LatLng(49.077899,32.082652), new google.maps.LatLng(49.078325,32.082639), new google.maps.LatLng(49.078535,32.082688), new google.maps.LatLng(49.078743,32.08277), new google.maps.LatLng(49.078946,32.082868), new google.maps.LatLng(49.079144,32.082987), new google.maps.LatLng(49.079339,32.083117), new google.maps.LatLng(49.079534,32.083247), new google.maps.LatLng(49.079732,32.083371), new google.maps.LatLng(49.07993,32.083494), new google.maps.LatLng(49.080127,32.083617), new google.maps.LatLng(49.080323,32.083739), new google.maps.LatLng(49.080516,32.083865), new google.maps.LatLng(49.080707,32.083987), new google.maps.LatLng(49.0809,32.084109), new google.maps.LatLng(49.08109,32.084229), new google.maps.LatLng(49.081277,32.084346), new google.maps.LatLng(49.081464,32.084461), new google.maps.LatLng(49.08165,32.084575), new google.maps.LatLng(49.081837,32.084689), new google.maps.LatLng(49.082023,32.084804), new google.maps.LatLng(49.082207,32.084916), new google.maps.LatLng(49.08239,32.085024), new google.maps.LatLng(49.082571,32.085127), new google.maps.LatLng(49.082751,32.085225), new google.maps.LatLng(49.083612,32.085622), new google.maps.LatLng(49.084278,32.085597), new google.maps.LatLng(49.084567,32.08554), new google.maps.LatLng(49.084782,32.085484), new google.maps.LatLng(49.084998,32.085425), new google.maps.LatLng(49.085233,32.085373), new google.maps.LatLng(49.085494,32.085303), new google.maps.LatLng(49.085773,32.085216), new google.maps.LatLng(49.086065,32.085138), new google.maps.LatLng(49.086369,32.085072), new google.maps.LatLng(49.086695,32.085005), new google.maps.LatLng(49.087031,32.084943), new google.maps.LatLng(49.087374,32.08488), new google.maps.LatLng(49.087726,32.084807), new google.maps.LatLng(49.088077,32.084729), new google.maps.LatLng(49.088421,32.084663), new google.maps.LatLng(49.088755,32.084594), new google.maps.LatLng(49.089419,32.084456), new google.maps.LatLng(49.089756,32.084376), new google.maps.LatLng(49.090102,32.084294), new google.maps.LatLng(49.090459,32.084217), new google.maps.LatLng(49.090641,32.084182), new google.maps.LatLng(49.090823,32.084146), new google.maps.LatLng(49.091008,32.084112), new google.maps.LatLng(49.091193,32.084076), new google.maps.LatLng(49.09138,32.084036), new google.maps.LatLng(49.091569,32.083996), new google.maps.LatLng(49.091756,32.083955), new google.maps.LatLng(49.091942,32.083915), new google.maps.LatLng(49.09213,32.083876), new google.maps.LatLng(49.092318,32.083838), new google.maps.LatLng(49.092505,32.083801), new google.maps.LatLng(49.092693,32.083766), new google.maps.LatLng(49.092879,32.083729), new google.maps.LatLng(49.093063,32.083688), new google.maps.LatLng(49.093246,32.083646), new google.maps.LatLng(49.093426,32.0836), new google.maps.LatLng(49.093758,32.083493), new google.maps.LatLng(49.094081,32.08335), new google.maps.LatLng(49.094418,32.083175), new google.maps.LatLng(49.09459,32.083084), new google.maps.LatLng(49.094764,32.082993), new google.maps.LatLng(49.094939,32.082903), new google.maps.LatLng(49.095119,32.082816), new google.maps.LatLng(49.0953,32.082731), new google.maps.LatLng(49.095483,32.082646), new google.maps.LatLng(49.095668,32.082559), new google.maps.LatLng(49.095852,32.082474), new google.maps.LatLng(49.096035,32.082387), new google.maps.LatLng(49.096219,32.082303), new google.maps.LatLng(49.0964,32.08222), new google.maps.LatLng(49.09658,32.082136), new google.maps.LatLng(49.096757,32.08205), new google.maps.LatLng(49.097087,32.081882), new google.maps.LatLng(49.097391,32.081741), new google.maps.LatLng(49.097687,32.081617), new google.maps.LatLng(49.097987,32.081476), new google.maps.LatLng(49.098299,32.081323), new google.maps.LatLng(49.09862,32.081168), new google.maps.LatLng(49.098953,32.081021), new google.maps.LatLng(49.099288,32.080866), new google.maps.LatLng(49.099622,32.080699), new google.maps.LatLng(49.099794,32.080616), new google.maps.LatLng(49.099968,32.080535), new google.maps.LatLng(49.100143,32.080455), new google.maps.LatLng(49.100319,32.080373), new google.maps.LatLng(49.100497,32.08029), new google.maps.LatLng(49.100675,32.080207), new google.maps.LatLng(49.100854,32.080125), new google.maps.LatLng(49.101034,32.080044), new google.maps.LatLng(49.101212,32.079964), new google.maps.LatLng(49.101391,32.079883), new google.maps.LatLng(49.101568,32.079804), new google.maps.LatLng(49.101903,32.079641), new google.maps.LatLng(49.102217,32.079491), new google.maps.LatLng(49.10253,32.079356), new google.maps.LatLng(49.102842,32.079213), new google.maps.LatLng(49.103148,32.079068), new google.maps.LatLng(49.103445,32.078932), new google.maps.LatLng(49.103744,32.07879), new google.maps.LatLng(49.104027,32.078657), new google.maps.LatLng(49.104308,32.07854), new google.maps.LatLng(49.104595,32.078409), new google.maps.LatLng(49.104881,32.078269), new google.maps.LatLng(49.105162,32.078122), new google.maps.LatLng(49.105449,32.077982), new google.maps.LatLng(49.105748,32.077839), new google.maps.LatLng(49.106066,32.077691), new google.maps.LatLng(49.106391,32.077536), new google.maps.LatLng(49.10673,32.077371), new google.maps.LatLng(49.106901,32.077286), new google.maps.LatLng(49.107074,32.077201), new google.maps.LatLng(49.107247,32.077116), new google.maps.LatLng(49.107588,32.07695), new google.maps.LatLng(49.107924,32.076789), new google.maps.LatLng(49.108249,32.076631), new google.maps.LatLng(49.108554,32.076492), new google.maps.LatLng(49.109103,32.076246), new google.maps.LatLng(49.109643,32.075998), new google.maps.LatLng(49.109928,32.075867), new google.maps.LatLng(49.110213,32.075732), new google.maps.LatLng(49.110494,32.075594), new google.maps.LatLng(49.110776,32.075456), new google.maps.LatLng(49.111061,32.075312), new google.maps.LatLng(49.111335,32.075181), new google.maps.LatLng(49.111593,32.075059), new google.maps.LatLng(49.111844,32.074938), new google.maps.LatLng(49.112337,32.07468), new google.maps.LatLng(49.112584,32.074555), new google.maps.LatLng(49.112836,32.074433), new google.maps.LatLng(49.113095,32.074307), new google.maps.LatLng(49.113629,32.074044), new google.maps.LatLng(49.113908,32.073908), new google.maps.LatLng(49.114192,32.073774), new google.maps.LatLng(49.114486,32.073632), new google.maps.LatLng(49.114786,32.073486), new google.maps.LatLng(49.115361,32.073222), new google.maps.LatLng(49.115627,32.07309), new google.maps.LatLng(49.11589,32.072959), new google.maps.LatLng(49.116153,32.072833), new google.maps.LatLng(49.116955,32.072455), new google.maps.LatLng(49.117195,32.072346), new google.maps.LatLng(49.117437,32.072233), new google.maps.LatLng(49.117692,32.072102), new google.maps.LatLng(49.118226,32.071841), new google.maps.LatLng(49.11849,32.071721), new google.maps.LatLng(49.118752,32.071602), new google.maps.LatLng(49.119021,32.071474), new google.maps.LatLng(49.119296,32.071337), new google.maps.LatLng(49.119583,32.071195), new google.maps.LatLng(49.119888,32.071065), new google.maps.LatLng(49.120201,32.070934), new google.maps.LatLng(49.120809,32.070679), new google.maps.LatLng(49.121102,32.070556), new google.maps.LatLng(49.121401,32.070431), new google.maps.LatLng(49.121712,32.070311), new google.maps.LatLng(49.122028,32.070199), new google.maps.LatLng(49.122348,32.0701), new google.maps.LatLng(49.12302,32.069926), new google.maps.LatLng(49.123685,32.069761), new google.maps.LatLng(49.124005,32.069636), new google.maps.LatLng(49.124318,32.069433), new google.maps.LatLng(49.124612,32.069144), new google.maps.LatLng(49.125123,32.068364), new google.maps.LatLng(49.126157,32.06671), new google.maps.LatLng(49.126283,32.066508), new google.maps.LatLng(49.126411,32.06631), new google.maps.LatLng(49.126916,32.065504), new google.maps.LatLng(49.127043,32.065299), new google.maps.LatLng(49.127577,32.06453), new google.maps.LatLng(49.127719,32.064354), new google.maps.LatLng(49.127861,32.064176), new google.maps.LatLng(49.128007,32.064004), new google.maps.LatLng(49.128314,32.06367), new google.maps.LatLng(49.128473,32.063501), new google.maps.LatLng(49.128635,32.063333), new google.maps.LatLng(49.128797,32.063157), new google.maps.LatLng(49.128955,32.062977), new google.maps.LatLng(49.129113,32.062795), new google.maps.LatLng(49.129272,32.062614), new google.maps.LatLng(49.129433,32.062433), new google.maps.LatLng(49.129594,32.062254), new google.maps.LatLng(49.129756,32.062075), new google.maps.LatLng(49.129919,32.061896), new google.maps.LatLng(49.13008,32.061718), new google.maps.LatLng(49.13024,32.06154), new google.maps.LatLng(49.130398,32.061359), new google.maps.LatLng(49.13055,32.061176), new google.maps.LatLng(49.130701,32.060994), new google.maps.LatLng(49.130972,32.060681), new google.maps.LatLng(49.131216,32.060403), new google.maps.LatLng(49.131466,32.060126), new google.maps.LatLng(49.131719,32.059834), new google.maps.LatLng(49.131976,32.059546), new google.maps.LatLng(49.132767,32.058646), new google.maps.LatLng(49.133033,32.058338), new google.maps.LatLng(49.133302,32.058032), new google.maps.LatLng(49.133568,32.057729), new google.maps.LatLng(49.133839,32.057429), new google.maps.LatLng(49.134116,32.057125), new google.maps.LatLng(49.134398,32.056809), new google.maps.LatLng(49.134683,32.056481), new google.maps.LatLng(49.13483,32.056319), new google.maps.LatLng(49.134978,32.056157), new google.maps.LatLng(49.135127,32.055996), new google.maps.LatLng(49.135274,32.055832), new google.maps.LatLng(49.13542,32.055669), new google.maps.LatLng(49.135704,32.055347), new google.maps.LatLng(49.135978,32.055026), new google.maps.LatLng(49.136255,32.054708), new google.maps.LatLng(49.136536,32.054392), new google.maps.LatLng(49.136817,32.054068), new google.maps.LatLng(49.137097,32.053747), new google.maps.LatLng(49.137379,32.053425), new google.maps.LatLng(49.137658,32.053117), new google.maps.LatLng(49.137929,32.052814), new google.maps.LatLng(49.138197,32.052502), new google.maps.LatLng(49.138467,32.052178), new google.maps.LatLng(49.13874,32.051876), new google.maps.LatLng(49.138971,32.051614), new google.maps.LatLng(49.139205,32.051344), new google.maps.LatLng(49.139448,32.051048), new google.maps.LatLng(49.139706,32.050755), new google.maps.LatLng(49.139968,32.050453), new google.maps.LatLng(49.140239,32.050145), new google.maps.LatLng(49.140507,32.049832), new google.maps.LatLng(49.140774,32.049531), new google.maps.LatLng(49.141036,32.049234), new google.maps.LatLng(49.141298,32.048936), new google.maps.LatLng(49.141561,32.048637), new google.maps.LatLng(49.141832,32.048341), new google.maps.LatLng(49.14209,32.048047), new google.maps.LatLng(49.142339,32.047763), new google.maps.LatLng(49.142585,32.047473), new google.maps.LatLng(49.142836,32.047171), new google.maps.LatLng(49.143099,32.046873), new google.maps.LatLng(49.143372,32.046575), new google.maps.LatLng(49.143635,32.04627), new google.maps.LatLng(49.143892,32.045965), new google.maps.LatLng(49.144146,32.045669), new google.maps.LatLng(49.144403,32.045372), new google.maps.LatLng(49.144657,32.045074), new google.maps.LatLng(49.144915,32.044775), new google.maps.LatLng(49.145178,32.04448), new google.maps.LatLng(49.145447,32.044175), new google.maps.LatLng(49.145724,32.043852), new google.maps.LatLng(49.146,32.043526), new google.maps.LatLng(49.146281,32.043215), new google.maps.LatLng(49.146561,32.042909), new google.maps.LatLng(49.146844,32.042606), new google.maps.LatLng(49.147125,32.042297), new google.maps.LatLng(49.147404,32.041983), new google.maps.LatLng(49.147683,32.041665), new google.maps.LatLng(49.147958,32.04134), new google.maps.LatLng(49.148239,32.041012), new google.maps.LatLng(49.14852,32.040684), new google.maps.LatLng(49.148793,32.040369), new google.maps.LatLng(49.149025,32.040097), new google.maps.LatLng(49.149233,32.039859), new google.maps.LatLng(49.1494,32.039659), new google.maps.LatLng(49.149548,32.039479), new google.maps.LatLng(49.149769,32.039244), new google.maps.LatLng(49.149991,32.03903), new google.maps.LatLng(49.150149,32.038847), new google.maps.LatLng(49.150326,32.038648), new google.maps.LatLng(49.150518,32.038419), new google.maps.LatLng(49.150727,32.03817), new google.maps.LatLng(49.150954,32.037904), new google.maps.LatLng(49.151193,32.037628), new google.maps.LatLng(49.151439,32.037356), new google.maps.LatLng(49.151688,32.037071), new google.maps.LatLng(49.151946,32.03676), new google.maps.LatLng(49.152225,32.036435), new google.maps.LatLng(49.15237,32.036266), new google.maps.LatLng(49.152517,32.036094), new google.maps.LatLng(49.152814,32.035753), new google.maps.LatLng(49.153384,32.035099), new google.maps.LatLng(49.15365,32.034787), new google.maps.LatLng(49.153913,32.034481), new google.maps.LatLng(49.154173,32.034183), new google.maps.LatLng(49.154435,32.033882), new google.maps.LatLng(49.154713,32.033568), new google.maps.LatLng(49.155152,32.033068), new google.maps.LatLng(49.155303,32.032897), new google.maps.LatLng(49.15607,32.032012), new google.maps.LatLng(49.156222,32.031835), new google.maps.LatLng(49.15637,32.031662), new google.maps.LatLng(49.156518,32.031493), new google.maps.LatLng(49.156945,32.030997), new google.maps.LatLng(49.157229,32.030667), new google.maps.LatLng(49.157508,32.030345), new google.maps.LatLng(49.157794,32.030022), new google.maps.LatLng(49.158076,32.029703), new google.maps.LatLng(49.158354,32.029383), new google.maps.LatLng(49.158898,32.028761), new google.maps.LatLng(49.159172,32.028451), new google.maps.LatLng(49.159447,32.028128), new google.maps.LatLng(49.15973,32.027792), new google.maps.LatLng(49.159874,32.027621), new google.maps.LatLng(49.160018,32.027448), new google.maps.LatLng(49.16016,32.027275), new google.maps.LatLng(49.16073,32.026629), new google.maps.LatLng(49.161005,32.026307), new google.maps.LatLng(49.16128,32.025984), new google.maps.LatLng(49.161561,32.025667), new google.maps.LatLng(49.162387,32.024735), new google.maps.LatLng(49.162646,32.024437), new google.maps.LatLng(49.1629,32.024139), new google.maps.LatLng(49.163164,32.02383), new google.maps.LatLng(49.163424,32.023519), new google.maps.LatLng(49.163667,32.02323), new google.maps.LatLng(49.163888,32.022976), new google.maps.LatLng(49.16409,32.022744), new google.maps.LatLng(49.164818,32.021903), new google.maps.LatLng(49.165001,32.021689), new google.maps.LatLng(49.16536,32.02129), new google.maps.LatLng(49.165542,32.021094), new google.maps.LatLng(49.165885,32.020677), new google.maps.LatLng(49.166217,32.020296), new google.maps.LatLng(49.166702,32.019736), new google.maps.LatLng(49.167025,32.019361), new google.maps.LatLng(49.167184,32.019146), new google.maps.LatLng(49.167687,32.018663), new google.maps.LatLng(49.167859,32.018511), new google.maps.LatLng(49.168062,32.01833), new google.maps.LatLng(49.168986,32.017507), new google.maps.LatLng(49.169711,32.016873), new google.maps.LatLng(49.169881,32.016736), new google.maps.LatLng(49.170058,32.016604), new google.maps.LatLng(49.170238,32.016459), new google.maps.LatLng(49.170426,32.016294), new google.maps.LatLng(49.17061,32.016117), new google.maps.LatLng(49.171117,32.015474), new google.maps.LatLng(49.171272,32.015215), new google.maps.LatLng(49.171431,32.014946), new google.maps.LatLng(49.171599,32.014675), new google.maps.LatLng(49.17173,32.014411), new google.maps.LatLng(49.171902,32.014146), new google.maps.LatLng(49.172084,32.013883), new google.maps.LatLng(49.172839,32.012832), new google.maps.LatLng(49.174224,32.011286), new google.maps.LatLng(49.17442,32.011073), new google.maps.LatLng(49.174616,32.010858), new google.maps.LatLng(49.174815,32.010641), new google.maps.LatLng(49.175011,32.01042), new google.maps.LatLng(49.175207,32.010202), new google.maps.LatLng(49.175404,32.009984), new google.maps.LatLng(49.175597,32.00977), new google.maps.LatLng(49.17579,32.009555), new google.maps.LatLng(49.17598,32.009338), new google.maps.LatLng(49.176166,32.009125), new google.maps.LatLng(49.176352,32.008915), new google.maps.LatLng(49.176536,32.008707), new google.maps.LatLng(49.17672,32.0085), new google.maps.LatLng(49.176903,32.008296), new google.maps.LatLng(49.177086,32.008093), new google.maps.LatLng(49.17727,32.007886), new google.maps.LatLng(49.177455,32.007684), new google.maps.LatLng(49.177994,32.007068), new google.maps.LatLng(49.178169,32.006855), new google.maps.LatLng(49.178503,32.006361), new google.maps.LatLng(49.178659,32.006087), new google.maps.LatLng(49.178798,32.00579), new google.maps.LatLng(49.179135,32.004827), new google.maps.LatLng(49.179234,32.004064), new google.maps.LatLng(49.179256,32.003268), new google.maps.LatLng(49.179259,32.002874), new google.maps.LatLng(49.179277,32.002088), new google.maps.LatLng(49.179296,32.001705), new google.maps.LatLng(49.179321,32.00132), new google.maps.LatLng(49.17935,32.000935), new google.maps.LatLng(49.179375,32.000549), new google.maps.LatLng(49.179402,32.00016), new google.maps.LatLng(49.179593,31.998185), new google.maps.LatLng(49.17965,31.997783), new google.maps.LatLng(49.179708,31.997378), new google.maps.LatLng(49.179769,31.996974), new google.maps.LatLng(49.179832,31.996573), new google.maps.LatLng(49.179952,31.995778), new google.maps.LatLng(49.180009,31.995387), new google.maps.LatLng(49.180063,31.995003), new google.maps.LatLng(49.180251,31.993483), new google.maps.LatLng(49.180301,31.993105), new google.maps.LatLng(49.180721,31.985904), new google.maps.LatLng(49.180713,31.98439), new google.maps.LatLng(49.180705,31.983227), new google.maps.LatLng(49.180703,31.982836), new google.maps.LatLng(49.180709,31.982047), new google.maps.LatLng(49.181125,31.975838), new google.maps.LatLng(49.181171,31.975427), new google.maps.LatLng(49.181304,31.974389), new google.maps.LatLng(49.181346,31.974104), new google.maps.LatLng(49.181372,31.972385), new google.maps.LatLng(49.18135,31.971403), new google.maps.LatLng(49.181354,31.971121), new google.maps.LatLng(49.181354,31.970829), new google.maps.LatLng(49.181317,31.968965), new google.maps.LatLng(49.181314,31.968656), new google.maps.LatLng(49.181335,31.968008), new google.maps.LatLng(49.181337,31.967671), new google.maps.LatLng(49.181339,31.967328), new google.maps.LatLng(49.181338,31.966986), new google.maps.LatLng(49.181337,31.964699), new google.maps.LatLng(49.181478,31.963818), new google.maps.LatLng(49.182866,31.959473), new google.maps.LatLng(49.183309,31.957911), new google.maps.LatLng(49.183644,31.956529), new google.maps.LatLng(49.183779,31.956065), new google.maps.LatLng(49.183949,31.955625), new google.maps.LatLng(49.184407,31.954853), new google.maps.LatLng(49.184676,31.95453), new google.maps.LatLng(49.18496,31.954228), new google.maps.LatLng(49.185267,31.953952), new google.maps.LatLng(49.185578,31.953676), new google.maps.LatLng(49.185735,31.953531), new google.maps.LatLng(49.186049,31.95323), new google.maps.LatLng(49.18621,31.95308), new google.maps.LatLng(49.186372,31.952925), new google.maps.LatLng(49.186689,31.952616), new google.maps.LatLng(49.186844,31.952458), new google.maps.LatLng(49.187,31.952294), new google.maps.LatLng(49.187161,31.952129), new google.maps.LatLng(49.187489,31.951787), new google.maps.LatLng(49.187655,31.951611), new google.maps.LatLng(49.18782,31.951432), new google.maps.LatLng(49.187981,31.951253), new google.maps.LatLng(49.188144,31.951075), new google.maps.LatLng(49.188474,31.950718), new google.maps.LatLng(49.189107,31.950027), new google.maps.LatLng(49.189374,31.949749), new google.maps.LatLng(49.190864,31.948129), new google.maps.LatLng(49.191013,31.94797), new google.maps.LatLng(49.191299,31.947663), new google.maps.LatLng(49.191566,31.947364), new google.maps.LatLng(49.191838,31.947077), new google.maps.LatLng(49.19211,31.946789), new google.maps.LatLng(49.192847,31.945956), new google.maps.LatLng(49.193207,31.945555), new google.maps.LatLng(49.193575,31.945197), new google.maps.LatLng(49.194088,31.944626), new google.maps.LatLng(49.194464,31.944305), new google.maps.LatLng(49.195454,31.943193), new google.maps.LatLng(49.195789,31.94285), new google.maps.LatLng(49.196123,31.942465), new google.maps.LatLng(49.19672,31.941788), new google.maps.LatLng(49.197219,31.941279), new google.maps.LatLng(49.197403,31.941098), new google.maps.LatLng(49.197575,31.940915), new google.maps.LatLng(49.198123,31.940321), new google.maps.LatLng(49.198282,31.940148), new google.maps.LatLng(49.199347,31.939009), new google.maps.LatLng(49.201842,31.936256), new google.maps.LatLng(49.202672,31.935329), new google.maps.LatLng(49.20288,31.935116), new google.maps.LatLng(49.203061,31.934944), new google.maps.LatLng(49.203572,31.934407), new google.maps.LatLng(49.204649,31.933267), new google.maps.LatLng(49.205043,31.932859), new google.maps.LatLng(49.205199,31.93268), new google.maps.LatLng(49.206695,31.931031), new google.maps.LatLng(49.206977,31.930733), new google.maps.LatLng(49.207269,31.930415), new google.maps.LatLng(49.207421,31.930251), new google.maps.LatLng(49.207579,31.93008), new google.maps.LatLng(49.207743,31.929906), new google.maps.LatLng(49.2086,31.92899), new google.maps.LatLng(49.208758,31.928817), new google.maps.LatLng(49.209067,31.928469), new google.maps.LatLng(49.209224,31.928287), new google.maps.LatLng(49.209387,31.928102), new google.maps.LatLng(49.209556,31.927917), new google.maps.LatLng(49.209728,31.92773), new google.maps.LatLng(49.209902,31.927541), new google.maps.LatLng(49.210075,31.927355), new google.maps.LatLng(49.210247,31.927171), new google.maps.LatLng(49.210417,31.926987), new google.maps.LatLng(49.210588,31.926803), new google.maps.LatLng(49.210757,31.926619), new google.maps.LatLng(49.210923,31.926441), new google.maps.LatLng(49.211346,31.926004), new google.maps.LatLng(49.211559,31.925794), new google.maps.LatLng(49.211737,31.925617), new google.maps.LatLng(49.212081,31.925246), new google.maps.LatLng(49.21238,31.92491), new google.maps.LatLng(49.212728,31.924509), new google.maps.LatLng(49.213578,31.923472), new google.maps.LatLng(49.213732,31.923301), new google.maps.LatLng(49.214071,31.922934), new google.maps.LatLng(49.214259,31.922726), new google.maps.LatLng(49.214701,31.92225), new google.maps.LatLng(49.214953,31.921987), new google.maps.LatLng(49.215214,31.921707), new google.maps.LatLng(49.215474,31.921436), new google.maps.LatLng(49.215724,31.921172), new google.maps.LatLng(49.216178,31.920731), new google.maps.LatLng(49.216388,31.920513), new google.maps.LatLng(49.216596,31.920302), new google.maps.LatLng(49.216815,31.920105), new google.maps.LatLng(49.217198,31.919722), new google.maps.LatLng(49.21752,31.919389), new google.maps.LatLng(49.217729,31.919164), new google.maps.LatLng(49.217916,31.918966), new google.maps.LatLng(49.21806,31.918787), new google.maps.LatLng(49.21823,31.918606), new google.maps.LatLng(49.218454,31.918409), new google.maps.LatLng(49.218682,31.918184), new google.maps.LatLng(49.218844,31.91801), new google.maps.LatLng(49.219022,31.917814), new google.maps.LatLng(49.219206,31.917592), new google.maps.LatLng(49.219565,31.917172), new google.maps.LatLng(49.219933,31.916746), new google.maps.LatLng(49.220126,31.916523), new google.maps.LatLng(49.220325,31.91629), new google.maps.LatLng(49.220763,31.915779), new google.maps.LatLng(49.221009,31.91549), new google.maps.LatLng(49.221789,31.914594), new google.maps.LatLng(49.222229,31.914079), new google.maps.LatLng(49.222456,31.913816), new google.maps.LatLng(49.223197,31.912938), new google.maps.LatLng(49.224003,31.91202), new google.maps.LatLng(49.225699,31.910208), new google.maps.LatLng(49.227425,31.908419), new google.maps.LatLng(49.228487,31.907131), new google.maps.LatLng(49.229286,31.906134), new google.maps.LatLng(49.229512,31.905864), new google.maps.LatLng(49.229742,31.905603), new google.maps.LatLng(49.229964,31.905345), new google.maps.LatLng(49.230178,31.905084), new google.maps.LatLng(49.230393,31.904841), new google.maps.LatLng(49.23152,31.903942), new google.maps.LatLng(49.231784,31.903782), new google.maps.LatLng(49.23317,31.903135), new google.maps.LatLng(49.233718,31.902917), new google.maps.LatLng(49.23423,31.902615), new google.maps.LatLng(49.234463,31.902444), new google.maps.LatLng(49.236432,31.900837), new google.maps.LatLng(49.236531,31.900605), new google.maps.LatLng(49.236634,31.900372), new google.maps.LatLng(49.236727,31.900125), new google.maps.LatLng(49.23685,31.899806), new google.maps.LatLng(49.23697,31.899461), new google.maps.LatLng(49.237077,31.899114), new google.maps.LatLng(49.237183,31.898765), new google.maps.LatLng(49.237255,31.898509), new google.maps.LatLng(49.237306,31.898219), new google.maps.LatLng(49.237322,31.897894), new google.maps.LatLng(49.237313,31.897563), new google.maps.LatLng(49.23729,31.897241), new google.maps.LatLng(49.237287,31.896925), new google.maps.LatLng(49.237294,31.896564), new google.maps.LatLng(49.237296,31.896185), new google.maps.LatLng(49.237287,31.895777), new google.maps.LatLng(49.237273,31.895331), new google.maps.LatLng(49.237254,31.894861), new google.maps.LatLng(49.237222,31.894379), new google.maps.LatLng(49.237181,31.893903), new google.maps.LatLng(49.237143,31.89343), new google.maps.LatLng(49.237054,31.892101), new google.maps.LatLng(49.237041,31.891709), new google.maps.LatLng(49.237033,31.891316), new google.maps.LatLng(49.237047,31.89092), new google.maps.LatLng(49.237073,31.890523), new google.maps.LatLng(49.2371,31.890131), new google.maps.LatLng(49.237133,31.88975), new google.maps.LatLng(49.237157,31.889376), new google.maps.LatLng(49.237179,31.889003), new google.maps.LatLng(49.237229,31.88839), new google.maps.LatLng(49.237352,31.888046), new google.maps.LatLng(49.237483,31.887828), new google.maps.LatLng(49.237689,31.886754), new google.maps.LatLng(49.23765,31.886404), new google.maps.LatLng(49.237621,31.886122), new google.maps.LatLng(49.23753,31.885256), new google.maps.LatLng(49.237502,31.884978), new google.maps.LatLng(49.237471,31.884677), new google.maps.LatLng(49.237438,31.884355), new google.maps.LatLng(49.237414,31.884055), new google.maps.LatLng(49.237338,31.883411), new google.maps.LatLng(49.238712,31.883528), new google.maps.LatLng(49.238938,31.883619), new google.maps.LatLng(49.239626,31.883643), new google.maps.LatLng(49.23984,31.88363), new google.maps.LatLng(49.24008,31.883634), new google.maps.LatLng(49.242361,31.883236), new google.maps.LatLng(49.244078,31.882537), new google.maps.LatLng(49.244288,31.882671), new google.maps.LatLng(49.24447,31.882735), new google.maps.LatLng(49.244672,31.882802), new google.maps.LatLng(49.244879,31.882877), new google.maps.LatLng(49.245084,31.882954), new google.maps.LatLng(49.245298,31.882994), new google.maps.LatLng(49.245512,31.882944), new google.maps.LatLng(49.24642,31.882388), new google.maps.LatLng(49.246889,31.882062), new google.maps.LatLng(49.2504,31.883196), new google.maps.LatLng(49.250811,31.88346), new google.maps.LatLng(49.251052,31.883594), new google.maps.LatLng(49.251317,31.883702), new google.maps.LatLng(49.25151,31.883786), new google.maps.LatLng(49.251741,31.883889), new google.maps.LatLng(49.251964,31.884014), new google.maps.LatLng(49.252189,31.884127), new google.maps.LatLng(49.252403,31.884231), new google.maps.LatLng(49.252612,31.884335), new google.maps.LatLng(49.25282,31.884438), new google.maps.LatLng(49.253015,31.884537), new google.maps.LatLng(49.253201,31.884633), new google.maps.LatLng(49.253381,31.884729), new google.maps.LatLng(49.253559,31.884816), new google.maps.LatLng(49.253796,31.884939), new google.maps.LatLng(49.254367,31.885254), new google.maps.LatLng(49.254583,31.88537), new google.maps.LatLng(49.254821,31.885468), new google.maps.LatLng(49.255211,31.885646), new google.maps.LatLng(49.257274,31.886699), new google.maps.LatLng(49.257493,31.88679), new google.maps.LatLng(49.257905,31.886839), new google.maps.LatLng(49.258102,31.886718), new google.maps.LatLng(49.258727,31.885742), new google.maps.LatLng(49.25888,31.885479), new google.maps.LatLng(49.259012,31.885236), new google.maps.LatLng(49.25927,31.884766), new google.maps.LatLng(49.259374,31.884519), new google.maps.LatLng(49.259525,31.884209), new google.maps.LatLng(49.259624,31.883947), new google.maps.LatLng(49.259755,31.883635), new google.maps.LatLng(49.260134,31.882674), new google.maps.LatLng(49.260276,31.882344), new google.maps.LatLng(49.260414,31.882074), new google.maps.LatLng(49.260807,31.881153), new google.maps.LatLng(49.261093,31.880488), new google.maps.LatLng(49.261437,31.879761), new google.maps.LatLng(49.263577,31.876563), new google.maps.LatLng(49.263761,31.8763), new google.maps.LatLng(49.264144,31.875759), new google.maps.LatLng(49.264508,31.875231), new google.maps.LatLng(49.264667,31.874994), new google.maps.LatLng(49.264976,31.874539), new google.maps.LatLng(49.265112,31.874349), new google.maps.LatLng(49.265269,31.874201), new google.maps.LatLng(49.265713,31.874141), new google.maps.LatLng(49.266218,31.873988), new google.maps.LatLng(49.266521,31.874115), new google.maps.LatLng(49.26682,31.874315), new google.maps.LatLng(49.268153,31.875177), new google.maps.LatLng(49.268327,31.875321), new google.maps.LatLng(49.268498,31.875482), new google.maps.LatLng(49.268677,31.875646), new google.maps.LatLng(49.268861,31.875816), new google.maps.LatLng(49.269033,31.876004), new google.maps.LatLng(49.269205,31.876196), new google.maps.LatLng(49.26938,31.876394), new google.maps.LatLng(49.269558,31.876601), new google.maps.LatLng(49.269743,31.876805), new google.maps.LatLng(49.270296,31.877456), new google.maps.LatLng(49.27175,31.879415), new google.maps.LatLng(49.272225,31.88026), new google.maps.LatLng(49.272373,31.88055), new google.maps.LatLng(49.273034,31.882072), new google.maps.LatLng(49.273353,31.883013), new google.maps.LatLng(49.273454,31.883338), new google.maps.LatLng(49.273975,31.884967), new google.maps.LatLng(49.274403,31.886276), new google.maps.LatLng(49.274977,31.888284), new google.maps.LatLng(49.275716,31.89109), new google.maps.LatLng(49.275802,31.891452), new google.maps.LatLng(49.275891,31.891812), new google.maps.LatLng(49.275978,31.892174), new google.maps.LatLng(49.276066,31.892537), new google.maps.LatLng(49.276155,31.892901), new google.maps.LatLng(49.276245,31.893263), new google.maps.LatLng(49.276332,31.893628), new google.maps.LatLng(49.27642,31.893994), new google.maps.LatLng(49.276511,31.894358), new google.maps.LatLng(49.276603,31.89472), new google.maps.LatLng(49.276783,31.895441), new google.maps.LatLng(49.276872,31.8958), new google.maps.LatLng(49.277139,31.896876), new google.maps.LatLng(49.27723,31.897233), new google.maps.LatLng(49.277324,31.89759), new google.maps.LatLng(49.277419,31.897946), new google.maps.LatLng(49.277693,31.899004), new google.maps.LatLng(49.277781,31.899356), new google.maps.LatLng(49.277867,31.899706), new google.maps.LatLng(49.277955,31.900058), new google.maps.LatLng(49.278047,31.90041), new google.maps.LatLng(49.278236,31.901106), new google.maps.LatLng(49.278337,31.901456), new google.maps.LatLng(49.278435,31.9018), new google.maps.LatLng(49.278641,31.90249), new google.maps.LatLng(49.278743,31.902825), new google.maps.LatLng(49.278846,31.903151), new google.maps.LatLng(49.27906,31.903747), new google.maps.LatLng(49.279174,31.90402), new google.maps.LatLng(49.279297,31.904287), new google.maps.LatLng(49.279426,31.90455), new google.maps.LatLng(49.279558,31.904811), new google.maps.LatLng(49.279692,31.905071), new google.maps.LatLng(49.27983,31.905331), new google.maps.LatLng(49.279974,31.905587), new google.maps.LatLng(49.280122,31.905838), new google.maps.LatLng(49.280275,31.906081), new google.maps.LatLng(49.280431,31.90632), new google.maps.LatLng(49.280589,31.906547), new google.maps.LatLng(49.280749,31.906762), new google.maps.LatLng(49.280906,31.906963), new google.maps.LatLng(49.281064,31.907154), new google.maps.LatLng(49.281224,31.907335), new google.maps.LatLng(49.28208,31.908147), new google.maps.LatLng(49.282263,31.908313), new google.maps.LatLng(49.282446,31.908477), new google.maps.LatLng(49.282633,31.90864), new google.maps.LatLng(49.282823,31.908794), new google.maps.LatLng(49.283017,31.908942), new google.maps.LatLng(49.283218,31.909081), new google.maps.LatLng(49.283845,31.909431), new google.maps.LatLng(49.284063,31.909535), new google.maps.LatLng(49.284279,31.909634), new google.maps.LatLng(49.284498,31.909723), new google.maps.LatLng(49.284719,31.909809), new google.maps.LatLng(49.284941,31.909893), new google.maps.LatLng(49.285162,31.909977), new google.maps.LatLng(49.28538,31.91006), new google.maps.LatLng(49.285597,31.910142), new google.maps.LatLng(49.285813,31.910225), new google.maps.LatLng(49.286029,31.910302), new google.maps.LatLng(49.286247,31.910374), new google.maps.LatLng(49.286467,31.910441), new google.maps.LatLng(49.286686,31.910502), new google.maps.LatLng(49.286905,31.910557), new google.maps.LatLng(49.287126,31.91061), new google.maps.LatLng(49.287348,31.910661), new google.maps.LatLng(49.287573,31.910711), new google.maps.LatLng(49.287799,31.910761), new google.maps.LatLng(49.288027,31.910811), new google.maps.LatLng(49.288256,31.910857), new google.maps.LatLng(49.288489,31.910903), new google.maps.LatLng(49.288718,31.910949), new google.maps.LatLng(49.288951,31.91099), new google.maps.LatLng(49.289184,31.911026), new google.maps.LatLng(49.289418,31.911058), new google.maps.LatLng(49.289653,31.911087), new google.maps.LatLng(49.289888,31.91111), new google.maps.LatLng(49.290125,31.911131), new google.maps.LatLng(49.290365,31.91115), new google.maps.LatLng(49.290606,31.911171), new google.maps.LatLng(49.290848,31.911188), new google.maps.LatLng(49.291091,31.911201), new google.maps.LatLng(49.291335,31.91121), new google.maps.LatLng(49.29158,31.911211), new google.maps.LatLng(49.291825,31.911206), new google.maps.LatLng(49.29207,31.911194), new google.maps.LatLng(49.292316,31.91118), new google.maps.LatLng(49.292565,31.91117), new google.maps.LatLng(49.293066,31.911151), new google.maps.LatLng(49.293316,31.911138), new google.maps.LatLng(49.293565,31.911118), new google.maps.LatLng(49.293813,31.911089), new google.maps.LatLng(49.294061,31.911057), new google.maps.LatLng(49.294308,31.911025), new google.maps.LatLng(49.294554,31.910998), new google.maps.LatLng(49.2948,31.910974), new google.maps.LatLng(49.295045,31.91095), new google.maps.LatLng(49.295288,31.910924), new google.maps.LatLng(49.29553,31.9109), new google.maps.LatLng(49.295769,31.910875), new google.maps.LatLng(49.296006,31.91085), new google.maps.LatLng(49.296242,31.910824), new google.maps.LatLng(49.296477,31.910798), new google.maps.LatLng(49.296712,31.910772), new google.maps.LatLng(49.296947,31.910748), new google.maps.LatLng(49.297185,31.910726), new google.maps.LatLng(49.297427,31.910708), new google.maps.LatLng(49.297672,31.910691), new google.maps.LatLng(49.297919,31.910679), new google.maps.LatLng(49.298167,31.910669), new google.maps.LatLng(49.298417,31.910661), new google.maps.LatLng(49.298669,31.910657), new google.maps.LatLng(49.298922,31.910656), new google.maps.LatLng(49.299177,31.91066), new google.maps.LatLng(49.299432,31.910671), new google.maps.LatLng(49.29969,31.910687), new google.maps.LatLng(49.299946,31.910709), new google.maps.LatLng(49.300203,31.910737), new google.maps.LatLng(49.300459,31.910767), new google.maps.LatLng(49.300718,31.910798), new google.maps.LatLng(49.300979,31.91083), new google.maps.LatLng(49.30124,31.910867), new google.maps.LatLng(49.3015,31.910912), new google.maps.LatLng(49.301759,31.910965), new google.maps.LatLng(49.302019,31.911022), new google.maps.LatLng(49.302531,31.911141), new google.maps.LatLng(49.302783,31.911194), new google.maps.LatLng(49.30303,31.911248), new google.maps.LatLng(49.303275,31.911305), new google.maps.LatLng(49.303516,31.91136), new google.maps.LatLng(49.303756,31.911414), new google.maps.LatLng(49.303992,31.911471), new google.maps.LatLng(49.304232,31.911526), new google.maps.LatLng(49.304472,31.911582), new google.maps.LatLng(49.304712,31.911637), new google.maps.LatLng(49.304954,31.911691), new google.maps.LatLng(49.305193,31.911742), new google.maps.LatLng(49.305432,31.911796), new google.maps.LatLng(49.305669,31.91185), new google.maps.LatLng(49.305908,31.911902), new google.maps.LatLng(49.306148,31.911956), new google.maps.LatLng(49.306386,31.912009), new google.maps.LatLng(49.306626,31.912062), new google.maps.LatLng(49.306865,31.912118), new google.maps.LatLng(49.307104,31.912174), new google.maps.LatLng(49.307343,31.912227), new google.maps.LatLng(49.307582,31.912277), new google.maps.LatLng(49.307819,31.912329), new google.maps.LatLng(49.308055,31.912382), new google.maps.LatLng(49.308291,31.912434), new google.maps.LatLng(49.308528,31.912488), new google.maps.LatLng(49.308766,31.912541), new google.maps.LatLng(49.309005,31.912595), new google.maps.LatLng(49.309245,31.912649), new google.maps.LatLng(49.309485,31.912704), new google.maps.LatLng(49.309724,31.91276), new google.maps.LatLng(49.30996,31.912817), new google.maps.LatLng(49.310195,31.912869), new google.maps.LatLng(49.310429,31.912921), new google.maps.LatLng(49.31066,31.91297), new google.maps.LatLng(49.310889,31.91302), new google.maps.LatLng(49.311117,31.913067), new google.maps.LatLng(49.311343,31.913115), new google.maps.LatLng(49.311569,31.913165), new google.maps.LatLng(49.311792,31.913213), new google.maps.LatLng(49.312012,31.91326), new google.maps.LatLng(49.312233,31.913306), new google.maps.LatLng(49.312451,31.913352), new google.maps.LatLng(49.312667,31.913397), new google.maps.LatLng(49.312876,31.913441), new google.maps.LatLng(49.313462,31.913569), new google.maps.LatLng(49.313657,31.913615), new google.maps.LatLng(49.313851,31.91366), new google.maps.LatLng(49.314046,31.913704), new google.maps.LatLng(49.314244,31.913747), new google.maps.LatLng(49.314446,31.913792), new google.maps.LatLng(49.314653,31.913839), new google.maps.LatLng(49.314866,31.913889), new google.maps.LatLng(49.315079,31.913943), new google.maps.LatLng(49.315298,31.914), new google.maps.LatLng(49.315522,31.914061), new google.maps.LatLng(49.315749,31.914124), new google.maps.LatLng(49.315977,31.914189), new google.maps.LatLng(49.316209,31.914257), new google.maps.LatLng(49.316444,31.914329), new google.maps.LatLng(49.316679,31.914406), new google.maps.LatLng(49.316916,31.914489), new google.maps.LatLng(49.317154,31.914578), new google.maps.LatLng(49.31739,31.914669), new google.maps.LatLng(49.317626,31.914759), new google.maps.LatLng(49.317859,31.91485), new google.maps.LatLng(49.318086,31.914948), new google.maps.LatLng(49.31831,31.915054), new google.maps.LatLng(49.318528,31.915167), new google.maps.LatLng(49.318741,31.915284), new google.maps.LatLng(49.318951,31.915397), new google.maps.LatLng(49.319159,31.915505), new google.maps.LatLng(49.319361,31.915611), new google.maps.LatLng(49.319561,31.915717), new google.maps.LatLng(49.319758,31.915822), new google.maps.LatLng(49.319954,31.915928), new google.maps.LatLng(49.320148,31.916035), new google.maps.LatLng(49.320341,31.916144), new google.maps.LatLng(49.320534,31.916255), new google.maps.LatLng(49.32073,31.916366), new google.maps.LatLng(49.320928,31.916478), new google.maps.LatLng(49.321126,31.916591), new google.maps.LatLng(49.321324,31.916708), new google.maps.LatLng(49.321524,31.916831), new google.maps.LatLng(49.322517,31.917557), new google.maps.LatLng(49.322712,31.917712), new google.maps.LatLng(49.323098,31.918021), new google.maps.LatLng(49.323287,31.918171), new google.maps.LatLng(49.323474,31.918324), new google.maps.LatLng(49.323666,31.918481), new google.maps.LatLng(49.323858,31.918648), new google.maps.LatLng(49.324438,31.919185), new google.maps.LatLng(49.325415,31.92016), new google.maps.LatLng(49.325613,31.920374), new google.maps.LatLng(49.325808,31.920596), new google.maps.LatLng(49.325999,31.920822), new google.maps.LatLng(49.326192,31.921048), new google.maps.LatLng(49.326383,31.921274), new google.maps.LatLng(49.326758,31.921731), new google.maps.LatLng(49.32694,31.921951), new google.maps.LatLng(49.327294,31.922375), new google.maps.LatLng(49.327468,31.92258), new google.maps.LatLng(49.327977,31.923196), new google.maps.LatLng(49.328146,31.923404), new google.maps.LatLng(49.328313,31.923611), new google.maps.LatLng(49.328483,31.923813), new google.maps.LatLng(49.32865,31.924013), new google.maps.LatLng(49.328813,31.924211), new google.maps.LatLng(49.328974,31.924409), new google.maps.LatLng(49.329135,31.924606), new google.maps.LatLng(49.329296,31.924803), new google.maps.LatLng(49.329459,31.924999), new google.maps.LatLng(49.329622,31.925197), new google.maps.LatLng(49.329788,31.925392), new google.maps.LatLng(49.329956,31.925581), new google.maps.LatLng(49.33012,31.925776), new google.maps.LatLng(49.330288,31.925982), new google.maps.LatLng(49.330456,31.926185), new google.maps.LatLng(49.330622,31.926388), new google.maps.LatLng(49.330784,31.926583), new google.maps.LatLng(49.330926,31.926757), new google.maps.LatLng(49.331131,31.927011), new google.maps.LatLng(49.331304,31.927218), new google.maps.LatLng(49.331499,31.927451), new google.maps.LatLng(49.331724,31.927722), new google.maps.LatLng(49.331964,31.928024), new google.maps.LatLng(49.332226,31.928343), new google.maps.LatLng(49.332501,31.92868), new google.maps.LatLng(49.332778,31.929027), new google.maps.LatLng(49.33306,31.929369), new google.maps.LatLng(49.333206,31.929542), new google.maps.LatLng(49.33336,31.929721), new google.maps.LatLng(49.333515,31.929902), new google.maps.LatLng(49.333669,31.930088), new google.maps.LatLng(49.333824,31.930278), new google.maps.LatLng(49.333984,31.930473), new google.maps.LatLng(49.334148,31.930672), new google.maps.LatLng(49.334309,31.930869), new google.maps.LatLng(49.334471,31.931065), new google.maps.LatLng(49.334795,31.931448), new google.maps.LatLng(49.335123,31.931856), new google.maps.LatLng(49.335456,31.932263), new google.maps.LatLng(49.33562,31.932468), new google.maps.LatLng(49.335783,31.932671), new google.maps.LatLng(49.335948,31.932876), new google.maps.LatLng(49.336114,31.933079), new google.maps.LatLng(49.336599,31.933681), new google.maps.LatLng(49.336754,31.933884), new google.maps.LatLng(49.337062,31.934284), new google.maps.LatLng(49.337219,31.934485), new google.maps.LatLng(49.337375,31.934683), new google.maps.LatLng(49.337528,31.934871), new google.maps.LatLng(49.337679,31.935056), new google.maps.LatLng(49.337826,31.935238), new google.maps.LatLng(49.337968,31.935413), new google.maps.LatLng(49.338242,31.935749), new google.maps.LatLng(49.338517,31.936084), new google.maps.LatLng(49.338796,31.936432), new google.maps.LatLng(49.339332,31.937107), new google.maps.LatLng(49.339591,31.937431), new google.maps.LatLng(49.339846,31.937737), new google.maps.LatLng(49.340087,31.938035), new google.maps.LatLng(49.340335,31.938345), new google.maps.LatLng(49.340607,31.938675), new google.maps.LatLng(49.340877,31.939011), new google.maps.LatLng(49.341433,31.939695), new google.maps.LatLng(49.341714,31.940039), new google.maps.LatLng(49.341856,31.940214), new google.maps.LatLng(49.341997,31.940392), new google.maps.LatLng(49.342272,31.940741), new google.maps.LatLng(49.342544,31.94108), new google.maps.LatLng(49.342807,31.941395), new google.maps.LatLng(49.343057,31.941703), new google.maps.LatLng(49.343293,31.942002), new google.maps.LatLng(49.343517,31.942287), new google.maps.LatLng(49.343738,31.942555), new google.maps.LatLng(49.343969,31.942843), new google.maps.LatLng(49.34421,31.943138), new google.maps.LatLng(49.344462,31.943445), new google.maps.LatLng(49.344715,31.943759), new google.maps.LatLng(49.344976,31.944088), new google.maps.LatLng(49.345248,31.944433), new google.maps.LatLng(49.345391,31.944612), new google.maps.LatLng(49.345535,31.944796), new google.maps.LatLng(49.345677,31.944983), new google.maps.LatLng(49.345822,31.945171), new google.maps.LatLng(49.345973,31.94536), new google.maps.LatLng(49.346123,31.945548), new google.maps.LatLng(49.346275,31.945737), new google.maps.LatLng(49.346884,31.946499), new google.maps.LatLng(49.347037,31.946691), new google.maps.LatLng(49.347189,31.946884), new google.maps.LatLng(49.347342,31.947076), new google.maps.LatLng(49.347494,31.947268), new google.maps.LatLng(49.347648,31.947458), new google.maps.LatLng(49.347803,31.947648), new google.maps.LatLng(49.347958,31.947844), new google.maps.LatLng(49.34827,31.948233), new google.maps.LatLng(49.348425,31.948431), new google.maps.LatLng(49.348581,31.948633), new google.maps.LatLng(49.348739,31.948834), new google.maps.LatLng(49.349919,31.950297), new google.maps.LatLng(49.350095,31.950517), new google.maps.LatLng(49.350638,31.951202), new google.maps.LatLng(49.351209,31.951903), new google.maps.LatLng(49.351943,31.952883), new google.maps.LatLng(49.352126,31.953118), new google.maps.LatLng(49.352304,31.953346), new google.maps.LatLng(49.352483,31.953575), new google.maps.LatLng(49.352662,31.953801), new google.maps.LatLng(49.35284,31.954025), new google.maps.LatLng(49.35302,31.95425), new google.maps.LatLng(49.353202,31.95447), new google.maps.LatLng(49.35338,31.95469), new google.maps.LatLng(49.353558,31.954908), new google.maps.LatLng(49.353736,31.955132), new google.maps.LatLng(49.353914,31.955354), new google.maps.LatLng(49.354799,31.956493), new google.maps.LatLng(49.354976,31.956719), new google.maps.LatLng(49.355152,31.956946), new google.maps.LatLng(49.355329,31.957172), new google.maps.LatLng(49.355506,31.957397), new google.maps.LatLng(49.356046,31.958062), new google.maps.LatLng(49.356225,31.958283), new google.maps.LatLng(49.356406,31.958506), new google.maps.LatLng(49.356588,31.958727), new google.maps.LatLng(49.356768,31.958947), new google.maps.LatLng(49.356949,31.959166), new google.maps.LatLng(49.357126,31.959383), new google.maps.LatLng(49.357302,31.959597), new google.maps.LatLng(49.357476,31.959811), new google.maps.LatLng(49.35765,31.960026), new google.maps.LatLng(49.357825,31.960241), new google.maps.LatLng(49.357999,31.960462), new google.maps.LatLng(49.358174,31.960679), new google.maps.LatLng(49.358349,31.960898), new google.maps.LatLng(49.35853,31.96112), new google.maps.LatLng(49.358716,31.961343), new google.maps.LatLng(49.358905,31.961568), new google.maps.LatLng(49.359096,31.961799), new google.maps.LatLng(49.359292,31.962031), new google.maps.LatLng(49.35949,31.962262), new google.maps.LatLng(49.359686,31.962503), new google.maps.LatLng(49.359875,31.962754), new google.maps.LatLng(49.360057,31.96301), new google.maps.LatLng(49.360242,31.963258), new google.maps.LatLng(49.360429,31.9635), new google.maps.LatLng(49.360617,31.963745), new google.maps.LatLng(49.360804,31.963985), new google.maps.LatLng(49.36099,31.964219), new google.maps.LatLng(49.361173,31.964449), new google.maps.LatLng(49.361361,31.964679), new google.maps.LatLng(49.361547,31.964907), new google.maps.LatLng(49.361732,31.965136), new google.maps.LatLng(49.361916,31.965368), new google.maps.LatLng(49.362652,31.966285), new google.maps.LatLng(49.362836,31.966511), new google.maps.LatLng(49.36302,31.966738), new google.maps.LatLng(49.363206,31.96697), new google.maps.LatLng(49.363392,31.967204), new google.maps.LatLng(49.365015,31.969242), new google.maps.LatLng(49.365184,31.969448), new google.maps.LatLng(49.365352,31.969654), new google.maps.LatLng(49.365853,31.970265), new google.maps.LatLng(49.366175,31.970661), new google.maps.LatLng(49.366327,31.970851), new google.maps.LatLng(49.366476,31.971035), new google.maps.LatLng(49.366621,31.971216), new google.maps.LatLng(49.366762,31.971396), new google.maps.LatLng(49.367185,31.971914), new google.maps.LatLng(49.367328,31.972092), new google.maps.LatLng(49.367614,31.972453), new google.maps.LatLng(49.367908,31.972823), new google.maps.LatLng(49.368052,31.973009), new google.maps.LatLng(49.368198,31.973197), new google.maps.LatLng(49.368348,31.973386), new google.maps.LatLng(49.3685,31.973577), new google.maps.LatLng(49.368657,31.973768), new google.maps.LatLng(49.369259,31.974504), new google.maps.LatLng(49.369403,31.974675), new google.maps.LatLng(49.369678,31.975001), new google.maps.LatLng(49.369942,31.975337), new google.maps.LatLng(49.370224,31.975676), new google.maps.LatLng(49.370369,31.975851), new google.maps.LatLng(49.370945,31.976578), new google.maps.LatLng(49.371612,31.977374), new google.maps.LatLng(49.372144,31.978018), new google.maps.LatLng(49.372684,31.978668), new google.maps.LatLng(49.373189,31.979278), new google.maps.LatLng(49.373445,31.979602), new google.maps.LatLng(49.373717,31.979945), new google.maps.LatLng(49.373857,31.98012), new google.maps.LatLng(49.374,31.980296), new google.maps.LatLng(49.374141,31.98047), new google.maps.LatLng(49.374284,31.980642), new google.maps.LatLng(49.374426,31.980811), new google.maps.LatLng(49.374702,31.981146), new google.maps.LatLng(49.375236,31.981786), new google.maps.LatLng(49.377052,31.983961), new google.maps.LatLng(49.37754,31.984537), new google.maps.LatLng(49.377781,31.984823), new google.maps.LatLng(49.37827,31.985403), new google.maps.LatLng(49.378522,31.985702), new google.maps.LatLng(49.378783,31.986008), new google.maps.LatLng(49.379308,31.986626), new google.maps.LatLng(49.379579,31.986947), new google.maps.LatLng(49.379836,31.987248), new google.maps.LatLng(49.380355,31.987843), new google.maps.LatLng(49.380607,31.988146), new google.maps.LatLng(49.381373,31.989047), new google.maps.LatLng(49.38302,31.990747), new google.maps.LatLng(49.383749,31.991612), new google.maps.LatLng(49.383899,31.991801), new google.maps.LatLng(49.38515,31.993382), new google.maps.LatLng(49.385316,31.993592), new google.maps.LatLng(49.385484,31.993805), new google.maps.LatLng(49.385654,31.994023), new google.maps.LatLng(49.38583,31.994246), new google.maps.LatLng(49.386195,31.994705), new google.maps.LatLng(49.386384,31.994937), new google.maps.LatLng(49.386576,31.995169), new google.maps.LatLng(49.386768,31.995401), new google.maps.LatLng(49.386959,31.995634), new google.maps.LatLng(49.387723,31.996569), new google.maps.LatLng(49.388096,31.997021), new google.maps.LatLng(49.388464,31.997465), new google.maps.LatLng(49.388646,31.997685), new google.maps.LatLng(49.388823,31.997901), new google.maps.LatLng(49.389168,31.998328), new google.maps.LatLng(49.389917,31.999241), new google.maps.LatLng(49.390336,31.999759), new google.maps.LatLng(49.390533,31.999993), new google.maps.LatLng(49.390738,32.000255), new google.maps.LatLng(49.391699,32.001419), new google.maps.LatLng(49.391953,32.001715), new google.maps.LatLng(49.392739,32.002698), new google.maps.LatLng(49.392889,32.002877), new google.maps.LatLng(49.393807,32.004048), new google.maps.LatLng(49.393965,32.00425), new google.maps.LatLng(49.394126,32.004457), new google.maps.LatLng(49.394289,32.004666), new google.maps.LatLng(49.394454,32.004877), new google.maps.LatLng(49.395482,32.006133), new google.maps.LatLng(49.395652,32.006346), new google.maps.LatLng(49.395825,32.006558), new google.maps.LatLng(49.395996,32.006774), new google.maps.LatLng(49.396168,32.006988), new google.maps.LatLng(49.396342,32.007202), new google.maps.LatLng(49.396515,32.007416), new google.maps.LatLng(49.396688,32.007627), new google.maps.LatLng(49.396862,32.007836), new google.maps.LatLng(49.397034,32.008043), new google.maps.LatLng(49.397209,32.008248), new google.maps.LatLng(49.39738,32.008458), new google.maps.LatLng(49.397723,32.008888), new google.maps.LatLng(49.397896,32.009109), new google.maps.LatLng(49.39807,32.009331), new google.maps.LatLng(49.398245,32.00955), new google.maps.LatLng(49.398418,32.009767), new google.maps.LatLng(49.398584,32.009972), new google.maps.LatLng(49.398891,32.010352), new google.maps.LatLng(49.399039,32.010534), new google.maps.LatLng(49.399185,32.010714), new google.maps.LatLng(49.399471,32.011071), new google.maps.LatLng(49.399616,32.011246), new google.maps.LatLng(49.399762,32.011424), new google.maps.LatLng(49.3999,32.011601), new google.maps.LatLng(49.400174,32.011949), new google.maps.LatLng(49.400723,32.012631), new google.maps.LatLng(49.400987,32.012946), new google.maps.LatLng(49.401711,32.013851), new google.maps.LatLng(49.401984,32.014183), new google.maps.LatLng(49.40272,32.01511), new google.maps.LatLng(49.40288,32.015298), new google.maps.LatLng(49.403044,32.015487), new google.maps.LatLng(49.403204,32.015684), new google.maps.LatLng(49.403361,32.015885), new google.maps.LatLng(49.403514,32.016087), new google.maps.LatLng(49.403661,32.016275), new google.maps.LatLng(49.405019,32.017988), new google.maps.LatLng(49.40522,32.018238), new google.maps.LatLng(49.405425,32.018494), new google.maps.LatLng(49.405624,32.018747), new google.maps.LatLng(49.40601,32.019239), new google.maps.LatLng(49.406197,32.019473), new google.maps.LatLng(49.406372,32.019674), new google.maps.LatLng(49.406523,32.019863), new google.maps.LatLng(49.406701,32.020071), new google.maps.LatLng(49.407051,32.020493), new google.maps.LatLng(49.407363,32.020872), new google.maps.LatLng(49.407662,32.021263), new google.maps.LatLng(49.407874,32.021518), new google.maps.LatLng(49.408042,32.021724), new google.maps.LatLng(49.408216,32.021939), new google.maps.LatLng(49.408388,32.022154), new google.maps.LatLng(49.408566,32.022375), new google.maps.LatLng(49.408751,32.022607), new google.maps.LatLng(49.408942,32.022855), new google.maps.LatLng(49.409327,32.02333), new google.maps.LatLng(49.409499,32.023532), new google.maps.LatLng(49.409671,32.023741), new google.maps.LatLng(49.410175,32.024372), new google.maps.LatLng(49.410325,32.024549), new google.maps.LatLng(49.410861,32.024878), new google.maps.LatLng(49.410992,32.024678), new google.maps.LatLng(49.411347,32.024865), new google.maps.LatLng(49.411451,32.025888), new google.maps.LatLng(49.4123,32.026982), new google.maps.LatLng(49.412479,32.027217), new google.maps.LatLng(49.413125,32.028024), new google.maps.LatLng(49.414657,32.030063), new google.maps.LatLng(49.414716,32.030388), new google.maps.LatLng(49.414851,32.031045), new google.maps.LatLng(49.415012,32.031244), new google.maps.LatLng(49.415446,32.031308), new google.maps.LatLng(49.415812,32.03148), new google.maps.LatLng(49.415995,32.031682), new google.maps.LatLng(49.416529,32.032383), new google.maps.LatLng(49.417141,32.033161), new google.maps.LatLng(49.417317,32.033394), new google.maps.LatLng(49.417969,32.034238), new google.maps.LatLng(49.418432,32.034851), new google.maps.LatLng(49.418678,32.035166), new google.maps.LatLng(49.419666,32.036421), new google.maps.LatLng(49.419888,32.036703), new google.maps.LatLng(49.420097,32.036971), new google.maps.LatLng(49.420489,32.037482), new google.maps.LatLng(49.420675,32.037722), new google.maps.LatLng(49.421021,32.038176), new google.maps.LatLng(49.4213,32.038576), new google.maps.LatLng(49.421446,32.038775), new google.maps.LatLng(49.422223,32.039716), new google.maps.LatLng(49.422688,32.040316), new google.maps.LatLng(49.422946,32.040632), new google.maps.LatLng(49.423214,32.040962), new google.maps.LatLng(49.423485,32.041294), new google.maps.LatLng(49.423768,32.041626), new google.maps.LatLng(49.423913,32.041796), new google.maps.LatLng(49.425083,32.043201), new google.maps.LatLng(49.425414,32.042827), new google.maps.LatLng(49.425595,32.0425), new google.maps.LatLng(49.426196,32.041482), new google.maps.LatLng(49.426748,32.040472), new google.maps.LatLng(49.426891,32.040272), new google.maps.LatLng(49.427197,32.039731), new google.maps.LatLng(49.427572,32.039003), new google.maps.LatLng(49.42824,32.03778), new google.maps.LatLng(49.42758,32.036847), new google.maps.LatLng(49.427591,32.036323), new google.maps.LatLng(49.427503,32.036567), new google.maps.LatLng(49.428372,32.037566), new google.maps.LatLng(49.428654,32.037048), new google.maps.LatLng(49.428926,32.036537), new google.maps.LatLng(49.428785,32.035278), new google.maps.LatLng(49.429084,32.036203), new google.maps.LatLng(49.428929,32.036518), new google.maps.LatLng(49.42862,32.037137), new google.maps.LatLng(49.428162,32.037929), new google.maps.LatLng(49.428051,32.038168), new google.maps.LatLng(49.427892,32.03843), new google.maps.LatLng(49.427731,32.038696), new google.maps.LatLng(49.427603,32.038927), new google.maps.LatLng(49.427469,32.039191), new google.maps.LatLng(49.427203,32.039721), new google.maps.LatLng(49.426686,32.040661), new google.maps.LatLng(49.426546,32.040928), new google.maps.LatLng(49.426106,32.041711), new google.maps.LatLng(49.425608,32.042665), new google.maps.LatLng(49.425476,32.042917), new google.maps.LatLng(49.425664,32.044042), new google.maps.LatLng(49.426969,32.045789), new google.maps.LatLng(49.427167,32.046054), new google.maps.LatLng(49.427778,32.046866), new google.maps.LatLng(49.427942,32.047063), new google.maps.LatLng(49.428303,32.047513), new google.maps.LatLng(49.429932,32.049675), new google.maps.LatLng(49.430678,32.050602), new google.maps.LatLng(49.430848,32.050812), new google.maps.LatLng(49.431042,32.051051), new google.maps.LatLng(49.431228,32.051292), new google.maps.LatLng(49.431416,32.051532), new google.maps.LatLng(49.431761,32.051999), new google.maps.LatLng(49.432533,32.053003), new google.maps.LatLng(49.433007,32.053617), new google.maps.LatLng(49.433675,32.054107), new google.maps.LatLng(49.433506,32.053572), new google.maps.LatLng(49.433287,32.053466), new google.maps.LatLng(49.433124,32.053598), new google.maps.LatLng(49.431106,32.051128), new google.maps.LatLng(49.430669,32.050535), new google.maps.LatLng(49.430358,32.050155), new google.maps.LatLng(49.429659,32.049205), new google.maps.LatLng(49.429029,32.048402), new google.maps.LatLng(49.428608,32.047841), new google.maps.LatLng(49.42842,32.04758), new google.maps.LatLng(49.428258,32.047358), new google.maps.LatLng(49.427411,32.046269), new google.maps.LatLng(49.427253,32.046044), new google.maps.LatLng(49.427061,32.045775), new google.maps.LatLng(49.42661,32.045173), new google.maps.LatLng(49.426364,32.044845), new google.maps.LatLng(49.426324,32.041409), new google.maps.LatLng(49.427036,32.04015), new google.maps.LatLng(49.427868,32.038589), new google.maps.LatLng(49.428028,32.038321), new google.maps.LatLng(49.42815,32.03806), new google.maps.LatLng(49.428302,32.037772), new google.maps.LatLng(49.428729,32.036953), new google.maps.LatLng(49.428864,32.036717), new google.maps.LatLng(49.428993,32.036479), new google.maps.LatLng(49.429109,32.036268), new google.maps.LatLng(49.42892,32.035826), new google.maps.LatLng(49.428903,32.035847), new google.maps.LatLng(49.428277,32.037714), new google.maps.LatLng(49.427865,32.038467), new google.maps.LatLng(49.42773,32.038732), new google.maps.LatLng(49.427447,32.039257), new google.maps.LatLng(49.427323,32.039484), new google.maps.LatLng(49.427155,32.03979), new google.maps.LatLng(49.427008,32.040066), new google.maps.LatLng(49.426876,32.0403), new google.maps.LatLng(49.426751,32.040516), new google.maps.LatLng(49.426628,32.040741), new google.maps.LatLng(49.425296,32.043171), new google.maps.LatLng(49.425217,32.04342), new google.maps.LatLng(49.425391,32.043724), new google.maps.LatLng(49.42557,32.04393), new google.maps.LatLng(49.426596,32.045231), new google.maps.LatLng(49.427668,32.046696), new google.maps.LatLng(49.427843,32.0469), new google.maps.LatLng(49.42806,32.04715), new google.maps.LatLng(49.428215,32.047346), new google.maps.LatLng(49.428378,32.047557), new google.maps.LatLng(49.429307,32.048773), new google.maps.LatLng(49.429917,32.04965), new google.maps.LatLng(49.430126,32.049895), new google.maps.LatLng(49.430432,32.050302), new google.maps.LatLng(49.430778,32.05074), new google.maps.LatLng(49.430958,32.05097), new google.maps.LatLng(49.431141,32.051206), new google.maps.LatLng(49.431944,32.05222), new google.maps.LatLng(49.432357,32.052764), new google.maps.LatLng(49.43269,32.053186), new google.maps.LatLng(49.434085,32.055068), new google.maps.LatLng(49.434537,32.055655), new google.maps.LatLng(49.434778,32.055964), new google.maps.LatLng(49.435654,32.057119), new google.maps.LatLng(49.436328,32.058003), new google.maps.LatLng(49.436473,32.058183), new google.maps.LatLng(49.436745,32.058583), new google.maps.LatLng(49.436725,32.058915), new google.maps.LatLng(49.435837,32.060477), new google.maps.LatLng(49.435577,32.060986), new google.maps.LatLng(49.435432,32.061249), new google.maps.LatLng(49.434628,32.062708), new google.maps.LatLng(49.434434,32.063047), new google.maps.LatLng(49.433586,32.064545), new google.maps.LatLng(49.431989,32.067416), new google.maps.LatLng(49.431678,32.067985), new google.maps.LatLng(49.431531,32.068256), new google.maps.LatLng(49.430832,32.069497), new google.maps.LatLng(49.43028,32.070513), new google.maps.LatLng(49.429506,32.071962), new google.maps.LatLng(49.429115,32.072664), new google.maps.LatLng(49.42904,32.073469), new google.maps.LatLng(49.429465,32.073947), new google.maps.LatLng(49.430678,32.074445), new google.maps.LatLng(49.431003,32.074126), new google.maps.LatLng(49.43116,32.073568), new google.maps.LatLng(49.431431,32.073097), new google.maps.LatLng(49.431756,32.072508), new google.maps.LatLng(49.432704,32.070816), new google.maps.LatLng(49.433531,32.069247), new google.maps.LatLng(49.433706,32.068908), new google.maps.LatLng(49.434531,32.067489), new google.maps.LatLng(49.434915,32.066794), new google.maps.LatLng(49.43524,32.066195), new google.maps.LatLng(49.436292,32.064323), new google.maps.LatLng(49.436414,32.064103), new google.maps.LatLng(49.43654,32.063856), new google.maps.LatLng(49.436694,32.063603), new google.maps.LatLng(49.43725,32.062578), new google.maps.LatLng(49.437378,32.062288), new google.maps.LatLng(49.437528,32.062008), new google.maps.LatLng(49.437683,32.061707), new google.maps.LatLng(49.439071,32.059415), new google.maps.LatLng(49.439395,32.058826), new google.maps.LatLng(49.439559,32.058499), new google.maps.LatLng(49.439982,32.057648), new google.maps.LatLng(49.440105,32.057431), new google.maps.LatLng(49.440579,32.056608), new google.maps.LatLng(49.440765,32.056281), new google.maps.LatLng(49.440956,32.055943), new google.maps.LatLng(49.441162,32.055583), new google.maps.LatLng(49.441383,32.055199), new google.maps.LatLng(49.44161,32.05479), new google.maps.LatLng(49.443275,32.051655), new google.maps.LatLng(49.443732,32.05083), new google.maps.LatLng(49.444052,32.050242), new google.maps.LatLng(49.445048,32.04845), new google.maps.LatLng(49.445523,32.047542), new google.maps.LatLng(49.446964,32.044881), new google.maps.LatLng(49.44808,32.042867), new google.maps.LatLng(49.448293,32.042456), new google.maps.LatLng(49.448482,32.042112), new google.maps.LatLng(49.449341,32.040547), new google.maps.LatLng(49.44946,32.040324), new google.maps.LatLng(49.449881,32.039527), new google.maps.LatLng(49.450304,32.03874), new google.maps.LatLng(49.450418,32.03851), new google.maps.LatLng(49.450689,32.038033), new google.maps.LatLng(49.451075,32.03735), new google.maps.LatLng(49.451139,32.037043), new google.maps.LatLng(49.451002,32.036821), new google.maps.LatLng(49.450809,32.036581), new google.maps.LatLng(49.450629,32.036336), new google.maps.LatLng(49.450445,32.03611), new google.maps.LatLng(49.45001,32.035504), new google.maps.LatLng(49.44951,32.035843), new google.maps.LatLng(49.448228,32.038236), new google.maps.LatLng(49.447653,32.039242), new google.maps.LatLng(49.446645,32.041028), new google.maps.LatLng(49.446264,32.041709), new google.maps.LatLng(49.446062,32.042071), new google.maps.LatLng(49.445856,32.042439), new google.maps.LatLng(49.445419,32.043235), new google.maps.LatLng(49.443248,32.046812), new google.maps.LatLng(49.443079,32.046572), new google.maps.LatLng(49.442376,32.045672), new google.maps.LatLng(49.442166,32.045409), new google.maps.LatLng(49.44175,32.044894), new google.maps.LatLng(49.440875,32.043794), new google.maps.LatLng(49.440637,32.043489), new google.maps.LatLng(49.43968,32.04224), new google.maps.LatLng(49.439223,32.040569), new google.maps.LatLng(49.439353,32.040327), new google.maps.LatLng(49.439597,32.039835), new google.maps.LatLng(49.439721,32.039581), new google.maps.LatLng(49.43985,32.039301), new google.maps.LatLng(49.439998,32.039001), new google.maps.LatLng(49.440695,32.037677), new google.maps.LatLng(49.440881,32.03732), new google.maps.LatLng(49.441069,32.036961), new google.maps.LatLng(49.44125,32.036617), new google.maps.LatLng(49.441446,32.036282), new google.maps.LatLng(49.44196,32.035361), new google.maps.LatLng(49.442118,32.035059), new google.maps.LatLng(49.442657,32.034094), new google.maps.LatLng(49.443989,32.031632), new google.maps.LatLng(49.444174,32.031292), new google.maps.LatLng(49.444739,32.030266), new google.maps.LatLng(49.444496,32.028436), new google.maps.LatLng(49.444126,32.027935), new google.maps.LatLng(49.443688,32.027371), new google.maps.LatLng(49.44347,32.027099), new google.maps.LatLng(49.443269,32.026846), new google.maps.LatLng(49.442825,32.026957), new google.maps.LatLng(49.442794,32.027279), new google.maps.LatLng(49.441016,32.031087), new google.maps.LatLng(49.440842,32.031393), new google.maps.LatLng(49.440569,32.031893), new google.maps.LatLng(49.440304,32.032383), new google.maps.LatLng(49.4392,32.034426)]; var mapOptions = { zoom: 13, mapTypeId: google.maps.MapTypeId.ROADMAP, streetViewControl: false, // hide the yellow Street View pegman scaleControl: true, // allow users to zoom the Google Map center: latLng }; map = new google.maps.Map(document.getElementById('googlemaps'), mapOptions); /*var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.962591,32.228793), title: '10:03', visible: true, draggable: false, icon: marker_start, animation: google.maps.Animation.DROP, map: map});*/ var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.962591,32.228793), title: '10:03', visible: true, icon: marker_start, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.962796,32.228678), title: '10:04', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.962887,32.231714), title: '10:05', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.962575,32.233397), title: '10:13', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.966305,32.238397), title: '10:14', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.966969,32.241564), title: '10:15', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.965906,32.241511), title: '10:17', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.966433,32.241634), title: '10:41', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.966753,32.241461), title: '10:42', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.966487,32.241826), title: '10:43', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.966896,32.241956), title: '10:44', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.966786,32.241501), title: '10:51', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.966175,32.241515), title: '10:52', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.96658,32.241489), title: '10:53', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.96684,32.241942), title: '10:58', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.967022,32.241974), title: '10:59', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.967099,32.241567), title: '11:00', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.966562,32.242103), title: '11:02', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.966548,32.242414), title: '11:03', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.971172,32.244412), title: '11:04', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.97416,32.245523), title: '11:05', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.976678,32.248797), title: '11:06', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.980977,32.251602), title: '11:07', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.986611,32.242648), title: '11:08', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(48.994238,32.230656), title: '11:09', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.001687,32.217553), title: '11:10', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.011235,32.205825), title: '11:11', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.018237,32.190474), title: '11:12', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.020877,32.183266), title: '11:24', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.020836,32.183539), title: '11:25', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.01972,32.184046), title: '11:26', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.021179,32.183476), title: '11:27', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.023336,32.172761), title: '11:28', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.026032,32.159991), title: '11:29', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.032575,32.142309), title: '11:30', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.039753,32.123539), title: '11:31', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.048754,32.113928), title: '11:32', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.044273,32.105816), title: '11:33', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.040438,32.10129), title: '11:34', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.040523,32.102256), title: '11:35', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.040123,32.102515), title: '11:37', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.039942,32.102576), title: '11:38', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.039935,32.102501), title: '11:52', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.040447,32.102369), title: '12:14', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.040291,32.102548), title: '12:16', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.036729,32.101251), title: '12:17', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.032637,32.097304), title: '12:18', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.033,32.096863), title: '12:21', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.032878,32.097088), title: '12:32', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.032809,32.096712), title: '12:35', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.032134,32.101446), title: '12:36', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.038898,32.101503), title: '12:37', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.038895,32.10244), title: '12:44', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.03917,32.104903), title: '12:46', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.039759,32.101446), title: '12:47', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.042303,32.103983), title: '12:48', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.042007,32.103992), title: '13:07', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.042151,32.103751), title: '13:57', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.042237,32.103999), title: '14:03', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.042354,32.103731), title: '14:04', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.042288,32.100877), title: '14:05', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.050115,32.097235), title: '14:06', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.060344,32.091639), title: '14:07', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.069558,32.086885), title: '14:08', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.081277,32.084346), title: '14:09', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.091008,32.084112), title: '14:10', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.101391,32.079883), title: '14:11', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.110494,32.075594), title: '14:12', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.11849,32.071721), title: '14:13', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.127577,32.06453), title: '14:14', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.135704,32.055347), title: '14:15', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.143635,32.04627), title: '14:16', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.150727,32.03817), title: '14:17', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.159172,32.028451), title: '14:18', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.166217,32.020296), title: '14:19', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.171902,32.014146), title: '14:20', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.179769,31.996974), title: '14:21', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.181171,31.975427), title: '14:22', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.182866,31.959473), title: '14:23', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.189107,31.950027), title: '14:24', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.195454,31.943193), title: '14:25', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.201842,31.936256), title: '14:26', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.203572,31.934407), title: '14:27', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.209556,31.927917), title: '14:28', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.216178,31.920731), title: '14:29', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.221009,31.91549), title: '14:30', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.228487,31.907131), title: '14:31', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.236432,31.900837), title: '14:32', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.237306,31.898219), title: '14:33', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.237689,31.886754), title: '14:34', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.238712,31.883528), title: '14:35', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.244288,31.882671), title: '14:36', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.2504,31.883196), title: '14:37', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.255211,31.885646), title: '14:38', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.259012,31.885236), title: '14:39', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.263577,31.876563), title: '14:40', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.268153,31.875177), title: '14:41', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.275716,31.89109), title: '14:42', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.282823,31.908794), title: '14:43', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.296712,31.910772), title: '14:44', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.311343,31.913115), title: '14:45', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.323858,31.918648), title: '14:46', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.33336,31.929721), title: '14:47', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.342272,31.940741), title: '14:48', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.351209,31.951903), title: '14:49', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.361732,31.965136), title: '14:50', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.371612,31.977374), title: '14:51', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.379308,31.986626), title: '14:52', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.388096,31.997021), title: '14:53', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.396862,32.007836), title: '14:54', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.405019,32.017988), title: '14:55', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.407363,32.020872), title: '14:56', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.410992,32.024678), title: '14:57', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.411451,32.025888), title: '15:05', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.414716,32.030388), title: '15:06', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.420489,32.037482), title: '15:07', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.425083,32.043201), title: '15:08', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.426748,32.040472), title: '15:09', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.427591,32.036323), title: '15:25', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.427503,32.036567), title: '15:26', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.428372,32.037566), title: '15:32', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.428785,32.035278), title: '15:45', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.429084,32.036203), title: '16:01', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.427892,32.03843), title: '16:02', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.425664,32.044042), title: '16:03', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.427778,32.046866), title: '16:04', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.432533,32.053003), title: '16:05', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.431106,32.051128), title: '16:06', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.429029,32.048402), title: '16:07', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.426324,32.041409), title: '16:08', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.427868,32.038589), title: '16:09', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.428903,32.035847), title: '16:20', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.427865,32.038467), title: '16:21', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.425296,32.043171), title: '16:22', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.427668,32.046696), title: '16:23', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.430958,32.05097), title: '16:24', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.434537,32.055655), title: '16:25', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.435837,32.060477), title: '16:26', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.431989,32.067416), title: '16:27', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.430678,32.074445), title: '16:28', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.43116,32.073568), title: '17:06', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.434531,32.067489), title: '17:07', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.43725,32.062578), title: '17:08', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.439071,32.059415), title: '17:09', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.440105,32.057431), title: '17:10', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.445048,32.04845), title: '17:11', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.446964,32.044881), title: '17:12', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.450304,32.03874), title: '17:13', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.450689,32.038033), title: '17:15', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.451075,32.03735), title: '17:16', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.448228,32.038236), title: '17:21', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.447653,32.039242), title: '17:22', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.443248,32.046812), title: '17:23', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.43968,32.04224), title: '17:24', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.443989,32.031632), title: '17:25', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.444496,32.028436), title: '17:26', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.441016,32.031087), title: '17:27', visible: true, icon: {path: google.maps.SymbolPath.CIRCLE,scale: 2}, map: map}); var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(49.4392,32.034426), title: '17:28', visible: true, icon: marker_finish, map: map}); var symbolPath = { path: google.maps.SymbolPath.FORWARD_OPEN_ARROW }; var polyline = new google.maps.Polyline({ path: polylineCoords, // Координаты strokeColor: '#FF0000', // Цвет strokeOpacity: 1.0, // Прозрачность strokeWeight: 3, // Ширина icons: [{icon: symbolPath,offset: '10%',repeat: '250px'}], // стрелочки map: map }); } google.maps.event.addDomListener(window, 'load', showGoogleMaps); } var alreadyrunflag = 0; if (document.addEventListener) document.addEventListener("DOMContentLoaded", function(){ alreadyrunflag=1; VanillaRunOnDomReady(); }, false); else if (document.all && !window.opera) { document.write('<script type="text/javascript" id="contentloadtag" defer="defer" src="javascript:void(0)"><\/script>'); var contentloadtag = document.getElementById("contentloadtag") contentloadtag.onreadystatechange=function(){ if (this.readyState=="complete"){ alreadyrunflag=1; VanillaRunOnDomReady(); } } } window.onload = function(){ setTimeout("if (!alreadyrunflag){VanillaRunOnDomReady}", 0); }//]]> </script> </head> <body> <div id="googlemaps"></div> </body> </html>

В данной статье не стояла задача показать реализацию скрипта в 1С. Главное для вывода карты в 1С - это правильно сгенерировать скрипт, который бы работал в разных браузерах.

Закачать скрипт Google карты.

Сергей Рудюк 16 июня 2015
Заголовок
Дата публикации
Урок 1. Введение.
26.07.2011
Урок 2. Установка Android Studio
28.07.2011
Урок 3. Создание AVD. Первое приложение. Структура Android-проекта.
01.08.2011
Урок 4. Элементы экрана и их свойства
04.08.2011
Урок 5. Layout-файл в Activity. XML представление. Смена ориентации экрана.
08.08.2011
Урок 6. Виды Layouts. Ключевые отличия и свойства.
11.08.2011
Урок 7. Layout параметры для View-элементов.
15.08.2011
Урок 8. Работаем с элементами экрана из кода
18.08.2011
Урок 9. Обработчики событий на примере Button.
22.08.2011
Урок 10. Оптимизируем реализацию обработчиков.
25.08.2011
Урок 11. Папка res/values. Используем ресурсы приложения.
29.08.2011
Урок 12. Логи и всплывающие сообщения
01.09.2011
Урок 13. Создание простого меню
05.09.2011
Урок 14. Меню, группы, порядок. MenuInflater и xml-меню.
08.09.2011
Урок 15. Контекстное меню
12.09.2011
Урок 16. Программное создание экрана. LayoutParams
15.09.2011
Урок 17. Создание View-компонент в рабочем приложении
19.09.2011
Урок 18. Меняем layoutParams в рабочем приложении
22.09.2011
Урок 19. Пишем простой калькулятор
26.09.2011
Урок 20. Анимация
29.09.2011
Урок 21. Создание и вызов Activity
03.10.2011
Урок 22. Intent, Intent Filter, Context - теория
06.10.2011
Урок 23. Activity Lifecycle. В каких состояниях может быть Activity
10.10.2011
Урок 24. Activity Lifecycle, пример смены состояний с двумя Activity
13.10.2011
Урок 25. Task. Что это такое и как формируется
17.10.2011
Урок 26. Intent Filter - практика
20.10.2011
Урок 27. Читаем action из Intent
24.10.2011
Урок 28. Extras - передаем данные с помощью Intent
27.10.2011
Урок 29. Вызываем Activity и получаем результат. Метод startActivityForResult
31.10.2011
Урок 30. Подробнее про onActivityResult. Зачем нужны requestCode и resultCode
03.11.2011
Урок 31. Зачем у Intent есть атрибут data. Что такое Uri. Вызываем системные приложения
07.11.2011
Урок 32. Пишем простой браузер
10.11.2011
Урок 33. Хранение данных. Preferences.
14.11.2011
Урок 34. Хранение данных. SQLite
17.11.2011
Урок 35. SQLite. Методы update и delete с указанием условия
21.11.2011
Урок 36. SQLite. Подробнее про метод query. Условие, сортировка, группировка
24.11.2011
Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLite. Метод rawQuery.
28.11.2011
Урок 38. Транзакции в SQLite. Небольшой FAQ по SQLite.
01.12.2011
Урок 39. onUpgrade. Обновляем БД в SQLite
05.12.2011
Урок 40. LayoutInflater. Учимся использовать.
08.12.2011
Урок 41. Используем LayoutInflater для создания списка
12.12.2011
Урок 42. Список - ListView
15.12.2011
Урок 43. Одиночный и множественный выбор в ListView
19.12.2011
Урок 44. События в ListView
22.12.2011
Урок 45. Список-дерево ExpandableListView
26.12.2011
Урок 46. События ExpandableListView
29.12.2011
Урок 47. Обзор адаптеров
12.01.2012
Урок 48. Используем SimpleAdapter.
16.01.2012
Урок 49. SimpleAdapter. Методы SetViewText и SetViewImage
19.01.2012
Урок 50. SimpleAdapter. Используем ViewBinder
23.01.2012
Урок 51. SimpleAdapter, добавление и удаление записей
26.01.2012
Урок 52. SimpleCursorAdapter, пример использования
30.01.2012
Урок 53. SimpleCursorTreeAdapter, пример использования
02.02.2012
Урок 54. Кастомизация списка. Создаем свой адаптер
06.02.2012
Урок 55. Header и Footer в списках. HeaderViewListAdapter
09.02.2012
Урок 56. Spinner – выпадающий список
13.02.2012
Урок 57. GridView и его атрибуты
16.02.2012
Урок 58. Диалоги. TimePickerDialog
20.02.2012
Урок 59. Диалоги. DatePickerDialog
23.02.2012
Урок 60. Диалоги. AlertDialog: Title, Message, Icon, Buttons
27.02.2012
Урок 61. Диалоги. AlertDialog.Метод onPrepareDialog
01.03.2012
Урок 62. Диалоги. AlertDialog. Список
05.03.2012
Урок 63. Диалоги. AlertDialog. Список с одиночным выбором
08.03.2012
Урок 64. Диалоги. AlertDialog. Список с множественным выбором
26.03.2012
Урок 65. Диалоги. AlertDialog. Кастомизация
29.03.2012
Урок 66. Диалоги. Обработчики и операции
02.04.2012
Урок 67. Диалоги. ProgressDialog
05.04.2012
Урок 68. Немного о Parcel
09.04.2012
Урок 69. Передаем Parcelable объекты с помощью Intent
12.04.2012
Урок 70. onSaveInstanceState. Сохранение данных Activity при повороте экрана
16.04.2012
Урок 71. Preferences как настройки приложения. PreferenceActivity
19.04.2012
Урок 72. Preferences. Список, экраны и категории
23.04.2012
Урок 73. Preferences. Управляем активностью настроек (setEnabled)
26.04.2012
Урок 74. Preferences. Программное создание экрана настроек
30.04.2012
Урок 75. Хранение данных. Работа с файлами.
03.05.2012
Урок 76. Tab - вкладки. Общий обзор
07.05.2012
Урок 77. Tab - вкладки. TabActivity. Activity, как содержимое вкладки
10.05.2012
Урок 78. Tab - вкладки. TabContentFactory, ручное создание содержимого вкладки
14.05.2012
Урок 79. XmlPullParser. Парсим XML
17.05.2012
Урок 80. Handler. Немного теории. Наглядный пример использования
21.05.2012
Урок 81. Handler. Посылаем простое сообщение
24.05.2012
Урок 82. Handler. Пример с более содержательными сообщениями
28.05.2012
Урок 83. Handler. Отложенные сообщения, удаление из очереди, Handler.Callback
31.05.2012
Урок 84. Handler. Обработка Runnable
04.06.2012
Урок 85. Еще несколько способов выполнения кода в UI-потоке
07.06.2012
Урок 86. AsyncTask. Знакомство, несложный пример
11.06.2012
Урок 87. AsyncTask. Параметры. Промежуточные результаты
14.06.2012
Урок 88. AsyncTask. Итоговый результат. Метод get
18.06.2012
Урок 89. AsyncTask. Cancel – отменяем задачу в процессе выполнения
21.06.2012
Урок 90. AsyncTask. Status – статусы задачи
25.06.2012
Урок 91. AsyncTask. Поворот экрана
28.06.2012
Урок 92. Service. Простой пример
02.07.2012
Урок 93. Service. Передача данных в сервис. Методы остановки сервиса
05.07.2012
Урок 94. Service. Подробно про onStartCommand
09.07.2012
Урок 95. Service. Обратная связь с помощью PendingIntent
12.07.2012
Урок 96. Service. Обратная связь с помощью BroadcastReceiver
16.07.2012
Урок 97. Service. Биндинг. ServiceConnection
19.07.2012
Урок 98. Service. Локальный биндинг
23.07.2012
Урок 99. Service. Уведомления - notifications
26.07.2012
Урок 100. Service. IntentService. Foreground. Автозагрузка сервиса
30.07.2012
Урок 101. Создаем свой ContentProvider
07.08.2012
Урок 102. Touch – обработка касания
13.08.2012
Урок 103. MultiTouch – обработка множественных касаний
17.08.2012
Урок 104. Android 3. Fragments. Lifecycle
27.08.2012
Урок 105. Android 3. Fragments. Динамическая работа
03.09.2012
Урок 106. Android 3. Fragments. Взаимодействие с Activity
10.09.2012
Урок 107. Android 3. ActionBar. Размещение элементов
19.09.2012
Урок 108. Android 3. ActionBar. Навигация - табы и выпадающий список
27.09.2012
Урок 109. Android 3. Fragments. ListFragment - список
08.10.2012
Урок 110. Android 3. Fragments. DialogFragment - диалог
18.10.2012
Урок 111. Android 3. Fragments. PreferenceFragment - настройки. Headers
29.10.2012
Урок 112. Android 3. ActionBar. Динамическое размещение элементов
07.11.2012
Урок 113. Android 3. ActionMode, как альтернатива контекстному меню
19.11.2012
Урок 114. Android 3. Библиотека Support Library. Зачем нужна и как ее использовать на примере фрагментов
26.11.2012
Урок 115. Одно приложение на разных экранах
07.12.2012
Урок 116. Поведение Activity в Task. Intent-флаги, launchMode, affinity
17.12.2012
Урок 117. Виджеты. Создание. Lifecycle
14.01.2013
Урок 118. Виджеты. Конфигурационный экран. Обновление
23.01.2013
Урок 119. PendingIntent – флаги, requestCode. AlarmManager
04.02.2013
Урок 120. Виджеты. Обработка нажатий
13.02.2013
Урок 121. Виджеты. Список
25.02.2013
Урок 122. Виджеты. Превью, изменение размера, экран блокировки, ручное обновление
06.03.2013
Урок 123. Как подписать приложение. Утилиты keytool и jarsigner
18.03.2013
Урок 124. Что такое Package для приложения
28.03.2013
Урок 125. ViewPager
08.04.2013
Урок 126. Медиа. MediaPlayer – аудио/видео плеер, основные возможности
29.04.2013
Урок 127. Медиа. SoundPool
27.05.2013
Урок 128. Медиа. Audio Focus
10.06.2013
Урок 129. Медиа. Запись звука с помощью MediaRecorder
24.06.2013
Урок 130. Медиа. Запись звука с помощью AudioRecorder
22.07.2013
Урок 131. Камера. Используем системное приложение
19.08.2013
Урок 132. Камера. Вывод изображения на экран. Размер preview. Обработка поворота устройства
30.09.2013
Урок 133. Камера. Делаем снимок и пишем видео
14.10.2013
Урок 134. Камера. Настройки
29.10.2013
Урок 135. Loader. LoaderManager. AsyncTaskLoader
11.11.2013
Урок 136. CursorLoader
18.11.2013
Урок 137. Сенсоры. Ускорение, ориентация.
09.12.2013
Урок 138. Определение местоположения. GPS координаты.
16.12.2013
Урок 139. Google maps. Создание и настройка проекта. Карта, камера, события
13.01.2014
Урок 140. Google maps. Свои объекты на карте
27.01.2014
Урок 141. Рисование. Доступ к Canvas
03.02.2014
Урок 142. Рисование. Простые фигуры, текст
10.02.2014
Урок 143. Рисование. Path
17.02.2014
Урок 144. Рисование. Matrix-преобразования
24.02.2014
Урок 145. Рисование. Matrix. setRectToRect и setPolyToPoly
03.03.2014
Урок 146. Рисование. Canvas-преобразования
10.03.2014
Урок 147. Рисование. Region
17.03.2014
Урок 148. Рисование. Canvas, clip
24.03.2014
Урок 149. Рисование. Текст
07.04.2014
Урок 150. Рисование. PathMeasure – информация о Path-объекте
28.04.2014
Урок 151. Рисование. PathEffect
14.07.2014
Урок 152. Рисование. Picture
21.07.2014
Урок 153. Рисование. ColorFilter, ColorMatrix
28.07.2014
Урок 154. Рисование. PorterDuff.Mode, PorterDuffXfermode
18.08.2014
Урок 155. Рисование. PorterDuffColorFilter
25.08.2014
Урок 156. Рисование. AvoidXfermode
01.09.2014
Урок 157. Рисование. Bitmap. BitmapFactory. Чтение, вывод на канву, основная информация
06.10.2014
Урок 158. Рисование. Bitmap. Методы createBitmap, работа с пикселами, density, mutable
13.10.2014
Урок 159. Рисование. Bitmap. BitmapFactory.Options, сохранение в файл
20.10.2014
Урок 160. Рисование. Bitmap. Чтение изображений большого размера
27.10.2014
Урок 161. Рисование. Bitmap. Memory-кэш. Picasso
05.11.2014
Урок 162. Графика. Drawable. Shape, Gradient.
18.11.2014
Урок 163. Графика. Drawable. Bitmap, Layer List, State List.
01.12.2014

Сергей Рудюк 16 июня 2015

Автор: Рудюк С.А.

http://corp2.net

Бывает, возникает необходимость сравнить два исходных текста. Для того, чтоб это было удобно сделать, предназначена программа Win Merge.

Данная программа показывает разными цветами отличающиеся места.

Закачать программу можно на сайте разработчика: http://winmerge.org

Данное программное обеспечение распространяется с открытым исходным кодом.

winmerge

Сергей Рудюк 7 июня 2015

Для разбора и кодирования Data Matrix-кодов (оформленный в виде квадрата
матричный код, состоящий из прямоугольных областей и способный содержать в себе
несколько килобайт данных) в Linux удобно использовать пакет libdmtx-utils.

Устанавливаем в Debian/Ubuntu:

sudo apt-get install libdmtx-utils

в Fedora:

sudo yum install libdmtx-utils

Кодируем текст из файла test.txt и сохраняем его в изображение test.png:

dmtxwrite -o test.png test.txt

для управления выводом можно использовать опции:

"-d N" - задаёт размер модуля в пикселях; "-s NxM" - задает размер кодирующих прямоугольников, например, "-s 10x10" "-m N" - задаёт отступы от границ изображения в пикселях; "-e тип" - задаёт тип кодирования данных: b = оптимизация, ориентированная на качество; f = оптимизация, ориентированная на скорость; a = ASCII (по умолчанию) c = C40 (цифры и символы верхнего регистра) t = Text (цифры и символы нижнего регистра) x = X12 ANSI X12 EDI e = EDIFACT (ASCII символы с кодами 32-94) 8 = Base 256 (все восьмибитные символы) "-f формат" - задаёт формат изображения для сохранения (список поддерживаемых форматов можно посмотреть через опцию "-l")

Декодируем содержимое Data Matrix-кода, содержащегося в изображении test.png:

dmtxread test.png

Другие варианты

Система zbar (http://sourceforge.net/projects/zbar/) позволяет декодировать не
только QR-коды, но и штрих коды других типов.

Устанавливаем ZBar в Debian/Ubuntu:

sudo apt-get install zbar-tools

в Fedora:

sudo yum install zbar-tools

Декодируем содержимое штрих-кода, содержащегося в изображении test.jpg:

zbarimg test.jpg

Еще один вариант декодирования QR-кодов - использование программы
libdecodeqr-simpletest из пакета libdecodeqr-examples:

libdecodeqr-simpletest test.jpg


Для кодирования QR-кодов в Linux можно использовать утилиту qrencode (http://fukuchi.org/works/qrencode/index.en.html):

sudo apt-get install qrencode

или

sudo yum install qrencode

Кодируем текст из файла test.txt и сохраняем его в изображение test.jpg:

cat test.txt| qrencode -o test.jpg
Источник: http://www.opennet.ru/tips/info/2565.shtml
Адрес и телефон
E-mail: rs@corp2.net Skype: rudjuk
г. Киев, ул. Белорусская 30, офис. К2Р (схема проезда)
Мы в сети
Меню
www.megastock.ru Здесь находится аттестат нашего WM идентификатора 000000000000
Проверить аттестат
Наверх