Domanda

E 'possibile generare a livello di codice marcatori in Google? Ad esempio, ho un database di servizi e luoghi che voglio trama su una mappa di Google utilizzando PHP.

Utilizzando l'API v3 Maps, ho creato una mappa e tracciato la multa servizi utilizzando marcatori e finestre informative, ma quello che voglio veramente fare è generare numeri (1,2,3,4 ecc ...) in il marcatore di default bolle in base all'ordine ottengono recuperate dal DB. Inoltre, mi piacerebbe cambiare il colore dell'icona marcatore di programmazione in base al tipo di servizio nel database.

Sto utilizzando PHP, in modo da non so se c'è uno script per fare questo, ma avevo sperato che Google avrebbe fornito questa generazione marcatore personalizzato tramite l'API.

È stato utile?

Soluzione

Hanno PHP sputare codice javascript.

Ecco una piccola funzione convenienza javascript che ho scritto per aggiungere un marcatore con una finestra associata.

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);
  });

 }

Così, dopo aver dichiarato che in qualche luogo javascripty, si sarebbe poi avere qualche PHP che sarebbe probabilmente assomigliano (e supponendo che la tua mappa è una chiamata 'mappa' globale):

<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>

Non ho provato nulla di tutto questo né ho idea di cosa gli sguardi di dati come, ma questo metodo dovrebbe funzionare per quello che hai intenzione. Io non sono sicuro al 100% che cosa si intende per generazione marcatore personalizzato, perché suona come si sta già facendo, non solo tramite PHP.

Altri suggerimenti

L'API di Google Maps richiede l'utilizzo di un'immagine (invece di DIV arbitrario) ai marcatori di visualizzazione, in modo si avrebbe bisogno di rendere il lato immagini server.

Un modo semplice per farlo è quello di utilizzare l'API di Google Charts per rendere le icone marcatori: http://code.google.com/apis/chart/ docs / galleria / dynamic_icons.html # pin

uscita

Esempio: alt text

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

Non so se qualcun altro ha avuto questo problema, ma non ho potuto ciclo un geocode per tracciare i miei punti, e Google anche considerare questo un abuso del loro servizio. Quindi il mio metodo era quello di geocodifica e memorizzare le coordinate Lat Long / in fase di input dell'utente al posto dello stadio di visualizzazione, alleviare lo stress larghezza di banda che mette su Google.

Non sono sicuro se questo avrebbe aiutato, ma può aiutare a precodice forse e memorizzare queste immagini marcatore invece di farlo al volo. Così com'è con la risposta scelta, si fa affidamento su google per produrre queste immagini mentre la pagina si sta caricando, forse si potrebbe desiderare di velocizzare il servizio eseguendo il codice in una fase diversa e memorizzare l'uscita con le coordinate in il database di PHP.

Saluti,

Dan

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top