未捕获的RangeError:当我使用谷歌地图时,超出最大调用堆栈大小 [英] Uncaught RangeError: Maximum call stack size exceeded when I use google maps
问题描述
未捕获的RangeError:最大呼叫数堆栈大小超过
js:
<$ p $ ($)$ $ $ $ var map;
var $;
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
var marker = new google.maps.Marker({
position:latlng,
map:map
});
markers.push(marker);
}
fitBounds();
函数f itBounds(){
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());
}
}
返回界限;
}
});
这是不正确的(x.lat和x.lng未定义):
for(var x = 0; x var latlng = new google.maps.LatLng (x.lat,x.lng);
var marker = new google.maps.Marker({
position:latlng,
map:map
});
markers.push(marker);
$ / code>
产生latlng:lat,NaN,lng:NaN
哪一个是无效的。
应该是:
<$ p $对于(var x = 0; x
var marker = new google.maps.Marker({
position:latlng,
map:map
});
markers.push(marker);
}
I am trying to write simple example with google maps and markers but i faces with error:
Uncaught RangeError: Maximum call stack size exceeded
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;
}
});
The error Uncaught RangeError: Maximum call stack size exceeded
when calling fitBounds
usually means you have called bounds.extend
with an invalid google.maps.LatLng
object.
This is incorrect (x.lat and x.lng are undefined):
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);
}
It yields latlng with lat: NaN, lng: NaN
Which isn't valid.
should be:
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);
}
这篇关于未捕获的RangeError:当我使用谷歌地图时,超出最大调用堆栈大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!