Entonces sí era lo que te decía yo. Está bien trabajar todo en arrays, pero valida que todos tengan el índice correspondiente.
Te sugiero que, en tu nuevo código, cambies esto:
Código PHP:
marker = new google.maps.Marker({
position: latLonCenter,
map: map,
draggable: false,
icon: image,
title: '<?php echo $icao; ?> - <?php echo $city; ?>',
Airport1: Airport1
});
markers[<?php print $i; ?>] = marker;
Por esto:
Código PHP:
markers[<?php print $i; ?>] = new google.maps.Marker({
position: latLonCenter,
map: map,
draggable: false,
icon: image,
title: '<?php echo $icao; ?> - <?php echo $city; ?>',
Airport1: Airport1
});
Ya que reviendo el código, me parece ahora innecesario esa asignación, si se puede hacer del principio, teniendo bien definido el índice en el array (el $i php).
Mi duda, ahora, es si al crear el nuevo objeto tipo marker de google maps, ¿estás efectivamente mostrándolo en el mapa? Yo recordaba que luego de crear el objeto había que asociarlo al objeto mapa, en algo como esto (favor obviar errores de sintaxis, que es sólo como referencia):
Código javascript
:
Ver original// * esto no es código googlemaps, es sólo ejemplo de la lógica en cuestión *
var miMapa = new mapaGoogle(bla bla bla);
var miMarker = new markerGoogle(bla bla bla);
miMapa.add(miMarker);
Como no alcanzo a ver algo así en tu código, pues lo pregunto (igual lo estoy viendo por encimita no más).
Saludos!