0

おはようございます、

私の元同僚は、郵便番号で検索し、半径5〜40 kmの地図(Googleマップ)にマーカーを配置できるアプリケーションを作成しました。

場所は、探している郵便番号から半径40kmの店舗です。関数自体はまだ機能していますが、情報を含む情報ウィンドウのみが機能しなくなりました。

このアプリケーションで実行されているいくつかのWebサイトがありますが、すべてのサイトで情報ウィンドウが機能していません。Google自体が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>

すべてのウェブサイトの情報ウィンドウが機能しなくなった理由を誰かが知っているなら、それが機能しなくなった理由がわからないので、ぜひ聞いてみたいと思います。

よろしくお願いします

敬具、

ジョープ

PS:これは例のウェブサイトです:

インタータイア...php?lang = nl&p = 4

4

1 に答える 1

3

私は同じ問題に噛まれ、グーグルで答えを求めました。

私の問題に対する答えが見つかりました-GoogleがinfoWindowAPIを少し強化したようで、適切なSet()関数を介して.contentメンバーを設定する必要があります。

ラインを交換してみてください

infowindow.content = contentString;

infowindow.setContent(contentString);

それが役立つかどうかを確認します。私は自分のコードでそれを行い、それで破損が修正されました。

于 2012-12-14T19:53:13.523 に答える