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>