Клуб API Карт

Метки, AJAX, база.

dronsam726
2 ноября 2012, 00:23

Метки добавляются на карту динамически. Посредством AJAX из базы берутся координаты объектов и добавляются на карту при нажатии на ссылку. Подробнее: при нажатии на ссылку идет обращение к java-скрипту. Этот скрипт посредством AJAX делает запрос к php-файлу. В этом файле запрос в базу для выборки координат и предоставление данных в виде JSON. PHP-файл работает, функция on_search() срабатывает только при загрузке карты. При нажатии на ссылки на странице ничего не происходит. Помогите, пожалуйста, разобраться.

 

<script src="http://api-maps.yandex.ru/1.1/index.xml?key=****" type="text/javascript"></script> 

<script type="text/javascript">
var gCollection;
var map;
//$(document).ready(function(){
// Создание обработчика для события window.onLoad
YMaps.jQuery(function () {
// Создание экземпляра карты и его привязка к созданному контейнеру
map = new YMaps.Map(YMaps.jQuery("#touchinfo_maps")[0]);

// Установка для карты ее центра и масштаба
map.setCenter(new YMaps.GeoPoint(30.313497,59.938531), 15);

//Добавляем элементы управления.
map.addControl(new YMaps.TypeControl());//Тип карты, кнопочки Схема, Гибрид, Спутник
map.addControl(new YMaps.ToolBar());//Тулбар, кнопки Рука, Лупа, Линейка
map.addControl(new YMaps.Zoom());//Увеличение
  on_search(this,1); //для проверки работы функции.
});
//});

 

function on_search(test,id_razdela) {
     var link = YMaps.jQuery(test);
    map.removeAllOverlays();
         YMaps.jQuery.getJSON("http://touchinfo.me/php/mapobr.php", {id_razdela: id_razdela}, function(json){
              gCollection = new YMaps.GeoObjectCollection("default#nightPoint");
              bounds = new YMaps.GeoCollectionBounds();
                 for (i = 0; i < json.length; i++)

                 {
                    var placemark = new YMaps.Placemark(new YMaps.GeoPoint(json[i].lng,json[i].lat));
                    bounds.add(new YMaps.GeoPoint(json[i].lng,json[i].lat));
                    gCollection.add(placemark);
                }
                if (link.hasClass("active")) 
                {
                    map.removeOverlay(gCollection);
                }
                else 
                {
                    map.setBounds(bounds);
                    map.addOverlay(gCollection);
                }

link.toggleClass("active");
return false;
});
}
</script>
<div class="content">
<div class="cont">
<div class='sidebarnew'>
<ul>
<?php foreach($main_razdel as $item):?>
<li><a href="#" id="<?=$item['id_razdel'];?>" onСlick="on_search(this,<?=$item['id_razdel'];?>);"><?=$item['name_razdel'];?></a></li>
<?php endforeach;?>
</ul>
</div>
<div class='CenterLineNew' style='padding-top:0;'>
<?php
if(isset($breadcrumbs ) && count($breadcrumbs) !=0 ){
echo "<ul class='breadcrumbsnew'>";
foreach($breadcrumbs as $k=>$v){
echo "<li>".$v."<span>".$this->config->item ('breadcrumbs_delimeter')."</span></li>";
}
echo "</ul>";
}
?>
<div class='user_class' style='padding-left:200px;'>
<div id='touchinfo_maps' style='height:500px;'>

</div>
</div>
</div>
</div>
</div>
<?php $this->load->view('footer.php');?> 

 

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