私はGoogle Maps for AngularJSを使用し、2つのマーカーを持ち、すべてのマーカーに情報ウィンドウを表示します。Google Maps for AngularJS - マーカーがクリックされたときにInfoWindowが正しい位置に設定されていません
初めてマーカーをクリックすると、すべて正常に動作します。 2番目のマーカーをクリックしても、正しく動作します。しかし、最初のマーカを再度クリックすると、インフォウィドウはその位置を変更しません。最初のマーカに関連付けられたデータは、2番目のマーカの上のinfoWindowに表示され、最初のマーカには関連付けられません。
この問題の原因は何ですか?
私の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>
マーカーに関連したクリックイベント:
$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};
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
};
私はボタンを使用している場合は "×"マーカーを閉じるには、この問題はもう発生しません。しかし、私はユーザーがinfoWindowを手動で閉じる必要はありません。
助けていただけたら幸いです!おかげ
編集:私は私のmapOptionsコードが含ま:
$scope.mapOptions = {
minZoom: 3,
zoomControl: false,
draggable: true,
navigationControl: false,
mapTypeControl: false,
scaleControl: false,
streetViewControl: false,
disableDoubleClickZoom: false,
keyboardShortcuts: true,
markers: {
selected: {}
}
};
ヴァディムGremyachevは、あなたの例の作品のおかげで、しかしwindowOptで削除(鉱山への変更を適用するオプションイオン、およびuiGmapGoogleMapApiを使用して)問題を解決しません。私はまた、すべてのwindowOptionsを表示する必要があるので、私はそれをコメントすることはできません。 – Wakachopo