0

我的谷歌地圖在我的應用程序中。除了一個問題之外,一切都按照應有的方式工作。我的針腳顯示爲泡泡(技術員姓名),正在工作。但是,如果我點擊這個技術人員(pin),它應該打開一個信息窗口,顯示更多關於技術人員的信息,例如呼叫量,客戶距離等等(數據正在通過),唯一的問題是我面對的是,當我點擊引腳/技術人員時,信息窗口根本沒有顯示...我已經通過代碼,但似乎無法找到我在哪裏出錯了...谷歌地圖Infowindow沒有顯示

這是我的javascript代碼:根據您的連接代碼

<script type="text/javascript"> 

    $(document).ready(function() { 

     var marker = $("#<%= txtTechnicians.ClientID %>").val(); 
     var markers = JSON.parse(marker); 

     var markerCustomer = $("#<%= txtCustomer.ClientID %>").val(); 
     var markerCust = JSON.parse(markerCustomer); 

     function initialize() { 

      var map = new google.maps.Map(document.getElementById("dvMap"), { 
       center: new google.maps.LatLng(markerCust[0].lat, markerCust[0].lng), 
       zoom: 10, 
       mapTypeId: google.maps.MapTypeId.ROADMAP, 
       mapTypeControl: true, 
       mapTypeControlOptions: 
        { 
         style: google.maps.MapTypeControlStyle.DROPDOWN_MENU, 
         poistion: google.maps.ControlPosition.TOP_RIGHT, 
         mapTypeIds: [google.maps.MapTypeId.ROADMAP, 
         google.maps.MapTypeId.TERRAIN, 
         google.maps.MapTypeId.HYBRID, 
         google.maps.MapTypeId.SATELLITE] 
        }, 
       streetViewControl: true, 
       navigationControl: true, 
       navigationControlOptions: 
       { 
        style: google.maps.NavigationControlStyle.ZOOM_PAN 
       }, 
       scaleControl: true, 
       draggableCursor: 'move' 
      }); 

      var trafficLayer = new google.maps.TrafficLayer(); 
      trafficLayer.setMap(map); 

      var poly = new google.maps.Polyline({ map: map, strokeColor: '#FF8200' }); 
      poly.setMap(map); 

      var lat_lngCust = new Array(); 
      for (i = 0; i < markerCust.length; i++) { 
       var data = markerCust[i] 
       var myLatlngCust = new google.maps.LatLng(data.lat, data.lng); lat_lngCust.push(myLatlngCust); 
       var markerCustomer = new StyledMarker({ 
        styleIcon: new StyledIcon(StyledIconTypes.BUBBLE, { color: "#D20202", text: data.title }), 
        position: myLatlngCust, map: map, title: data.title 
       }); 

       (function (markerCustomer, data) { 
        google.maps.event.addListener(markerCustomer, "click", function (e) { 
         infoWindow.setContent(data.description); 
         infoWindow.open(map, markerCustomer); 
        }); 
       })(markerCustomer, data); 
      } 

      var lat_lng = new Array(); 
      for (i = 0; i < markers.length; i++) { 
       var data = markers[i] 
       var myLatlng = new google.maps.LatLng(data.lat, data.lng); lat_lng.push(myLatlng); 
       var marker = new StyledMarker({ 
       styleIcon: new StyledIcon(StyledIconTypes.BUBBLE, { color: data.colourcode, text: data.title }), 
        position: myLatlng, map: map, title: data.title 
       }); 

       (function (marker, data) { 
        google.maps.event.addListener(marker, "click", function (e) { 
         infoWindow.setContent(data.description); 
         infoWindow.open(map, marker); 
        }); 
       })(marker, data); 
      } 
     } 

     google.maps.event.addDomListener(window, 'load', initialize); 
    }); 
</script> 

回答

1

infoWindow不被任何定義。

我認爲你只是缺少這一行; var infoWindow = new google.maps.InfoWindow();

見下文:

(function (marker, data) { 
    google.maps.event.addListener(marker, "click", function (e) { 
     infoWindow.setContent(data.description); // @SEE: infoWindow is used but not initialized or declare anywhere within the scope. 
     infoWindow.open(map, marker); // same 
    }); 
})(marker, data);