我正在通过 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;
}