Ich habe derzeit einige Probleme herauszufinden, wie man mehrere Polylinien machen. Ich habe mehrere Benutzer und deren aktuelle und vorherige Standorte in einer Datenbank gespeichert. Mein Problem ist, wenn ich einen anderen Benutzer eintrug, verbindet sich die Polylinie des ersten Benutzers mit einem anderen Benutzer.Google Maps Mehrere Polylinien aus XML
Javascript:
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng(14.5514177, 121.0085608),
zoom: 12
});
var infoWindow = new google.maps.InfoWindow;
// Change this depending on the name of your PHP or XML file
downloadUrl('assets/connections/connection-gmaps.php', function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName('marker');
var path = [];
for (var i = 0; i < markers.length; i++) {
var lat = parseFloat(markers[i].getAttribute("latitude"));
var lng = parseFloat(markers[i].getAttribute("longitude"));
var point = new google.maps.LatLng(lat,lng);
var a = path.push(point);
console.log(a);
}
var polyline = new google.maps.Polyline({
path: path,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
polyline.setMap(map);
Array.prototype.forEach.call(markers, function(markerElem) {
var id = markerElem.getAttribute('id');
var sender = markerElem.getAttribute('sender');
var firstname = markerElem.getAttribute('client_firstname');
var middlename = markerElem.getAttribute('client_middlename');
var lastname = markerElem.getAttribute('client_lastname');
var created_date = markerElem.getAttribute('created_date');
var lat = parseFloat(markerElem.getAttribute('latitude'));
var lng = parseFloat(markerElem.getAttribute('longitude'));
var point = new google.maps.LatLng(lat,lng);
var infowincontent = document.createElement('div');
var strong = document.createElement('strong');
strong.textContent = firstname + ' ' + middlename + ' ' + lastname
infowincontent.appendChild(strong);
infowincontent.appendChild(document.createElement('br'));
var text = document.createElement('text');
text.textContent = sender
infowincontent.appendChild(text);
/*var icon = customLabel[created_date] || {};*/
var marker = new google.maps.Marker({
map: map,
position: point,
/*label: icon.label*/
});
marker.addListener('mouseover', function() {
infoWindow.setContent(infowincontent);
infoWindow.open(map, marker);
});
});
});
}
XML:
<markers>
<marker id="2" latitude="14.574072" longitude="120.993150" created_date="2017-05-09 01:00:00" firstname="User1" middlename="User1" lastname="User1" status="1" />
<marker id="3" latitude="14.573273" longitude="120.992142" created_date="2017-05-09 01:05:00" firstname="User1" middlename="User1" lastname="User1" status="1" />
<marker id="5" latitude="14.572733" longitude="120.990382" created_date="2017-05-09 01:10:00" firstname="User1" middlename="User1" lastname="User1" status="1" />
<marker id="6" latitude="14.558147" longitude="121.005357" created_date="2017-05-09 01:05:00" firstname="User2" middlename="User2" lastname="User2" status="1" />
</markers>
Hallo! Sorry für die späte Antwort auch danke für die Beantwortung meiner Frage. Die Polylinien funktionieren jetzt. Jetzt muss ich die Entfernung aller Polylinien kennen. Danke nochmal! – Junnel