1

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;
}
4

0 に答える 0