Google maps IE8在使用Google热图覆盖时抛出长时间运行的脚本错误

Google maps IE8在使用Google热图覆盖时抛出长时间运行的脚本错误,google-maps,internet-explorer,google-maps-api-3,internet-explorer-8,maps,Google Maps,Internet Explorer,Google Maps Api 3,Internet Explorer 8,Maps,我正在尝试使用google maps api v3来渲染热图,它可以在所有浏览器上运行,但不能在IE中运行。IE 9需要很长时间来渲染,但IE8开始抛出“停止运行此脚本”警报,表示脚本花费的时间太长 我在下面放置了一个只有5个集群的简单示例,IE8仍然抛出长时间运行的脚本错误。你能帮我解决这个问题吗。谢谢 <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?libraries=visuali

我正在尝试使用google maps api v3来渲染热图,它可以在所有浏览器上运行,但不能在IE中运行。IE 9需要很长时间来渲染,但IE8开始抛出“停止运行此脚本”警报,表示脚本花费的时间太长

我在下面放置了一个只有5个集群的简单示例,IE8仍然抛出长时间运行的脚本错误。你能帮我解决这个问题吗。谢谢

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?libraries=visualization&sensor=false">
</script>

<script type="text/javascript" src="https://code.jquery.com/jquery-1.9.1.min.js"></script>

<script type="text/javascript">

    $(function () {
        var data = [
            { "lat": "45.284397", "lon": "-126.724372", "count": 10 },
            { "lat": "45.284156", "lon": "-126.724853", "count": 5 },
            { "lat": "45.284450", "lon": "-126.725532", "count": 20 },
            { "lat": "45.284839", "lon": "-126.725875", "count": 34 },
            { "lat": "45.285442", "lon": "-126.726181", "count": 46 }
            ];        
        var usaCenter = new google.maps.LatLng(54.6, -119.2);
        var heatMap = new google.maps.Map(document.getElementById('heatMap'), {
            zoom: 4,
            center: usaCenter,
            mapTypeControlOptions: {
                mapTypeIds: ["Traffic", google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.SATELLITE, google.maps.MapTypeId.HYBRID, google.maps.MapTypeId.TERRAIN]
            },
            mapTypeId: google.maps.MapTypeId.ROADMAP
        });
        var heatMapData = [];
        var bounds = new google.maps.LatLngBounds;
        $.each(data, function (index, point) {
            var latLng = new google.maps.LatLng(point["lat"], point["lon"]);
            var heatPoint = {
                location: latLng,
                weight: point["count"]
            };
            heatMapData.push(heatPoint);
            bounds.extend(latLng);
        });

        var heatmapOverLay = new google.maps.visualization.HeatmapLayer({
            data: heatMapData,
            opacity: 0.7
        });
        heatmapOverLay.setMap(heatMap);
    });
</script>


<div id="heatMap" style="width:1600px;height:1600px"></div>

$(函数(){
风险值数据=[
{“lat”:“45.284397”,“lon”:“-126.724372”,“count”:10},
{“lat”:“45.284156”,“lon”:“-126.724853”,“count”:5},
{“lat”:“45.284450”,“lon”:“-126.725532”,“count”:20},
{“lat”:“45.284839”,“lon”:“-126.725875”,“count”:34},
{“lat”:“45.285442”,“lon”:“-126.726181”,“count”:46}
];        
var usaCenter=newgoogle.maps.LatLng(54.6,-119.2);
var heatMap=new google.maps.Map(document.getElementById('heatMap'){
缩放:4,
中心:usaCenter,
mapTypeControlOptions:{
MapTypeId:[“交通”,google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.SATELLITE,google.maps.MapTypeId.HYBRID,google.maps.MapTypeId.TERRAIN]
},
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var heatMapData=[];
var bounds=new google.maps.LatLngBounds;
$。每个(数据、函数(索引、点){
var latLng=new google.maps.latLng(点[“lat”],点[“lon”]);
var加热点={
地点:拉丁美洲,
重量:点[“计数”]
};
heatMapData.push(热点);
边界扩展(latLng);
});
var heatmapplayer=new google.maps.visualization.heatmapplayer({
数据:热图数据,
不透明度:0.7
});
heatmapOverLay.setMap(热图);
});

IE8根据语句数量而不是脚本运行时间发出此警告。我认为这个警告是不准确的

默认情况下,超时对话框的阈值限制为5000000条语句

Microsoft发布了修补程序以更正此问题:

请注意,microsoft还指出,如果需要,哪一个注册表项可以将其增加到任何级别:

  • 使用注册表编辑器(如
    Regedt32.exe
    )打开此项:

    HKEY\u当前\u用户\软件\ Microsoft\Internet Explorer\Styles

    注意:如果“样式”键不存在,请创建一个称为“样式”的新键

  • 在此键下创建一个名为“MaxScriptStatements”的新DWORD值,并将该值设置为所需的脚本语句数

如果不确定需要将其设置为哪个值,可以将其设置为双字值0xFFFFFF以避免出现对话框