2015-12-09 96 views
2

我一直在嘗試使用谷歌地圖與angularJS。點擊羣集時,如何顯示具有標記值的Infowindow?

我已經學會了如何通過https://angular-ui.github.io/angular-google-maps/#!/來使用它。

一切順利。

對於每個標記,我可以顯示具有myList元素信息的InfoWindow。

但是我在InfoWindow中遇到了集羣。

單擊羣集時,我想顯示羣集中標記的信息列表。 即使點擊羣集時我也無法顯示簡單的InforWindow。

以下來源是我的代碼。 請告訴我,如果它不足以解決我的問題。

請告訴我什麼是錯的,以及如何解決這個問題。 祝您有愉快的一天。

* javascript 
$scope.map.map = { 
    center: { latitude: $scope.map.myList[0].lat, longitude: $scope.map.myList[0].lng }, 
    zoom: 17, 
    events : { 
     tilesloaded: function (map) { 
      $scope.$apply(function() { 

       google.maps.event.addDomListener(window, 'resize', function() { 
        var lat = $scope.map.myList[$scope.map.markerPosition-1].lat; 
        var lng = $scope.map.myList[$scope.map.markerPosition-1].lng; 
        var center = new google.maps.LatLng(lat, lng); 
        map.setCenter(center); 
       }); 
      }); 
     } 
    }, 

    markersEvents: { 
     click: function(marker, eventName, model) { 

      model.show = !model.show; 
      return; 
     } 
    }, 
    clusterOptions : { // options of cluster 
     gridSize: 40, 
     ignoreHidden: true, 
     zoomOnClick : false, 
     averageCenter : true, 
     styles: [ 
       { 
        height: 53, 
        url: "http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/images/m3.png", 
        width: 53, 
        textColor : 'white' 
       } 
     ] 
    }, 
    clusterEvent: { // when cluster's clicked 
     click: function(map, markers) { 

      var contentString = 'ABCD'; 

      var infowindow = new google.maps.InfoWindow({ 
       content: contentString 
      }); 

      infowindow.open(map, markers); 
      return; 
     } 
    } 
}; 
$scope.map.options = { 
    streetViewControl : false 
}; 
$scope.map.markers = []; 





* html 
<ui-gmap-google-map center='map.map.center' zoom="map.map.zoom" options="map.options" events="map.map.events"> 
<ui-gmap-markers models="map.markers" coords="'self'" icon="a" events="map.map.markersEvents" options="'options'" 
     doCluster="true" clusterOptions="map.map.clusterOptions" clusterEvents="map.map.clusterEvent"> 
     <ui-gmap-windows show="show"> 
      <div ng-non-bindable>{{id}}</div> 
     </ui-gmap-windows> 
</ui-gmap-markers> 

回答

1

回答自己。

var infoWindowOptions = { 
     content: "asdfasdf" 
}; 
var infowindow = new google.maps.InfoWindow(infoWindowOptions); 
infowindow.open(map.map_, *marker*); 
相關問題