Ich versuche meine InfoBox basierend auf dem LatLng der Marker zu positionieren, habe versucht Position (LatLng) aber kein Erfolg und ich möchte nicht den PixelOffset fest codieren, da das nicht der Markerposition entsprechen wird , Habe ich auch pixelOffset (latLng), getPosition und setPosition-Methoden versucht.google infoBox position
Keines der oben genannten scheint richtig zu machen, es zu werden:/
for (var i = data.length - 1; i >= 0; i--){
var Lat = data[i].Item.Coordinate.Lat;
var Lon = data[i].Item.Coordinate.Lon;
var LatLon = new gm.LatLng(jobLat, +jobLon);
var marker = new gm.Marker({
position: LatLon,
map: map,
visible: true
});
var infobox = new InfoBox ({
position: marker.position or LatLon
});
marker.newContent = document.getElementById("infobox_"+data[i].Item.Id);
gm.event.addListener(marker, 'click', (function (marker) {
return function (pin, suppressInfoWindow) {
if (!suppressInfoWindow) {
infobox.setContent(marker.newContent);
infobox.open(map, marker);
}
}
}
resultMarkers.push(marker);
Dies scheint in Ordnung
var infoboxWidth = -650/2;
if(getWidth === 'xs'){
infoboxWidth = -320/2;
}
var infobox = new InfoBox({
pixelOffset: new gm.Size(infoboxWidth, -65),
alignBottom: true
});
Ja, ich habe versucht, aber es immer die InfoBox an den falschen Ort, wo der Marker ist. – MrNew
versucht mit PixelOffset, aber das ist nur Arbeit basierend auf der Breite der InfoBox und im Grunde die Breite durch 2 geteilt, um die Offset-Position zu erhalten. Aber ich denke nicht, dass es eine Idee ist, wenn es um Mobile geht. Sage infoBox ist 600px Breite auf lg Bildschirm und 320px Breite auf Handy. – MrNew
Code oben hinzugefügt. – MrNew