INT 21h

Hi, I am Vladimir Smagin, SysAdmin. Telegram Email GPG

Карта автоканалов в России: как я это сделал

№ 6842 В разделе "Программирование" от December 4th, 2014,

Карта автоканалов это один из последних на данный момент проектов. Все сделано уже на ставшим легендарным CodeIgniter 2 с применением API Яндекс.Карт.

Новая версия API Яндекс карт позволяет использовать их сервис без регистрации, токенов и смс. Просто подключаете библиотеку, формируете массив точек и кормите его функции отрисовки.

<script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>

Теперь необходимо написать еще один скрипт, рисующий карту. Нужно начать с создания объекта карты, а потом заставить этот объект размещать наши точки на карте. Итак, пишем функцию отрисовки:

<script type="text/javascript">
ymaps.ready(init);            

function init () {
    myMap = new ymaps.Map('map', {
        center: [59.7208,78.629494],
        zoom: 5,
        controls: ['zoomControl']
    });

Теперь в этой же функции будем создавать объект “точка” и передавать его для отрисовки объекту “карта”. Это и есть тот самый цикл, который рисует точки из вашей БД.

<? //php код получающий из БД массив точек и формирующий javascript код, добавляющий точки на карту
// $cid - ID точки в базе данных чтобы создать уникальное имя
// $cy, $cx - широта и долгота
// $cname - название точки (у меня это название города)
// $kanali_str - тут хранится описание точки (у меня это список каналов в городе, в HTML виде)
// после создания объекта RadioCity$cid он передается в geoObjects для добавления на карту
foreach ($cities as $city) {
    ....
    echo "RadioCity$cid = new ymaps.Placemark([$cy, $cx], {balloonContentHeader: '$cname',balloonContentBody: '$kanali_str'});
    myMap.geoObjects.add(RadioCity$cid);";
} //конец php кода
?>
} 
</script>

После этого можно добавить div с картой в код страницы:

<div id="map"></div>

Также можно менять стили точек и даже прикреплять иконки и прочие штуки и все это также описано в руководстве к API 🙂

Автоканалы России на карте 1 Автоканалы России на карте 2

Нет комментариев »

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Микроблог перейти

# 2018-11-14 12:01:24

Hetzner тихо и незаметно обновили свой terraform провайдер для поддержки volumes, который до сих пор в бете, не дает создавать более 100 гигов и работает только в определенных регионах, но по факту он не дает создать более 10 гигов потому, что лимиты аккаунты надо поднять, которые нельзя поднять потому, что volumes сука в бете!

# 2018-11-07 23:17:33

Столько работал над плейбуками, что чувствую себя инженером по прочистке ансибла


© Vladimir Smagin, 2005-2018. Копирование материалов без разрешения запрещено. GPG 0x29AE91B1A37721C3
Яндекс.Метрика

Fortune cookie: Size counts.