谷歌地图V3 InfoWindow没有显示

我必须在两种情况下显示InfoWindon:

  • 点击标记
  • 悬停搜索结果。
  • 此外,没有脚本错误显示,但没有显示信息窗口。 这是我的代码:

    var searchResults = {"100065":{"Rank":100065,"ID":100065,"Country":"France","Department":null,"CityName":"Paris","ZipCode":"75019","PropertyType":"Apartment","Title":"Super sweet villa100065","Address":"","Price":45000.0000,"Longitude":2.386708,"Latitude":48.890614,"HideAddress":false,"Zone":null,"IsAgency":true,"Image":null,"ImageContentType":""}};
    
    
    var map = null;
    var imgBluePin = '<%= ResolveUrl("~/images/pin_blue.png") %>';
    var imgGreenPin = '<%= ResolveUrl("~/images/pin_green.png") %>';
    var bounds = new google.maps.LatLngBounds();
    var markers = [];
    
    function initialize() {
        var myOptions = {
            zoom: 8,
            center: new google.maps.LatLng(47.5200, 2.1959),
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        map = new google.maps.Map(document.getElementById('divMap'), myOptions);
    }
    
    $(document).ready(function () {
        ResetMap();
    });
    
    function ResetMap() {
        initialize();
        showListingsOnMap();
    }
    
    function showListingsOnMap() {
        for (var index in searchResults) {
            showAddressesOnMap(
                                searchResults[index].ID,
                                searchResults[index].Title,
                                searchResults[index].Image,
                                searchResults[index].ImageContentType,
                                searchResults[index].Latitude,
                                searchResults[index].Longitude,
                                searchResults[index].Address,
                                searchResults[index].CityName,
                                searchResults[index].Zone,
                                searchResults[index].ZipCode,
                                searchResults[index].Country,
                                searchResults[index].IsAgency,
                                searchResults.length);
        }
    }
    
    function GetLocationString(address, city, zone, zip, country) {
        var locationString = address;
    
        if (city != undefined && city.length > 0) {
            locationString += ", " + city;
        }
        if (zone != undefined && zone.length > 0) {
            locationString += ", " + zone;
        }
        if (zip != undefined && zip.length > 0) {
            locationString += ", " + zip;
        }
        if (country != undefined && country.length > 0) {
            locationString += ", " + country;
        }
        if (locationString.indexOf(",") == 0)
            locationString = locationString.substr(2);
    
        return locationString;
    }
    
    function GetContent(title, image, imageType, address) {
        var content = '<div class="infoPopup">';
    
        if (image != null) {
            content += '<img src="data:' + imageType + ';base64,' + image + '" class="thumb"></img>';
        }
        content += '<p><span class="title">' + title + "</span></p>";
        content += '<p>' + address + "</p>";
        content += '</div>';
    }
    
    function showAddressesOnMap(appID, title, image, imageType, lat, lng, address, city, zone, zip, country, markerType) {
    
        if (lat != null && lng != null && lat != "0" && lng != "0") {
    
            var locationString = GetLocationString(address, city, zone, zip, country);
    
            displayMarker(appID, title, image, imageType, locationString, markerType, lat, lng);
        }
    }
    
    function displayMarker(appID, title, image, imageType, address, markerType, lat, lng) {
        var listingLatLng = new google.maps.LatLng(lat, lng);
        var marker = new google.maps.Marker({
            position: listingLatLng,
            map: map,
            icon: markerType ? imgBluePin : imgGreenPin,
            title: title + address
        });
    
        var content = GetContent(title, image, imageType, address);
    
        AddInfoWindow(marker, map, content);
    
        bounds.extend(listingLatLng);
        map.fitBounds(bounds);
    
        markers.push(marker);
    }
    
    function AddInfoWindow(marker, map, content) {
        var infowindow = new google.maps.InfoWindow({
            content: content,
            size: new google.maps.Size(50, 50)
        });
    
        google.maps.event.addListener(marker, 'click', function () {
            infowindow.open(map, marker);
        });
    
        marker.info = infowindow;
    }
    
        //Called on hover of result item from seach
    function showInfoWindow(point) {
        if (map) {
            var marker = markers[point - 1];
            map.setCenter(marker.position);
            marker.info.open(map, marker);
        }
    }
    

    我检查了这些解决方案 - 一个,两个和其他一些解决方案,但他们都没有工作。


    我在注释掉icon: markerType ? imgBluePin : imgGreenPin,后显示标记icon: markerType ? imgBluePin : imgGreenPin, icon: markerType ? imgBluePin : imgGreenPin,displayMarker函数中,因为我没有你的图标图像。

    我添加了return content;后显示了infoBox return content;GetContent函数中。

    这里是jsfiddle:http://jsfiddle.net/ninty9notout/AcuSv/

    希望这可以帮助。

    链接地址: http://www.djcxy.com/p/35849.html

    上一篇: Google maps V3 InfoWindow is not showing

    下一篇: Marker content (infoWindow) Google Maps