Pisane na szybko, ale działa:
<script type="text/javascript"> function dodajMarker(lat,lon,ikona_url,nazwa)
{
var rozmiar = new google.maps.Size(50,43);
var punkt_startowy = new google.maps.Point(0,0);
var punkt_zaczepienia = new google.maps.Point(15,12);
var ikona = new google.maps.MarkerImage(ikona_url, rozmiar, punkt_startowy, punkt_zaczepienia);
var marker = new google.maps.Marker(
{
position: new google.maps.LatLng(lat,lon),
title: nazwa,
icon: ikona,
map: mapa
});
google.maps.event.addListener(marker,"click",function()
{
dymek.setPosition(marker.getPosition());
dymek.setContent(marker.txt);
dymek.open(mapa);
});
return marker;
}
function wczytajMarkery(markery_arr)
{
for(var i=0; i<markery_arr.length; i++)
{
// Wyczyszczenie markerów z mapy
markery_arr[i].setMap(null);
}
// Wyczyszczenie tablicy z markerami
markery_arr = new Array();
$.ajax(
{
url: "dane.php",
method: "GET",
dataType: "xml",
success: function(xml)
{
var markery = xml.getElementsByTagName("marker");
for(var i=0; i<markery.length; i++)
{
var lat = parseFloat(markery[i].attributes.getNamedItem("LAT").nodeValue);
var lon = parseFloat(markery[i].attributes.getNamedItem("LNG").nodeValue);
var ikona_url = markery[i].attributes.getNamedItem("FLAG").nodeValue;
var nazwa = markery[i].attributes.getNamedItem("NAME").nodeValue;
markery_arr.push(dodajMarker(lat,lon,ikona_url,nazwa));
}
alert('Aktualnie mamy '+markery_arr.length+' markery');
}
});
return markery_arr;
}
$(document).ready(function()
{
var wspolrzedne = new google.maps.LatLng(50.4716820, 19.0718579);
var opcjeMapy =
{
zoom: 4,
center: wspolrzedne,
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: false
};
mapa = new google.maps.Map(document.getElementById("mapa"), opcjeMapy);
dymek = new google.maps.InfoWindow();
// Tablica zaierająca markery
var markery_arr = new Array();
setInterval(function()
{
// Wywołanie funkcji wczytajMarkery() co dwie minuty
markery_arr = wczytajMarkery(markery_arr);
},120000);
});