简体   繁体   English

Google Maps Infowindow未显示

[英]Google Maps Infowindow not showing

I've got google maps in my application. 我的应用程序中有Google地图。 Everything is working as it should, except for one problem. 除一个问题外,一切都按预期进行。 My pins shows as a bubble (name of technician), which is working. 我的图钉显示为气泡(技术人员姓名),该气泡正在工作。 But if I click on this technician (pin) it should open an infowindow that displays more information regarding the technician for example amount of calls, distance to client, ect... (the data is being pulled through), the only problem that I'm facing is that the info window is not showing at all when I click on the pin/technician... I've gone through the code but can't seem to find where I went wrong with this... 但是,如果我单击该技术人员(图钉),则应该打开一个信息窗口,其中显示有关该技术人员的更多信息,例如呼叫数量,与客户的距离,等...(数据正在传递),这是我唯一的问题我面临的问题是,当我单击图钉/技术人员时,信息窗口根本没有显示...我已经遍历了代码,但似乎找不到我出了错的地方...

This is my javascript code: 这是我的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>

Based on your attached code, infoWindow is not defined anywhere. 根据您附加的代码,没有在任何地方定义infoWindow

I think you are just missing this line; 我认为您只是错过了这一行; var infoWindow = new google.maps.InfoWindow();

See below: 见下文:

(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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM