谷歌地图:addPoints没有定义,递归太多
Google Maps: addPoints is not defined and too much recursion
如果我使用下面显示的代码:1) 它只需几秒钟就可以正常工作,谷歌会删除地图并用错误消息替换它(oops!error…查看控制台日志了解更多信息)。2) 如果我创建一个测试文件,比如test.html,并粘贴我的代码,它可以正常工作,没有任何问题。3) 但如果我在我的页面上使用它,它就不起作用(见1)
我使用jquery ui、jquery和fancybox。。我删除了那些脚本,并在我的页面上再次测试,同样的问题!
控制台日志显示:addPoints未定义递归过多
我的代码
<script src="http://maps.google.com/maps?file=api&v=2&sensor=true&key=my-key" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
// Google Map Maker script v.3
// (c) 2012 Richard Stephenson http://www.rpsdigital.com
// http://mapmaker.donkeymagic.co.uk
var map;
var icon0;
var newPoints = new Array();
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function'){
window.onload = func
} else {
window.onload = function() {
oldonload();
func();
}
}
}
addLoadEvent(loadMap);
addLoadEvent(addPoints);
function loadMap() {
map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.addMapType(G_PHYSICAL_MAP);
map.enableScrollWheelZoom();
map.setCenter(new GLatLng( 46.198308213008495, 14.969000816345215), 7);
map.setMapType(G_PHYSICAL_MAP);
for(var i = 0; i < newPoints.length; i++) {
var point = new GPoint(newPoints[i][1],newPoints[i][0]);
var popuphtml = newPoints[i][4] ;
var marker = createMarker(point,newPoints[i][2],popuphtml);
map.addOverlay(marker);
}
}
function createMarker(point, icon, popuphtml) {
var popuphtml = "<div id='"popup'">" + popuphtml + "<'/div>";
var marker = new GMarker(point, icon);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(popuphtml);
});
return marker;
}
//]]>
</script>
<div id="map" style="width:330px;height:300px"></div>
正如控制台试图告诉您的那样,问题是没有定义addPoints函数。
为什么行为会以这种方式发生,我不能说——可能是因为你的函数loadMap并没有真正使用addPoints,而addPoints(在这段代码中是一个未定义的var/reference)只有在加载事件调度时调用loadMap函数后才会被调用,因为它是在添加loadMap后才添加的。因此,一旦到达,代码就会停止工作。
在你的代码中,addPoints没有定义,正如我在对你的问题的评论中所写的那样——我在谷歌地图api文档中找不到它。从谷歌搜索中,我在这个SO问题中找到了addPoints,它看起来很像你的代码。我猜您使用了该代码或类似的代码来构建工具,但在某个时间点删除了addPoints函数定义。
由于你似乎根本不使用addPoints(它没有在你的代码中定义),我建议你删除行
addLoadEvent(addPoints);
我预测这个问题会解决的。
相关文章:
- 如何修复“;太多递归”;ReactJS中的错误
- 加载事件中的“太多递归”
- 树中的递归错误太多
- 使用promise和递归查找多个随机数据
- HTML5 Canvas Pacman Game - JavaScript 太多的递归
- JQuery 验证 - 太多的递归 - 堆栈溢出
- 谷歌地图点击平移到新位置 递归错误太多
- 主干/下划线 js “太多递归”和“检查目标崩溃”错误
- Jquery 拆分器插件收到错误太多递归
- React 应该组件更新太多的递归
- 内部错误:太多的递归 - 进入jquery
- 太多的递归JavaScript
- Gettin 交叉过滤器.js错误“太多递归”
- 在react中更新状态时递归太多
- JavaScript中的递归太多了
- javascript中的递归有多大的限制?
- extjs4:递归太多
- jQuery:递归太多了,但我需要为扫雷舰递归
- 谷歌地图:addPoints没有定义,递归太多
- jquery setTimeout递归太多