Добрый день!
Нужно периодически обновлять положение меток на карте.
Для это создаю объект
ml = new YMaps.YMapsML('http://ip/param.xml');
и добавляю его оверлеем на карту
map.addOverlay(ml);
Собвственно - все как в примерахю
При загрузке карты - метки отображаются, при вызове
function RefreshLabel () - в принципе тоже.
Но есть ощущение что каждый раз создавать новый YMaps.YMapsML не верно.
Прежде чем создать новый объект, надо удалить старый...
Как - не могу понять.
А может есть другое решение ?
Код страницы:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Примеры. Знакомство с JavaScript API. Простой вызов карты.</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<script src="http://api-maps.yandex.ru/1.1/index.xml?key=ANXtwUoBAAAAL4SQBwIA-dPRo5Gi1P3tO9TMlo1_ouqRAnsAAAAAAAAAAAD80ov6u0TgJDuvAbHveRWC19Brxg=="
type="text/javascript"></script>
<script type="text/javascript">
var map;
var ml;
function LoadLabel () {
ml = new YMaps.YMapsML('http://xxx.xxx.xxx.xxx/param.xml');
map.addOverlay(ml);
YMaps.Events.observe(ml, ml.Events.Fault, function (ml, error) {
alert('Ошибка: ' + error);
})
};
function RefreshLabel () {
map.removeOverlay (ml);
LoadLabel ();
};
window.onload = function () {
map = new YMaps.Map(document.getElementById("YMapsID"));
map.setCenter(new YMaps.GeoPoint(30.381487,59.917801), 10);
map.addControl(new YMaps.Zoom());
LoadLabel ();
UpdateIntervalID = window.setInterval(function() { RefreshLabel ();} , 5000);
};
</script>
</head>
<body>
<input type="button" value="Обновить" onclick="RefreshLabel ()" />
<div id="YMapsID" style="width:800px;height:600px"></div>
</body>
</html>
Заранее спасибо!
з.ы. сразу не пинайте, в JS полный профан, да и с API только знакомлюсь...