猿问

Google Maps API 无法在移动浏览器上运行

我在我的网站上使用 Google Maps API 自定义标记,它在桌面浏览器中运行良好,但不会出现在移动浏览器中。我的控制台出现错误: TypeError: Cannot read property 'length' of undefined.


我使用ajax获取数据。这是javascript:


var myLatlng = new google.maps.LatLng(-0.7893, 113.9213);

var mapOptions = {

    zoom: 4,

    center: myLatlng,

    scrollwheel: false, 

    mapTypeControl: false,

    styles: []

};


var locations = response;


var map = new google.maps.Map(document.getElementById("map"), mapOptions);


var infowindow = new google.maps.InfoWindow();


var marker, i;


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

    marker = new google.maps.Marker({

    position: new google.maps.LatLng(locations[i][1], locations[i][2]),

    map: map

    });


    google.maps.event.addListener(marker, 'click', (function(marker, i) {

    return function() {

        infowindow.setContent(locations[i][0]);

        infowindow.open(map, marker);

    }

    })(marker, i));

}

任何帮助,将不胜感激。


30秒到达战场
浏览 115回答 2
2回答

慕莱坞森

检查“locations.length”是否存在,如果不存在,它将返回 null 并在长度值上出错。你可以做这样的事情 -if (!locations ==0){for (var i = 0; i < locations.length; i++)....您可以找到更多答案Uncaught TypeError: Cannot read property 'length' of null

慕少森

通过向#map 添加固定高度来解决(以前是 100%)。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答