ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
479
479
EMPFEHLEN
-
Hallo liebe Leute und zunächst ein frohes und gesundes Jahr euch allen!

Ich möchte auf meiner Seite eine Google-Karte einbinden, auf der per Marker/Pin Adressen angezeigt werden. Für eine Adresse ist das gar kein Problem, aber wie bekomme ich mehrere Marker dynamisch angezeigt? Man kann ja mehrere Marker fest in den Code schreiben, in meinem Fall müssten die allerdings dynamisch geladen werden.
Ich benutze für die Website Wordpress und speichere die Koordinaten in Custom Fields.
So sieht mein bisheriger Code aus:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
<script type="text/javascript"> function initialize() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map_canvas")); <?php/* Ausgangsdaten konfigurieren: Längen und Breitenangabe des Karten-Mittelpunktes; Zoomfaktor, Kartentyp (G_NORMAL_MAP, G_HYBRID_MAP, G_SATELLITE_MAP)*/?> map.setCenter(new GLatLng(<?php echo get_post_meta($post->ID, 'lat', true); ?>, <?php echo get_post_meta($post->ID, 'lng', true); ?>), 13, G_NORMAL_MAP); function createMarker(point,html) { var marker = new GMarker(point); <?php/*Tooltip beim Klick auf den Marker anzeigen oder nicht*/?> GEvent.addListener(marker, 'click', function() { marker.openInfoWindowHtml(html); }); return marker; } <?php/* Standort Anfang*/?> var point = new GLatLng(<?php echo get_post_meta($post->ID, 'lat', true); ?>, <?php echo get_post_meta($post->ID, 'lng', true); ?>); var marker = createMarker(point,'<?php echo get_post_meta($post->ID, 'store', true); ?><br><?php echo get_post_meta($post->ID, 'street', true); ?><br><?php echo get_post_meta($post->ID, 'zip', true); ?> <?php echo get_post_meta($post->ID, 'locality', true); ?>') map.addOverlay(marker); <?php/* Standort Ende*/?> <?php/* Standort Anfang*/?> var point = new GLatLng(<?php echo get_post_meta($post->ID, 'lat', true); ?>, <?php echo get_post_meta($post->ID, 'lng', true); ?>); var marker = createMarker(point,'<?php echo get_post_meta($post->ID, 'store', true); ?><br><?php echo get_post_meta($post->ID, 'street', true); ?><br><?php echo get_post_meta($post->ID, 'zip', true); ?> <?php echo get_post_meta($post->ID, 'locality', true); ?>') map.addOverlay(marker); <?php/* Standort Ende*/?> <?php/* Standort Anfang*/?> var point = new GLatLng(<?php echo get_post_meta($post->ID, 'lat', true); ?>, <?php echo get_post_meta($post->ID, 'lng', true); ?>); var marker = createMarker(point,'<?php echo get_post_meta($post->ID, 'store', true); ?><br><?php echo get_post_meta($post->ID, 'street', true); ?><br><?php echo get_post_meta($post->ID, 'zip', true); ?> <?php echo get_post_meta($post->ID, 'locality', true); ?>') map.addOverlay(marker); <?php/* Standort Ende*/?> <?php/* Standort Anfang*/?> var point = new GLatLng(<?php echo get_post_meta($post->ID, 'lat', true); ?>, <?php echo get_post_meta($post->ID, 'lng', true); ?>); var marker = createMarker(point,'<?php echo get_post_meta($post->ID, 'store', true); ?><br><?php echo get_post_meta($post->ID, 'street', true); ?><br><?php echo get_post_meta($post->ID, 'zip', true); ?> <?php echo get_post_meta($post->ID, 'locality', true); ?>') map.addOverlay(marker); <?php/* Standort Ende*/?> <?php/* Standort Anfang*/?> var point = new GLatLng(<?php echo get_post_meta($post->ID, 'lat', true); ?>, <?php echo get_post_meta($post->ID, 'lng', true); ?>); var marker = createMarker(point,'<?php echo get_post_meta($post->ID, 'store', true); ?><br><?php echo get_post_meta($post->ID, 'street', true); ?><br><?php echo get_post_meta($post->ID, 'zip', true); ?> <?php echo get_post_meta($post->ID, 'locality', true); ?>') map.addOverlay(marker); <?php/* Standort Ende*/?> <?php/* Navigationselemente einblenden*/?> map.addControl(new GSmallMapControl()); <?php/* Kartentypen einblenden*/?> map.addControl(new GMapTypeControl()); <?php/* Maßstab einblenden*/?> map.addControl(new GScaleControl()); <?php/* Mouse Zoom aktivieren*/?> map.enableScrollWheelZoom(); map.enableContinuousZoom(); } } </script>
Die Koordinaten werden per
Code :1
<?php echo get_post_meta($post->ID, 'lat', true); ?>, <?php echo get_post_meta($post->ID, 'lng', true); ?>
aus den Custom Fields geladen. Bei einer Adresse kein Problem, bei mehreren wird weiterhin nur ein Marker angezeigt.
Nun ist es so, dass auf manchen Unterseiten der Website mal 5 Adressen, auf anderen Unterseiten 10 Adressen per Custom Fields angezeigt werden. Ich hätt auf jeder dieser Unterseiten gern eine Google-Karte mit der entsprechenden Anzahl an Markern.
Habt ihr eine Lösung für dieses Problem?
Vielen Dank schon im Voraus für eure Hilfe und einen guten Start in die Woche
-
03.01.12 11:52 #2
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Hmm, könnte es sein, das deswegen nur einer angezeigt wird, weil die Koordinaten immer die gleichen sind?
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Der Aufruf für die Kooradinaten ist zwar immer derselbe, aber jede Post ID hat ihre eigenen Koordinaten in den Custom Fields gespeichert. Und durch $post->ID soll er ja die für die jeweilige ID spezifischen Koordinaten holen. Per HTML-Ausgabe klappt das nach diesem Prinzip einwandfrei, nur nicht in der Google-Map.
Ich denke, hier müsste auch eine Schleife rein, da jede Unterseite auf meiner Website verschieden viele Post IDs besitzt. Die Schleife müsste also solange durchlaufen, bis sie bei dem letzten Post angekommen ist und die entsprechenden Koordinaten in den Code setzen. Leider bin ich in Sachen PHP nicht fit genug, um das entsprechend umzusetzen. Daher würde ich mich sehr freuen, wenn ihr mir dabei helfen könnt
Dankeschön!
-
03.01.12 13:37 #4
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Ich weiß jetzt erstmal nicht, was du mit "Custom Fields" meinst. Auch ist nicht klar, wie die Daten in $post reinkommen und wo sie genau herkommen. Es wäre sinnvoll, mal ein
Code php:1
var_dump($post);
zu sehen. Meine Vermutung lautet, das $post ein simples Objekt ist und nur einen Datensatz enthält. Wenn dem nicht so ist, musst du erstmal erklären, was $post überhaupt ist.Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Hallo saftmeister, danke zunächst für deine Antworten!
Custom Fields sind im Prinzip extra Felder, die mit einem Post verknüpft werden. In diesen Feldern können Informationen gespeichert werden, auf die man dann zugreifen kann (wie bspw. die Koordinaten). Siehe auch hier: http://codex.wordpress.org/Custom_Fields
Auf einer anderen Unterseite rufe ich die Daten aus den Custom Fields folgendermaßen ab:
Code :1 2 3 4 5 6 7
<?php while (have_posts()) : the_post(); $count++; ?> <?php echo get_post_meta($post->ID, 'Vorname', true); ?><br /> <?php echo get_post_meta($post->ID, 'Nachname', true); ?> <?php echo get_post_meta($post->ID, 'Spitzname', true); ?> <?php endwhile; ?>
Vorname, Nachname und Spitzname sind hier jeweils Custom Fields, die mir dann durch die Schleife auf der Seite ausgegeben werden.
Das sieht dann so aus:
Vorname
Nachname Spitzname
Vorname
Nachname Spitzname
Vorname
Nachname Spitzname
...
So eine Schleife bräuchte ich wohl auch für die Google Maps-Geschichte. Hab es aber leider noch nicht lauffähig umsetzen können.Geändert von Rayne (06.01.12 um 09:50 Uhr)
Ähnliche Themen
-
After Effects Marker (Composition marker in anderer Komposition als Layer Marker)
Von kharn im Forum Videoschnitt, Videotechnik & -produktionAntworten: 0Letzter Beitrag: 15.05.11, 18:53 -
Google Maps + Marker + Addresse
Von Jantz im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 08.07.09, 08:45 -
Google Maps API Marker mit Firmeninfo
Von ne0hype im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 09.12.08, 22:27 -
Google Maps API Marker mit Firmeninfo
Von ne0hype im Forum PHPAntworten: 1Letzter Beitrag: 09.05.08, 01:31 -
Google-MAP und eigene Marker
Von berlinkw im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 10.03.08, 11:37





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren