未捕获的RangeError:当我使用谷歌地图时,超出了最大调用堆栈大小

gst*_*low 0 javascript stack-overflow google-maps-api-3

我试图用谷歌地图和标记写简单的例子,但我面临着错误:

Uncaught RangeError: Maximum call stack size exceeded
Run Code Online (Sandbox Code Playgroud)

JS:

$(document).ready(function() {
    var map;
    var elevator;
    var myOptions = {
        zoom: 1,
        center: new google.maps.LatLng(0, 0),
        mapTypeId: 'terrain'
    };
    map = new google.maps.Map($('#map_canvas')[0], myOptions);

    var markers = [];
    coords = [{
        lat: 55,
        lng: 37
    }];
    for (var x = 0; x < coords.length; x++) {
        var latlng = new google.maps.LatLng(x.lat, x.lng);
        var marker = new google.maps.Marker({
            position: latlng,
            map: map
        });
        markers.push(marker);


    }

    fitBounds();

    function fitBounds() {
        var bounds = calculateBounds();
        if (bounds != undefined) {
            map.fitBounds(bounds);
        }
    }

    function calculateBounds() {
        var allMarkers = markers;
        if (allMarkers.length > 0) {
            var bounds = new google.maps.LatLngBounds();
            for (i = 0; i < allMarkers.length; i++) {
                bounds.extend(allMarkers[i].getPosition());
            }
        }
        return bounds;
    }

});
Run Code Online (Sandbox Code Playgroud)

小提琴

geo*_*zip 8

通常Uncaught RangeError: Maximum call stack size exceeded调用时的错误fitBounds意味着您bounds.extend使用无效google.maps.LatLng对象进行了调用.

这是不正确的(x.lat和x.lng未定义):

for (var x = 0; x < coords.length; x++) {
    var latlng = new google.maps.LatLng(x.lat, x.lng);
    var marker = new google.maps.Marker({
        position: latlng,
        map: map
    });
    markers.push(marker);
}
Run Code Online (Sandbox Code Playgroud)

它产生lat的lat:NaN,lng:NaN

哪个无效.

应该:

for (var x = 0; x < coords.length; x++) {
    var latlng = new google.maps.LatLng(coords[x].lat, coords[x].lng);
    var marker = new google.maps.Marker({
        position: latlng,
        map: map
    });
    markers.push(marker);
}
Run Code Online (Sandbox Code Playgroud)

更新小提琴

  • 相当奇怪的是,地图库无法处理这个并抛出正确的错误.我遇到了一个coördinate有一个`,`而不是一个句号,导致值为'NaN`. (2认同)