Клуб API Карт

Изменить балун с адреса на другую инфорацию.

potol-ok-lider
20 ноября 2014, 02:06

Здравствуйте, у меня такой вопрос,  вот у меня реализован multigeocode тут - http://skindoctors.ru/magazini , адреса берутся из 
БД, как можно реализовать так, чтобы в балунах был не только адрес, но и дополнительная информация, тоже с БД.

Вот код:  .$value->city->name. (ячейка город) .$value->address.(ячейка адрес) нужно, чтобы в балуне появлялось название компании .$value->name.

 

 

<script type="text/javascript">

    <?php

        echo "var magObjs = ["; 

        foreach ($mags as $key => $value) {

            if ($key!=0) {

                echo ",'".$value->city->name.",".$value->address."'";

            } else {

                echo "'".$value->city->name.",".$value->address."'";

            }

        }

        echo "];";

    ?>

</script>

<script type="text/javascript">

    var CityCoordinats;

    function init(street) {                

        if (street) {

            street = street;

            var res = '';

            var myGeocoder = ymaps.geocode(street);

            myGeocoder.then(

                function (res) {

                    var firstGeoObject = res.geoObjects.get(0);

                    CityCoordinats = firstGeoObject.geometry.getCoordinates();

                    myMap.setCenter(CityCoordinats, 9);

                },

                function (err) {

                }

            );

        }             

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

            center: [55.753676, 37.619899],

            zoom: 9,

            controls: ['zoomControl']

        });

        for(var el=0;el<magObjs.length;el++){

 

        }

 

         <?php

            if (count($mags)>0) {

                echo "var objects = ymaps.geoQuery("; 

                foreach ($mags as $key => $value) {

                    if ($key!=0) {

                        echo ".add(ymaps.geocode('г. ".$value->city->name.", ".$value->address. "'))";

                    } else {

                        echo "ymaps.geocode('г. ".$value->city->name.", ".$value->address."'))";

                    }

                }

            } else {

                echo "var objects = false;";     

            }

            

        ?>

        

        if (objects) {

            myMap.geoObjects.add(objects.clusterize());    

        };

 

 

    }

 

ymaps.ready(init);

$(document).ready(function() {

    $('.map_search button').click(function(){

        $('.right_map #map').html('');    

        var street =  $('.map_search input').val(); 

        init(street);

    })

    $('.left_map ul li').click(function(){

        $('.right_map #map').html('');    

        var street =  $(this).text();    

        init(street);

    })

});

</script>

 

 

помогите разобраться.

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

Не надо геокодировать одно и тоже на клиенте.сделайте это один раз на сервере и создавайте метки по координатам

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

Добрый день, я сделал чтобы координаты геокодировались в БД на сервере один раз, все координаты отлично записались в БД, но теперь другая проблема, они записаны не в той последовательности, которая нужна при построение карты, не подскажите как поменять широту с долготой местами?

Можно указать любой порядок координат при подключении апи

&coordorder=longlat