Frage

Ist es möglich, Markierungen in Google programmatisch zu generieren? Zum Beispiel habe ich eine Datenbank von Dienstleistungen und Standorten, dass ich auf Grundstück auf einer Google Map will mit PHP.

Mit der Maps API v3, habe ich eine Karte erstellt und die Dienste fein mit Markierungen und Infofenster aufgetragen, aber was ich will wirklich ist Zahlen generieren tun (1,2,3,4 ... etc.) in der Standard-Marker Blasen in der Reihenfolge an sich von der DB abgerufen erhalten. Auch ich mag die Farbe des Markierungssymbols auf dem Diensttyp in der Datenbank programmatisch Basis ändern.

Ich bin mit PHP, so weiß nicht, ob es ein Skript, dies zu tun, aber ich hatte gehofft, dass Google diese kundenspezifische Marker Generation über die API zur Verfügung stellen würde.

War es hilfreich?

Lösung

spucken PHP Javascript-Code aus.

Hier ist eine kleine Bequemlichkeit Javascript-Funktion, dass ich eine Markierung mit einem Fenster zugeordnet hinzufügen geschrieben.

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

 }

So, nachdem er erklärte, dass in einem gewissen javascripty Ort, würden Sie dann einige PHP haben, die wahrscheinlich ähnlich war (und vorausgesetzt, Ihre Karte ist eine globale namens ‚Karte‘):

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

Ich habe nichts davon getestet noch habe ich keine Ahnung, was die Daten aussehen, aber das Verfahren sollte für Arbeit, was Sie wollen. Ich bin nicht 100% sicher, was Sie durch individuellen Marker Generation bedeuten, weil es klingt wie Sie bereits das zu tun, nur nicht durch PHP.

Andere Tipps

Die Maps API erfordert, dass Sie ein Bild verwenden (und nicht willkürlich DIV), um Anzeigemarkierungen, so dass Sie die Bilder Server-Seite machen müßten.

Ein einfacher Weg, dies zu tun ist, um den Google Chart API verwendet Markierungssymbole zu machen: http://code.google.com/apis/chart/ docs / gallery / dynamic_icons.html # Pins

Beispiel Ausgabe: alt text

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

Ich bin mir nicht sicher, ob jemand dieses Problem hatte, aber ich konnte eine Geocodierung nicht Schleife meine Punkte plotten, und Google selbst halte dies für einen Missbrauch ihres Dienstes. Also meine Methode war zu geocode und speichern die lat / long-Koordinaten auf der Stufe Benutzereingabe anstelle der Anzeigestufe, die Bandbreite Spannungsarmglühen es auf Google bringt.

Ich bin nicht sicher, ob dies helfen würde, aber es kann Ihnen vielleicht helfen, Pre-Code und speichern diese Markierungsbilder anstatt sie on the fly zu tun. Wie es mit dem gewählten Antwort steht, setzen Sie auf Google diese Bilder zu produzieren, während die Seite geladen ist, vielleicht können Sie Ihren Dienst zu beschleunigen, indem Sie diesen Code auf einer anderen Stufe laufen und die Ausgabe mit den Koordinaten Speicherung in Ihre PHP-Datenbank.

Cheers,

Dan

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top