1

我有一个用于谷歌地图的脚本,它为我呈现预定坐标的地图,使用搜索中的标记数组中的信息来呈现带有当前用户信息等的信息框,但我有一个奇怪的问题。该地图大部分时间都可以正常工作,但过于频繁(尤其是最近两天)。我收到错误消息:“无法读取 null 的属性”。据我从阅读其他线程中了解到,问题可能是在尝试添加地图(或 getelementbyId)之前尚未创建包含地图的 div,这就是我添加 domlistener 以确保页面已加载的原因。知道问题可能出在哪里吗?因为我现在很茫然:(

<script type="text/javascript">
function initialize() {
    var markers = <?php echo json_encode($markers); ?>;

    var myLatLng = new google.maps.LatLng( <?= $search->area_coords; ?> );

    var mapOptions = {
        center:myLatLng,
        zoom:12,
        maxZoom:14,
        mapTypeId:google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"),
            mapOptions);

    // Custom MarkerImage - To be designed
    // var markerImage = 'images/markerImage.png';

    var iconBase = 'http://www.googlemapsmarkers.com/v1/H/0099FF/';

    var infowindow = new google.maps.InfoWindow({
        maxWidth:150
    });

    for (i = 0; i < markers.length; i++) {

        // Array to contain all the markers for clickevents etc.
        var markersArray = [];
        var position = new google.maps.LatLng(markers[i]['lat'], markers[i]['long']);
        var contentString = '<div class="marker_info"><div class="float_left"><img height="40" width="40" src="' + markers[i]['picture'] + '"></div>' +
                '<div><a href="profile.php?userid=' + markers[i]['id'] + '">' + markers[i]['title'] +
                '</a></div><br><em>' + markers[i]['price'] + ' pounds</em></div>';

        var marker = new google.maps.Marker({
            position:position,
            map:map,
            icon:iconBase,
            htmlCode:contentString
        });

        google.maps.event.addListener(marker, 'click', function () {
            infowindow.setContent(this.htmlCode);
            infowindow.open(map, this);
        });
        markersArray.push(marker);
    }
}

google.maps.event.addDomListener(window, "load", initialize);

错误消息给了我第 246 行,如果它检查正确应该是指:

 var myLatLng = new google.maps.LatLng( <?= $search->area_coords; ?> ); 
  • 但我不是 100% 的,因为浏览器可能会以不同的方式读取文档,还是我错了?

map_canvas div 是在第 100 行周围创建的,尽可能是标准的(我无法在此处显示 HTML,但它只是任何普通的 div):

 <div class="map" id="map_canvas">
    <!-- DIV that contains the Map of users -->
 </div>
4

0 回答 0