Pregunta

¿Es posible generar mediante programación marcadores en Google? Por ejemplo, tengo una base de datos de servicios y lugares que quiero trama en un mapa de Google usando PHP.

Uso de la versión 3 del API Maps, he creado un mapa y trazan la multa servicios utilizando marcadores y ventanas de información, pero lo que realmente quiero hacer es generar números (1,2,3,4 ... etc) en el marcador por defecto burbujas basa en el orden en que consiguen recuperar de la base de datos. Además, me gustaría cambiar el color del icono de marcador de programación basado en el tipo de servicio en la base de datos.

Estoy usando PHP, así que no sé si hay un script para hacer esto, pero yo tenía la esperanza de que Google proporcionaría esta generación marcador de encargo a través de la API.

¿Fue útil?

Solución

Tener el PHP escupió código javascript.

He aquí una pequeña función de conveniencia javascript que escribí para añadir un marcador asociado con una ventana.

function add_marker(opts, place) {
  var marker = new google.maps.Marker(opts);
  marker.place_id = place.id;
  markers[place.id] = marker;
  var infowindow = new google.maps.InfoWindow({
    content: place.details
  });

  infowindows[place.id] = infowindow;

  google.maps.event.addListener(marker, 'click', function() {
    infowindows[marker.place_id].open(map,marker);
  });

 }

Así que después de declarar que en algún lugar javascripty, a continuación, tendría algo de PHP que probablemente me parece a (y suponiendo que su mapa es un llamado mapa total):

<script type="text/javascript">
  <?php 
  $count = 0;
  foreach ($rowset as $row): ?>
  add_marker({
        position: new google.maps.LatLng(<?php echo $row->lat ?>, <?php echo $row->lng ?>),
        title:<?php echo $row->title ?>,
        map:map
    }, { id:'<?php echo $count ?>', details:'<?php echo $row->details ?>' });
  <?php 
  $count++;
  endforeach; ?>
</script>

No he probado nada de esto ni tengo idea de lo que las miradas de datos como, pero ese método debe trabajar por lo que está queriendo. No estoy 100% seguro de lo que entendemos por la generación de marcador de costumbre, porque suena como que ya está haciendo eso, simplemente no a través de PHP.

Otros consejos

La API de Google Maps requiere el uso de una imagen (en lugar de DIV arbitraria) a los marcadores de visualización, por lo que se necesita para hacer que el lado del servidor de imágenes.

Una forma sencilla de hacerlo es utilizar la API de gráficos de Google para hacer iconos de marcador: http://code.google.com/apis/chart/ docs / galería / dynamic_icons.html # pasadores

Ejemplo de salida: text alt

Generado con: https: //chart.apis. google.com/chart?chst=d_map_pin_letter&chld=C|FF0000|000000

No estoy seguro de si alguien más tenía este problema, pero no podía bucle de una codificación geográfica para trazar mis puntos, y Google incluso considerar esto un abuso de su servicio. Así que mi método era de codificación geográfica y almacenar las coordenadas de latitud / longitud en la etapa de entrada del usuario en lugar de la etapa de visualización, aliviando la tensión de ancho de banda que pone en Google.

No estoy seguro de si esto ayudaría pero puede ayudar a comprobar la validez de tal código y almacenar estas imágenes marcadores en lugar de hacerlo sobre la marcha. Tal como está con su respuesta elegida, usted está confiando en google para producir estas imágenes mientras se carga la página, tal vez es posible que desee acelerar su servicio ejecutando el código en una etapa diferente y almacenar la salida con las coordenadas en su base de datos PHP.

Saludos,

Dan

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top