я сделал свой макет балуна для примера http://api.yandex.ru/maps
балун открывается вниз вправо, соответсвенно если щелкнуть на левом верхнем углу карты - есть место для его открытия внутрь карты, тем не менее срабатывает autopan и центр зачем то сдвигается. Почему так происходит и что сделать чтобы autopan срабатывал только тогда когда это дейтвительно нужно?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtm
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Примеры. События карты.</title>
<STYLE type="text/css">
div.test1 {
position: relative;
width: 150px;
padding: 10px;
margin-left: -10px;
border: 1px solid #848877;
background: #f8ffe0;
}
</STYLE>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<!--
Подключаем API карт 2.x
Параметры:
- load=package.full - полная сборка;
- lang=ru-RU - язык русский.
-->
<script src="http://api-maps.yandex.ru
type="text/javascript"></script>
<script type="text/javascript">
// Как только будет загружен API и готов DOM, выполняем инициализацию
ymaps.ready(init);
function init () {
var myMap = new ymaps.Map("map", {
center: [57.513314, 41.23869], // Красное-на-Волге
zoom: 11
}, {
balloonMaxWidth: 200
});
var myBalloonContentBodyLayout = ymaps.templateLayoutFactory.createClass(
'<div class="test1"><h3>$[contentHeader]</h3>' +
'<p>$[contentBody]</p>' +
'<p>$[contentFooter]</p></div>'
);
ymaps.layout.storage.add(
// Обработка события, возникающего при щелчке
// левой кнопкой мыши в любой точке карты.
// При возникновении такого события откроем балун.
myMap.events.add('click', function (e) {
if (!myMap.balloon.isOpen()) {
var coords = e.get('coordPosition');
myMap.balloon.open(coords, {
contentHeader: 'Событие!',
contentBody: '<p>Кто-то щелкнул по карте.</p>' +
'<p>Координаты щелчка: ' + [
coords[0].toPrecision(6),
coords[1].toPrecision(6)
].join(', ') + '</p>',
contentFooter: '<sup>Щелкните еще раз</sup>'
}, {
layout: "my#balloonContentBodyLayout",
shadow: false
});
} else {
myMap.balloon.close();
}
});
// Обработка события, возникающего при щелчке
// правой кнопки мыши в любой точке карты.
// При возникновении такого события покажем всплывающую подсказку.
myMap.events.add('contextmenu', function (e) {
myMap.hint.show(e.get('coordPosition'), 'Кто-то щелкнул правой кнопкой');
});
}
</script>
</head>
<body>
<h2>События карты</h2>
<p>При щелчке левой кнопкой мыши в любой точке карты открывается балун (в соответствующей позиции).
При щелчке правой кнопкой мыши появляется всплывающая подсказка.</p>
<div id="map" style="width: 800px; height: 400px"></div>
</body>
</html>