Necesito buscar la nueva posición del archivo json que se actualizará a intervalos regulares para actualizarlo en el mapa sin recargar toda la página repetidamente. ¿Cómo puedo hacerlo sin usar Ajax?

                 if (GBrowserIsCompatible()) {
                 //==add controls
                 var map = new GMap(document.getElementById("map"));
                 map.addControl(new GLargeMapControl());
                 map.addControl(new GMapTypeControl());
                 map.setCenter(new GLatLng(-29.870879, 30.977258),15);

                 var htmls = [];
                 var i = 0;

                 //create marker and set up infoWindow
                 function createMarker(point,ID,name) {
                 var marker = new GMarker(point);
                 GEvent.addListener(marker, "click", function() {
                 marker.openInfoWindowHtml(ID+"<br/>Name: " +name);

                 });

                  return marker;
                }



            process_Data = function(doc) {
                 //parse json file
                 var jsonData = eval('(' + doc + ')');

                 // ======== Plots the markers on Google Maps============

                   for (var i=0; i<jsonData.markers.length; i++) {
                       var point = new GLatLng(jsonData.markers[i].lat, jsonData.markers[i].lng);
                        var marker = createMarker(point,jsonData.markers[i].ID,jsonData.markers[i].name);
                       map.addOverlay(marker);

                       }
                     }

                      GDownloadUrl("points.json", process_Data);

                      }
2
Fish123 16 mar. 2012 a las 15:35
¿Hay alguna razón por la que no desee utilizar AJAX?
 – 
Dr.Molle
16 mar. 2012 a las 17:21
No necesariamente, si funciona será perfecto.
 – 
Fish123
16 mar. 2012 a las 17:36
Está utilizando la API de Google Maps V2, debe actualizar a la V3 ya que la V2 está obsoleta y le queda poco más de un año de vida útil garantizada.
 – 
Mano Marks
19 mar. 2012 a las 11:34

1 respuesta

La mejor respuesta
var marker;

// every 10 seconds
setInterval(updateMarker,10000);

function updateMarker() {
   $.post('/path/to/server/getPosition',{}, function(json) {
      var LatLng = new google.maps.LatLng(json.latitude, json.longitude);
      marker.setPosition(LatLng);
   });
}
9
Manatok 16 mar. 2012 a las 18:04