我通过angularJS使用谷歌地图(使用angular-google-map)
我有一个带有InfoWindow的标记,除了在iOS上工作正常。当我旋转设备时,谷歌地图API似乎没有很好地计算尺寸,而且infoWindow对于其内容来说太小了。我认为这与this one
相同因此,我一直在尝试访问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;
}