Comment puis-je afficher InfoWindow avec une flèche à gauche et à la place en bas?
Vous ne pouvez pas faire cela avec un google.maps.InfoWindow . Vous pouvez utiliser l’un des remplaçants tiers d’InfoWindow et le personnaliser pour que la flèche se trouve à gauche.
preuve de concept fiddle (using InfoBox )
extrait de code:
function initialize() {
var secheltLoc = new google.maps.LatLng(49.47216, -123.76307);
var myMapOptions = {
zoom: 15
,center: secheltLoc
,mapTypeId: google.maps.MapTypeId.ROADMAP
};
var theMap = new google.maps.Map(document.getElementById("map_canvas"), myMapOptions);
var marker = new google.maps.Marker({
map: theMap,
draggable: true,
position: new google.maps.LatLng(49.47216, -123.76307),
visible: true
});
var boxText = document.createElement("div");
boxText.style.cssText = "border: 1px solid black; margin-top: 0px; margin-left: 6px; background: yellow; padding: 5px;";
boxText.innerHTML = "City Hall, Sechelt<br>British Columbia<br>Canada";
var myOptions = {
content: boxText
,disableAutoPan: false
,maxWidth: 0
,pixelOffset: new google.maps.Size(10, -50)
,zIndex: null
,boxStyle: {
background: "url('http://www.geocodezip.com/images/tipbox90pad.gif') no-repeat"
,opacity: 0.75
,width: "150px"
}
,closeBoxMargin: "10px 2px 2px 2px"
,closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif"
,infoBoxClearance: new google.maps.Size(1, 1)
,isHidden: false
,pane: "floatPane"
,enableEventPropagation: false
};
google.maps.event.addListener(marker, "click", function (e) {
ib.open(theMap, this);
});
var ib = new InfoBox(myOptions);
ib.open(theMap, marker);
}
google.maps.event.addDomListener(window, "load", initialize);
html, body, #map_canvas {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js"></script>
<script src="https://cdn.rawgit.com/googlemaps/v3-utility-library/master/infobox/src/infobox.js"></script>
<div id="map_canvas"></div>
Cela faisait un moment maintenant, et vous avez probablement déplacé votre intérêt pour ce sujet. Mais je dirais qu'il est possible de ne pas utiliser d'outils tiers ... ajoutez simplement pixelOffset
à la infowindow
comme ceci:
var infowindow = new google.maps.InfoWindow({
content: "My custom info window",
pixelOffset: new google.maps.Size(250, 150)
});
Vous pouvez également faire pivoter la flèche en ajoutant simplement ces lignes de style:
#map div div div:last-child div:last-child div div div:nth-child(3) {
left: 0 !important;
top: 30px !important;
border-top-width: 24px;
position: absolute;
transform: rotate(90deg);
}
Puisse-t-il vous aider ou aider quelqu'un d'autre ...
à votre santé.
Basé sur ceci Un info Google Maps peut-il être placé à droite ou à gauche d'un marqueur? thread, vous pouvez utiliser pixelOffset
propriété de l'infowindow qui accepte un google.maps.Size
en tant que valeur.
Décalage, en pixels, de la pointe de la fenêtre d’information par rapport au point de la carte dont les coordonnées géographiques sont ancrées. Si une fenêtre d'information est ouverte avec une ancre, le pixelOffset sera calculé à partir de la propriété anchorPoint de l'ancre.
Par exemple:
var infowindow = new google.maps.InfoWindow({
content: "hello world",
pixelOffset: new google.maps.Size(100,100)
});
Vous pouvez vérifier sur ces threads liés:
J'espère que cela t'aides!
Il existe une propriété appelée anchorPoint grâce à laquelle vous pouvez modifier la position de votre fenêtre d’information.