Как обновить координаты маркера, не обновляя карту

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
ArtIntellAnd
Интересующийся
Сообщения: 26
Зарегистрирован: 08 сен 2011, 06:46
Репутация: 0

Как обновить координаты маркера, не обновляя карту

Сообщение ArtIntellAnd »

Всем привет, пытаюсь создать навигационную карту, используя технологию ajax, дошел до момента когда карта не обновляется, а обновляются только маркеры. Но проблема в том что маркеры не удаляются, а остаются прежнии. Т. е. если у меня стоит интервал смены координат 5 секунд, то через каждые 5 секунд накладывается новый слой с маркером, как от этого уйти. Привожу код...

Скрипт добавляет новый маркер с новыми координатами, которые берутся из id=result:

<script type='text/javascript'>
function pris()
{
//var onttext = document.getElementById('result').innerHTML;
var a = document.getElementById('result').innerHTML;;
var temp = new Array();
temp = a.split(',');
document.getElementById('text').innerHTML = temp[0];
var lat = temp[0];
var lon = temp[1];
var zoom = temp[2];

layerMarkers = new OpenLayers.Layer.Markers("Markers");
map.addLayer(layerMarkers);
var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
var size = new OpenLayers.Size(21,25);
var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
var icon = new OpenLayers.Icon('http://www.openstreetmap.org/openlayers ... ize,offset);
layerMarkers.addMarker(new OpenLayers.Marker(lonLat,icon));
}
</script>
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Как обновить координаты маркера, не обновляя карту

Сообщение Denis Rykov »

1, 2
Spatial is now, more than ever, just another column- The Geometry Column.
ArtIntellAnd
Интересующийся
Сообщения: 26
Зарегистрирован: 08 сен 2011, 06:46
Репутация: 0

Re: Как обновить координаты маркера, не обновляя карту

Сообщение ArtIntellAnd »

Мне приведенные примеры чет не сильно помогли...
Может кто еще подскажет...
Вот более подробно:
написал скриптик который грузит в блок div координаты через 5 секунд, что-то вроде <div id="koordinati">Lat=20,Lon=30,Zoom=15</div>
Одновременно с этим беру с блока координаты и рисую по ним маркер, добавляя на карту

layerMarkers = new OpenLayers.Layer.Markers("Markers");
map.addLayer(layerMarkers);
var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
var size = new OpenLayers.Size(21,25);
var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
var icon = new OpenLayers.Icon('http://www.openstreetmap.org/openlayers ... ize,offset);
layerMarkers.addMarker(new OpenLayers.Marker(lonLat,icon));


Получается что он мне постоянно добавляет на карту новый слой, а как уйти от этого...
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Как обновить координаты маркера, не обновляя карту

Сообщение Denis Rykov »

У маркеров есть свойство moveTo.
Spatial is now, more than ever, just another column- The Geometry Column.
Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя