Клуб API Карт

Центрирование метки

iwsys
9 апреля 2012, 14:01

Здравствуйте! Есть тестовый сайт http://map.izyum.name/. Проблема заключается в следущем.

К примеру на сайте выбираем страну Россия и город Москва.  Появляется 3 метки на карте. Как сделать, что при клике на метку она становилась по центру и увеличивался zoom до 16? 

Получается увеличить зум map.setCenter(16) но метка не центрируется...


var map;
YMaps.jQuery(function () {
map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]
map.setCenter(new YMaps.GeoPoint(37.728348,55.624299), 5);
map.enableScrollZoom(
map.addControl(new YMaps.ToolBar());//Тулбар, кнопки Рука, Лупа, Линейка
map.addControl(new YMaps.Zoom());//Увеличение
YMaps.jQuery("select").change(function () {
var town = YMaps.jQuery("#City :selected").val(
do_search(town);
})
.change(
}

function do_search(town){
map.removeAllOverlays(
YMaps.jQuery('#shops').html('');
YMaps.jQuery.getJSON("searcheshop.php", {town: town}, function(json){
var src_res="";
// Создает стиль метки
var s = new YMaps.Style(
// Создает стиль значка метки
s.iconStyle = new YMaps.IconStyle(
s.iconStyle.href = "/img/pin_green.png";
s.iconStyle.size = new YMaps.Point(46, 62);
gCollection = new YMaps.GeoObjectCollection(
bounds = new YMaps.GeoCollectionBounds(

src_res=src_res;
for (i = 0; i < json.length; i++) {
var sch = i+1;
var placemark=new YMaps.Placemark(new YMaps.GeoPoint(json[i].lat,json[i].lon),{style: s, hideIcon: false}
bounds.add(new YMaps.GeoPoint(json[i].lat,json[i].lon)
placemark.description= '

'+json[i].company+'

';
placemark.description = placemark.description+'Адрес: '+json[i].address;
placemark.description = placemark.description+'
Телефон: '+json[i].rrab;
gCollection.add(placemark);
YMaps.Events.observe(placemark,placemark.Events.Click, function (placemark,mEvent) {
var myHtml = mEvent.getGeoPoint(

    map.setZoom(16);

}
src_res=src_res+''+json[i].company+'
'+json[i].address+'
'+json[i].rrab+'

';
}
map.setBounds(bounds);

map.addOverlay(gCollection);

YMaps.jQuery('#shops').html(src_res);
}
}



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

 

Получается увеличить зум map.setCenter(16) но метка не центрируется...

 setCenter принимает зум вторым параметром

координаты центра нужно взять у метки

 

Спасибо бабушка-бэтман! 

 

 

YMaps.Events.observe(placemark,placemark.Events.Click, function (placemark,mEvent) {

var myHtml =  mEvent.getGeoPoint();

map.setCenter(myHtml,16);

});

Стало  что-то уже похоже... Только не пойму... Одни метки при клике точно по центру. Другие немного не по центру. С чем это связано?

 

Разобрался 

:)

напишите людям как сделали то?)