Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Google Maps Marker wird nur auf der letzten Karte gesetzt
#1
Hallo zusammen,

ich hoffe wirklich, dass mir jemand helfen kann. Falls weitere Informationen benötigt werden um die Lösung finden zu können, bitte einfach mitteilen! [img]data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7[/img]

Und zwar ist mein Problem, dass ich auf einer Seite mehrere Karten anzeigen lasse. Ich habe momentan insgesamt 3 Karten, die ausgegeben werden, das kann aber deutlich mehr werden mit der Zeit. Wenn ich jetzt auf die Adresse von Karte 1 klicke, setzt es den Marker aber auf Karte 3. Selbes wenn ich auf die Adresse 2 und 3 klicke. Wird immer nur auf der letzten Karte angezeigt.

Ich habe das Ganze in JavaScript und PHP/HTML aufgesetzt. JavaScript für die Einstellungen der Karte, HTML/PHP für die Ausgabe und für die Zuweisung.

Hier ein Bild wie die Ausgabe aussieht: Ausgabe
https://abload.de/img/kartenanzeigeqzjds.png
(weiß gerade nicht warum der Link oben nicht angezeigt wird.. hab den Link noch mal darunter gepostet.)

Wie man sieht wird auf der 3. Karte Venedig markiert, obwohl es bei dieser Karte Coburg sein sollte. Venedig ist der Ort von Karte 2.

Hier mein JavaScript Code:


Code:
<script async defer
src="[url=https://maps.googleapis.com/maps/api/js?key=APIKEY&callback=initialize]https://maps.googleapis.com/maps/api/js?key=APIKEY&callback=initialize[/url]">
</script>

<script type="text/javascript">
var geocoder;
var map;
var marker;
var image = "image.png";

function initialize() {
geocoder = new google.maps.Geocoder()
var latlng = new google.maps.LatLng(51.22372, 9.389315);
var mapOptions = {
zoom: 6,
center: latlng,
}
var elements = document.getElementsByName( 'whooper27' );
for (var i = 0; i <= 2; i++) {
var id = elements[i].getAttribute( 'id' );
map = new google.maps.Map(document.getElementById(id), mapOptions);
}
}

function deleteMarker() {
if (marker) {
marker.setMap(null),
marker;
}
}

function drop() {
for (var i = 0; i < neighborhoods.length; i++) {
addMarkerWithTimeout(neighborhoods[i], i * 500);
}
}

function placeMarker(location, ID) {
if (marker) {
marker.setPosition(location);
} else {
marker = new google.maps.Marker({
map: map,
position: location,
draggable: true,
animation: google.maps.Animation.DROP,
icon: image
});
}
}

function codeAddress(idAddress) {

var split1 = idAddress.slice(0, -1); //Entfernt die Letzte Klammer
var split2 = split1.slice(7); //entfernt alles vor der Klammer
var outputID = "ptag[" + split2 + "]"; //setzt die neue ID zusammen

var address = document.getElementById(outputID).innerHTML;

geocoder.geocode( { 'address': address}, function(results, status) {
if (status == 'OK') {
map.setCenter(results[0].geometry.location);
placeMarker(results[0].geometry.location, split2);
} else {
alert('Kodierung des Standorts war aus folgendem Grund nicht moeglich: ' + status)
}
});
}

</script>[/i][/i]

[i]

Hier der zugehörige HTML/PHP-Code (der html-/php-Code ist in einer foreach-Schleife, welche jedes Event nacheinander ausgeben soll):
[/i]

Zitat:<?php

include "maps.js";
$ID = 1; // Die ID zählt am Ende der foreach-Schleife immer 1 nach oben. Diese ist innerhalb der Datenbank ein Primärschlüssel und gibt die Nr. des

// Events wieder.
// Diese ID wird benutzt um die ganzen Werte eindeutig zuordnen zu können. So hab ich z. B. bei Karte 1: ptag[1], output[1], marker[1], map[1]
// bei Karte 2: ptag[2], output[2], marker[2], map[2] und bei Karte 3: ptag[3], output[3], marker[3], map[3] was auch alles zuverlässig funktioniert.

[...]

<p id="ptag[<?php echo $ID; ?>]"><?php echo $ort;?></p>

<output name="Veranstaltungsort" id="output[<?php echo $ID; ?>]" value="<?php echo $ort;?>"></output>
<input id="marker[<?php echo $ID; ?>]" type="button" value="Auf Karte suchen" onclick="codeAddress(this.id)">
<div name="whooper27" id="map[<?php echo $ID; ?>]" class="googlemap" style="width: 852px; height: 480px">
</div></div></div>
<?php $ID++; endforeach;?></div>

[i]
Falls jemand eine Idee hat, ich würde mich riesig freuen. Wenn jemand mehr Informationen haben will, werde ich versuchen die so gut es geht zu liefern.
Bitte stört euch nicht an dem Laiencode.. So wirklich in php und JavaScript bin ich nicht.^^

Viele Grüße
Rene
[/i]
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste