J'ai une carte qui utilise Google Maps pour AngularJS, elle a deux marqueurs, et chaque marqueur montre une infoWindow avec des données.Google Maps pour AngularJS - InfoWindow n'est pas positionné correctement lorsque le marqueur clique
La première fois que je clique sur un marqueur, tout fonctionne correctement. Si je clique sur le second marqueur, fonctionne toujours correctement. Mais lorsque je clique à nouveau sur le premier marqueur, infoWindow ne change pas de position: les données associées au premier marqueur sont affichées sur une infoWindow sur le second marqueur, et non sur la première.
Qu'est-ce qui peut causer ce problème?
Mon code html:
<ui-gmap-google-map center='map.center' zoom='map.zoom' options='map.options' control='map.control'>
<ui-gmap-markers models="places" coords="'coords'" idKey="'idKey'" isLabel="true" options="'options'" events='map.markerEvents'></ui-gmap-markers>
<ui-gmap-window coords="mapOptions.markers.selected.coords" show="windowOptions.show" options="windowOptions" closeClick="closeClick()" ng-cloak>
//SOME CODE HERE
</ui-gmap-window>
</ui-gmap-google-map>
L'événement click associé à un marqueur:
$scope.map = { center: { latitude: 43, longitude: -8.3 }, zoom: 8, control: {}, markerEvents: {
click: function(marker){
if(marker.model.title != USER_LOCATION){
$scope.onClick(marker.model);
$scope.mapOptions.markers.selected = marker.model;
}
}
}, options: $scope.mapOptions};
Le contenu de windowOptions:
$scope.windowOptions = {
show: false,
boxClass: "infobox",
boxStyle: {
backgroundColor: "transparent",
border: "1px solid #C7CECE",
borderRadius: "5px",
width: "85%"
},
disableAutoPan: false,
maxWidth: 0,
infoBoxClearance: new google.maps.Size(1, 1),
pixelOffset: new google.maps.Size(-175, -250),
zIndex: null,
/*closeBoxMargin: "10px",
closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif",*/
isHidden: false,
pane: "floatPane",
enableEventPropagation: false
};
Si j'utilise le bouton "x" pour fermer le marqueur, ce problème ne se produit plus. Mais je ne veux pas que l'utilisateur ait besoin de fermer manuellement l'infoWindow.
Toute aide serait appréciée! Merci
EDIT: J'inclure mon code mapOptions:
$scope.mapOptions = {
minZoom: 3,
zoomControl: false,
draggable: true,
navigationControl: false,
mapTypeControl: false,
scaleControl: false,
streetViewControl: false,
disableDoubleClickZoom: false,
keyboardShortcuts: true,
markers: {
selected: {}
}
};
Merci Vadim Gremyachev, votre exemple fonctionne, mais appliquer les modifications à la mienne (suppression options windowOpt ions, et en utilisant uiGmapGoogleMapApi) ne résolvent pas le problème. J'ai aussi besoin que toutes les windowOptions soient affichées, donc je ne peux pas le commenter. – Wakachopo