Hallo Zusammen,
auch nach längerem Suchen komme ich leider nicht weiter. Zu meinem Problem:
Ich habe eine statische Seite auf der an einer Seite eine Liste mit mehreren Artikeln zu sehen ist. Der Inhalt liegt über einer bildschirmfüllenden Google-Maps Karte.
In den Benutzerdefinierten Feldern der ARTIKEL habe ich bei jedem Artikel eine vollständige Adresse angegeben. Diese lasse ich (mit dem Code unten) geocodieren und erhalte korrekte Längen- und Breitenangaben. So weit so gut - jetzt das Problem:
Jetzt möchte ich aber alle diese ARTIKEL, von denen ich ja die Längen- und Breitenangaben habe, mittels eines Pins (Marker) auf der oben beschriebenen Google-Maps Karte anzeigen lassen. Dazu möchte ich noch bei Klick auf ein solchen Pin den Auszug (Excerpt) des Artikels anzeigen lassen. Ich habe leider keine Ahnung wie das gehen soll.
Zur Übersicht hier der bisherige Code:
In einem Loop lese ich die Adresse aus und geocodiere diese (klappt prima):
<?php
$hsnr = get_post_meta($post -> ID, 'hausnummer', $single = true);
$str = get_post_meta($post -> ID, 'strasse', $single = true);
$plz = get_post_meta($post -> ID, 'plz', $single = true);
$ort = get_post_meta($post -> ID, 'ort', $single = true);
$land = get_post_meta($post -> ID, 'land', $single = true);
$adressliste = $str . '+' . $hsnr . '+' . $plz . '+' . $ort . '+' . $land;
$geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?address='.$adressliste.'&sensor=false');
$output= json_decode($geocode);
$lat = $output->results[0]->geometry->location->lat;
$long = $output->results[0]->geometry->location->lng;
$ergebnis = $lat . "," . $long;
echo "<div id='test'>" . $ergebnis . "</div>";
?>
Alles anzeigen
Als TEST für die Anzeige von Pins und zur Erstellung der Karte im Hintergrund nutze ich folgendes Script:
var geocoder;
var map;
function initialize() {
var locations = [
['Hier steht Text',51.030856, 7.843033, 4],
['alksdjflasfdaf', 51.028723, 7.849728, 5],
];
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(51.030167, 7.843838);
var myOptions = {
zoom: 16,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("karte"), myOptions);
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
}
$(document).ready(function() {
initialize();
var gg = document.getElementById("test").innerHTML;
});
Alles anzeigen
Die Frage ist also - wie kann ich die Adressen (Geocodes) der Artikel inklusive der Excerpts auf einer einzigen Karte anzeigen.
Ich hoffe, ich konnte mich einigermaßen verständlich ausdrücken und ich freue mich über jede Hilfe!!!
Viele Grüße
mutoo