0

KmlLayer を使用してhttps://www.getstable.org/who-can-help/therapist-map-kmlで kml ファイルをロードするサイトに Google マップを埋め込んでいます。Google マップには厳密なタイムアウトがあり、マップ上のピンの一部がクリックできないことがよくありますが、明確な理由がないものもあるため、マップが読み込まれないことがあります。kmlLayer のタイムアウト制限とそれを増やす方法を知っている人はいますか? また、一部のピンがクリックできない場合がある理由はありますか (つまり、ピンをクリックしても InfoWindow が表示されず、カーソルが手の形に変わりません)。

これを示すコードは次のとおりです (一部のフィールドはテンプレート化されています)。

    <div id="map_canvas" style="width: 856px;height: 540px;">Loading...</div> 
    <script type="text/javascript" src="{protocol}://maps.google.com/maps/api/js?sensor=false"></script>

        <script type="text/javascript">
            var the_map = {
                options : { 
                        zoom:{embed:zoom_level},
                        center:new google.maps.LatLng({embed:latitude},{embed:longitude}),
                        mapTypeId: google.maps.MapTypeId.ROADMAP
                },  
                geocoder : null,
                map : null,
                init : function() {
                    this.geocoder = new google.maps.Geocoder();

                      $('#map_canvas').delegate('a', 'click', function(event) {
                        window.location.href=$(this).attr('href');
                        return false;
                      });
                },                  
                load_map : function() {
                    this.map = new google.maps.Map(document.getElementById("map_canvas"), this.options);

                        query = encodeURI('{site_url}{embed:map_url}');                     
                  var ctaLayer = new google.maps.KmlLayer(query,{
                      preserveViewport:true
                  });
                  ctaLayer.setMap(this.map);      
                }
            }
            $(document).ready(function() {
                the_map.init();
                the_map.load_map();
            });
        </script>
4

1 に答える 1

4

Google サーバーのタイムアウトは指定されていませんが、テストでは 3 ~ 5 秒であることが示されています。このタイムアウトは、ユーザーが変更できるものではありません。解決策は、サーバーの応答を高速化することです。この問題は、ほとんどの場合、ファイルが大きすぎる (あなたのファイルはそうではありません) か、KML を動的に生成することに起因します。これを最適化する必要があり、それは静的 KML ファイルを作成する方法を見つけることを意味する場合があります。

クリックできない機能は、ほぼ確実に KML に問題があります。KML を検証して、これを確認できます。

maps.google.comで KML を読み込んでテストすることもできます。

于 2012-06-19T14:29:02.397 に答える