Клуб API Карт

Добавление меток

Денис Артамонов
16 марта 2015, 17:40

Добрый день!

имеется php-массив  адресов

нужно разместить на карте метки в соответствии с адресами из массива

у каждой метки будет уникальный цвет и балун

 

подскажите, пример или как лучше это реализовать

 

Мой небольшой набросок кода, его результат здесь http://portal.vsistem.ru/maps/personal_map_tasks/placemarks.php

 

---------------------

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

<script>arAddress = []</script>

 

<?

$arAddress = array(

'Новосибирск демакова 23',

'Новосибирск Ильича 5',

'Новосибирск, ул. Семьи Шамшиных, 30'

);

 

for($i=0; $i<count($arAddress); $i++){

echo '<script>arAddress['.$i.']="'.$arAddress[$i].'"</script>';

}

 

?>

 

<script>

function init() {

myMap = new ymaps.Map('map', {

center: [55.030199, 82.92043],

zoom: 10

});

 

for(i=0; i<arAddress.length; i++) {

 

counter = 0;

 

ymaps.geocode(arAddress[i], {results: 1}).then(function (res) {

 

Address = arAddress[counter];

 

firstGeoObject = res.geoObjects.get(0),

coord_lat = firstGeoObject.geometry.getCoordinates()[0],

coord_lon = firstGeoObject.geometry.getCoordinates()[1];

 

 

myMap.geoObjects.add(new ymaps.Placemark([coord_lat, coord_lon], {

balloonContent: Address

},

{

iconColor: "green"

}));

 

arCoords[arCoords.length] = "["+coord_lat+", "+coord_lon+"]";

counter++;

});

 

}

 

 

}

ymaps.ready(init);

</script>

<div id="map" style="width: 100%; height: 100%"></div>

 

2 комментария
Подписаться на комментарии к посту

Лучше геокодировать на сервере один раз, сохранить координаты в БД и создавать метки по координатам без лишних http-запросов с каждого клиента

Денис Артамонов
16 марта 2015, 18:55

спасибо)

направили на хороший путь