Foros del Web » Programando para Internet » PHP »

google maps - mysql tablas relacionadas

Estas en el tema de google maps - mysql tablas relacionadas en el foro de PHP en Foros del Web. hola muchachos como están tengo un problema con un código de google maps que uso para mostrar marcadores los datos los tomo de una tabla ...
  #1 (permalink)  
Antiguo 06/01/2016, 11:04
 
Fecha de Ingreso: enero-2012
Mensajes: 224
Antigüedad: 12 años, 3 meses
Puntos: 1
google maps - mysql tablas relacionadas

hola muchachos como están tengo un problema con un código de google maps que uso para mostrar marcadores

los datos los tomo de una tabla mysql , esta esta vinculada a otra tabla que se llama tipo_marcador que tiene la dirección url de la imagen del icono a mostrar en el mapa

tengo un problema para mostrar el icono según el tipo de marcador, se me repite siempre el primer registro , alguno me podría echar una mano gracias


Código:
 

    $a= array();
    $i=0;
    $sql= $con->query('SELECT a.* , b.* FROM marcadores a , tipo_marcador b WHERE a.tipo = b.id');

    while( $row =mysqli_fetch_array($sql)){
      $b=array();

      $b[]= utf8_encode($row["nombre"]);

      $b[]=$row["lat"];
      $b[]=$row["lng"];
       $b[]=$row["tipo"];
         $b[]=$row["descripcion"];
          $b[]= ($row["id"]);
           $icono= ($row["icono"]);

         $a[$i]=$b;
         $i++;
     }
  
?>


    
<script type="text/javascript">
var map;
var Markers = {};
var infowindow;

var locations =  <?  echo json_encode($a); ?>;
var origin = new google.maps.LatLng(locations[0][1], locations[0][2]);


function initialize() {
  var mapOptions = {
    zoom: 13,
    center: origin
  };

  map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

	infowindow = new google.maps.InfoWindow();


var image = {
    url: '<?php echo $icono ; ?>',
    // This marker is 20 pixels wide by 32 pixels high.
    size: new google.maps.Size(20, 32),
    // The origin for this image is (0, 0).
    origin: new google.maps.Point(0, 0),
    // The anchor for this image is the base of the flagpole at (0, 32).
    anchor: new google.maps.Point(0, 32)
  };

    for(i=0; i<locations.length; i++) {

   






    	var position = new google.maps.LatLng(locations[i][1], locations[i][2]);
		

    var marker = new google.maps.Marker({
      position: position,
      map: map,
      icon: image,
    
	});

		google.maps.event.addListener(marker, 'click', (function(marker, i) {
			return function() {

				var contentString = '<div id="content">'+
      '<div id="siteNotice">'+
      '</div>'+
      '<h1 id="firstHeading" class="firstHeading" style="font-size:12px;">'+ locations[i][0] +'</h1>'+
      '<div id="bodyContent">'+
      '<p>'+ locations[i][4]+'</p>'+
      '<a href="detalle_marcador.php?id='+ locations[i][5]+'"> <p> Ver Detalle </p> </a>'+
      
      '</div>'+
      '</div>';


				infowindow.setContent(contentString);
				infowindow.setOptions({maxWidth: 400});
				infowindow.open(map, marker);
			}
		}) (marker, i));
		Markers[locations[i][0]] = marker;
	}

	locate(0);

}

function locate(marker_id) {
	var myMarker = Markers[marker_id];
	var markerPosition = myMarker.getPosition();
	map.setCenter(markerPosition);
	google.maps.event.trigger(myMarker, 'click');
}

google.maps.event.addDomListener(window, 'load', initialize);

</script>

Última edición por mktalternativa; 06/01/2016 a las 11:16

Etiquetas: google, maps, mysql, relacionadas, select, sql, tabla, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:45.