0

私のアプリケーションにGoogleマップがあります。 1つの問題を除いて、すべてが正常に動作しています。私のピンはバブル(技術者の名前)として動作しています。しかし、私はこの技術者(ピン)をクリックするとinfowindowを開く必要があります(例えば、データが引っ張られつつある)コールの量、クライアントへの距離などの技術者に関する詳細情報が表示されます。ピン/技術者をクリックするとインフォメーションウィンドウがまったく表示されないということです...コードを通過しましたが、どこでこの問題が起こったのかわからないようです...Google Maps Infowindowが表示されない

これは私のjavascriptのコードです:あなたの接続コード、infoWindowに基づいて

<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

はどこにも定義されていません。

私はこの行が欠落していると思います。 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); 
関連する問題