angularJS経由でGoogleマップを使用しています(angular-google-mapを使用)
iOS 以外では問題なく動作する InfoWindow 付きのマーカーがあります。デバイスを回転させると、Google マップ API がサイズを正しく計算していないようで、コンテンツに対して infoWindow が小さすぎます。これはこれと同じバグだと思います
そのため、InfoWindow オブジェクトにアクセスして閉じてから再度開いて、Google に再描画/再計算を強制しようとしましたが、アクセスする方法が見つかりませんでした。angular で$scope.map.control.getGMap()を使用して google.maps.Map オブジェクトにアクセスでき ますが、InfoWindow にアクセスできません。Window.prototype で getGWindows を確認できますが、マップからアクセスする方法がわかりません。マーカーにもアクセスできますが、情報ウィンドウへの参照がありません。
役立つ場合に備えて、マーカーを作成する方法を次に示します。
var marker = {
id: obj.id,
name: obj.name,
latitude: obj.lat,
longitude: obj.lng,
address: obj.address,
suburbCity: obj.suburbCity,
state: obj.state,
postcodeZip: obj.postcodeZip,
icon: "xxx.png"),
options: {
labelContent: obj.name,
labelClass: "none",
labelAnchor:"25 0",
opacity: 0.25,
animation: google.maps.Animation.DROP,
visible: true
},
templateurl:'markerwindow.tpl.html',
templateparameter: data,
closeClick: function() {
marker.options.visible = false;
return $scope.$apply();
},
onClicked: function() {
navigateToMarkerOnMap(marker);
}
};
$scope.map.markers.push(marker);
function navigateToMarkerOnMap(marker) {
$scope.selected.options.visible = false;
$scope.selected = marker;
$scope.selected.options.visible = true;
}