1

我正在通过 angularJS 使用谷歌地图(使用angular-google-map

我有一个带有 InfoWindow 的标记,除了在 iOS 上工作正常。当我旋转设备时,谷歌地图 API 似乎无法很好地计算尺寸,并且 infoWindow 对于它的内容来说太小了。我认为这与此错误相同

所以我一直在尝试访问 InfoWindow 对象以关闭它并再次打开它以强制谷歌重绘/重新计算但找不到访问它的方法。我可以通过在角度中使用 $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