0

Map を持つ load メソッドを使用してページを表示しています。問題はページがロードされていることですが、マップ div では灰色の画面が表示されます。ページを更新すると、マップが読み込まれます。ドキュメント準備機能でもマップ関数を呼び出します。しかし、役に立たない。

私のコードは

<div class="public-view" id="map_canvass">
<script type="text/javascript">
// OnLoad function ...
initialize();
function initialize() {
    var fenway = new google.maps.LatLng(<?php echo $propertyValues->lat; ?>, <?php echo $propertyValues->lng; ?>);
    var mapOptions = {
        center: fenway,
        zoom: 15,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvass"), mapOptions);
    var circleOptions = {
        center: fenway,
        map: map,
        strokeColor: "#BB0A68",
        strokeOpacity: 0.1,
        fillColor: "#BB0A68",
        fillOpacity: 0.35,
        radius: 200
    }
    var circle = new google.maps.Circle(circleOptions);
    google.maps.event.trigger(map, 'resize');
}
</script>
</div>
4

1 に答える 1

1

google.maps が読み込まれたことを確認したら、initialize() を呼び出す必要があります。上記のコードは、google.maps が読み込まれる前に初期化を呼び出す可能性があります。キャッシュされているため、2 回目のページ更新で機能します。jQuery のドキュメント準備機能も 100% 信頼できるわけではありません。

Google Maps API ドキュメントのこの例は、それを行う最良の方法を示しています。

google.maps.event.addDomListener(window, 'load', initialize);
于 2012-07-12T04:53:53.073 に答える