谷歌地图infowindow不再显示

时间:2012-12-14 08:52:50

标签: api infowindow

早上好,

我的一位前同事创建了一个应用程序,您可以通过邮政编码进行搜索,然后在半径5-40公里的地图上放置标记(谷歌地图)。

这些位置是距您要找的邮政编码半径40公里的商店。 该函数本身仍然只在信息窗口工作,信息不再起作用。

我有几个网站正在运行此应用程序,但对于所有网站,信息窗口不再工作。可能是谷歌本身已经在api中进行了调整,我还需要在某个地方调整一些东西吗?

这是我的同事放在一起的代码,没有任何改变,但它不再起作用了...这里有人知道这个问题,因为我无法弄清楚自己......

    <script type="text/javascript">
                        var geocoder;
                        var map;
                        function initialize() {
                            geocoder = new google.maps.Geocoder();
                            var myOptions = {
                                zoom: <?php
                                if(is_array($postcodevelden) && count($postcodevelden) > 0 && !empty($_POST['address']))
                                {
                                    switch($radius)
                                    {
                                        case "5":
                                            echo "12";
                                            break;
                                        case "10":
                                            echo "11";
                                            break;
                                        case "15":
                                        case "20":
                                            echo "10";
                                            break;
                                        case "30":
                                        case "40":
                                            echo "9";
                                            break;
                                    }
                                }
                                else
                                {
                                    echo "7";
                                }
                                ?>,
                                center: new google.maps.LatLng(<?php if(is_array($postcodevelden) && count($postcodevelden) > 0) { echo $lat.", ".$lon; } else { echo "52.2008737173322, 5.25146484375"; } ?>),
                                mapTypeId: google.maps.MapTypeId.ROADMAP
                            }
                            map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

<?php
        if(is_array($adressen) AND count($adressen) > 0) 
        {
            foreach($adressen as $adres)
            {
                $afstand = round((6371 * acos(sin(deg2rad($lat)) * sin(deg2rad($adres->locatie_lat)) + cos(deg2rad($lat)) * cos(deg2rad($adres->locatie_lat)) * cos(deg2rad($adres->locatie_lon) - (deg2rad($lon))))), 2);
?>
                            addMarker(<?php echo $adres->locatie_lat.", ".$adres->locatie_lon.", '".$adres->locatie_naam."', '".$adres->locatie_straat."', '".$adres->locatie_postcode."', '".$adres->locatie_plaats."', '".$adres->locatie_telefoon."', '".$afstand."'"; ?>);
<?php
            }
        }
?>
                        }

                        var infowindow = new google.maps.InfoWindow();

                        function addMarker(lat, lon, naam, straat, postcode, plaats, telefoon, afstand)
                        {
                            var marker = new google.maps.Marker({
                                position: new google.maps.LatLng(lat, lon),
                                map: map,
                                icon: "images/pincard/wheel-icon.png",
                                title: naam
                            });

                            google.maps.event.addListener(marker, 'mouseover', function() {
                                var contentString = '<div>'+
                                '<b style="border-bottom: 1px solid #000000;">' + naam + '</b><br/>'+
                                'Afstand (hemelsbreed): ' + afstand + ' km<br/>' +
                                straat + '<br/>' +
                                postcode + ' ' + plaats + '<br/>';
                                if(telefoon != "")
                                {
                                    contentString = contentString + 'Telefoonnr: ' + telefoon;
                                }
                                contentString = contentString + '</div>';
                                infowindow.content = contentString;
                                infowindow.open(map, marker);
                            });

                            google.maps.event.addListener(marker, 'mouseout', function(){
                                infowindow.close(map);
                            });
                        }

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

我这样称呼api:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

如果有人知道为什么所有网站的信息窗口都停止工作,那么我很乐意听到,因为我不明白为什么它不再有效。

提前感谢您的任何努力

亲切的问候,

的Joep

PS:这是一个网站,例如:

... intertyre PHP LANG = NL&安培; P = 4

1 个答案:

答案 0 :(得分:3)

我被同样的问题所困扰,然后去谷歌搜索答案。

找到我的问题的答案 - 看起来谷歌可能已经收紧了它的infoWindow API,有点迫使你设置 .content成员通过适当的Set()函数。

尝试替换

infowindow.content = contentString;

infowindow.setContent(contentString);

看看是否有帮助。我用我的代码做了那件事,修复了破损。

相关问题