Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript GoogleMaps不会在页面加载时进行初始化_Javascript_Html_Google Maps - Fatal编程技术网

Javascript GoogleMaps不会在页面加载时进行初始化

Javascript GoogleMaps不会在页面加载时进行初始化,javascript,html,google-maps,Javascript,Html,Google Maps,我正在使用GoogleMapsAPI javascript,有时它工作得很好,但有时我重新加载页面,然后在浏览器的控制台点击中出现异常,地图没有显示 未捕获nc js?key=MyAPIKey&callback=initMap:98 我的javascript代码: <script async defer src="https://maps.googleapis.com/maps/api/js?key=NyAPIKey&callback=ini

我正在使用GoogleMapsAPI javascript,有时它工作得很好,但有时我重新加载页面,然后在浏览器的控制台点击中出现异常,地图没有显示

未捕获nc js?key=MyAPIKey&callback=initMap:98 我的javascript代码:

    <script async defer
                src="https://maps.googleapis.com/maps/api/js?key=NyAPIKey&callback=initMap">
        </script>

function initMap() {
        if (typeof google === 'object' && typeof google.maps === 'object') {
            // Create the map.
            var map = new google.maps.Map(document.getElementById('googleapi'), {
                zoom: 14,
                center: { lat: @Model.SelectedAppliance.Lat, lng: @Model.SelectedAppliance.Lon },
                mapTypeId: 'terrain'
            });

            var marker = new google.maps.Marker({
                position: map.center,
                map: map,
                title: 'Device Home'
            });

            // Construct the circle for each value in citymap.
            // Note: We scale the area of the circle based on the population.
            var positionCircle = new google.maps.Circle({
                strokeColor: '#FF0000',
                strokeOpacity: 0.8,
                strokeWeight: 2,
                fillColor: '#FF0000',
                fillOpacity: 0.35,
                map: map,
                center: map.center,
                radius: getMeters(@Model.SelectedAppliance.TriggerMile),
            });

            return positionCircle;
        } else {
            window.location.reload(true);
        }

    }

    function ContainPoint(device, lat, lon) {
        if (typeof google === 'object' && typeof google.maps === 'object') {
            markerCPosition = new google.maps.LatLng(lat, lon);
            var circleBounds = initMap().getBounds();
            if (!circleBounds.contains(markerCPosition)) {
                $(device).hide(true);
            }
        } else {
            window.location.reload(true);
        }
    }

函数initMap(){
if(typeof google=='object'&&typeof google.maps=='object'){
//创建地图。
var map=new google.maps.map(document.getElementById('googleapi'){
缩放:14,
中心:{lat:@Model.SelectedAppliance.lat,lng:@Model.SelectedAppliance.Lon},
mapTypeId:'地形'
});
var marker=new google.maps.marker({
位置:地图中心,
地图:地图,
标题:“设备主页”
});
//为城市地图中的每个值构建圆。
//注:我们根据人口来缩放圆的面积。
var positionCircle=new google.maps.Circle({
strokeColor:“#FF0000”,
笔划不透明度:0.8,
冲程重量:2,
填充颜色:'#FF0000',
不透明度:0.35,
地图:地图,
中心:地图中心,
半径:getMeters(@Model.selectedapplication.triggerme),
});
返回位置圆;
}否则{
window.location.reload(true);
}
}
功能点(设备、横向、纵向){
if(typeof google=='object'&&typeof google.maps=='object'){
markerCPosition=newgoogle.maps.LatLng(lat,lon);
var circleBounds=initMap().getBounds();
如果(!circleBounds.contains(MarkerPosition)){
$(设备).hide(真);
}
}否则{
window.location.reload(true);
}
}

您尝试删除异步吗?

现在是2016年,如果您没有在客户端Javascript上使用取消阻止异步和延迟标记,您需要进行干预

如果存在async属性,则将获取脚本 与解析并行,并在可用时立即进行评估 (可能在解析完成之前)

如果异步属性不存在,但延迟属性不存在 此时,将并行获取经典脚本并 当页面完成解析时计算

如果两个属性都不存在,则立即获取并计算脚本,阻止解析,直到这两个属性都完成,从而使一切变得缓慢和糟糕

我们之所以添加这两个选项,是因为并非所有浏览器都支持异步,而defer则是这些旧浏览器的备用选项


如果存在async,则脚本将在可用时立即执行,但不会阻止页面的进一步解析。如果不存在async,但存在defer,则在页面完成解析后执行脚本。

我没有尝试过它。异步的意思是什么?异步:当以异步方式执行任务时,您可以在上一个任务完成之前直接切换到另一个任务。一项任务不依赖于另一项任务。如果需要更多信息,请转到链接。您的意思是,我的脚本将在可用时立即执行。在我的情况下,我应该做什么?删除async并延迟,它将像一个符咒一样工作。虽然我不支持,但函数似乎不在
标记内,是真的吗?我认为
Uncaught nc
来自函数。是的,我忘了在我的问题中添加它