Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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 我们在不同的页面上使用三种不同的地图,它在Chrome中工作,但是?_Javascript_Google Maps - Fatal编程技术网

Javascript 我们在不同的页面上使用三种不同的地图,它在Chrome中工作,但是?

Javascript 我们在不同的页面上使用三种不同的地图,它在Chrome中工作,但是?,javascript,google-maps,Javascript,Google Maps,在我的网站上,我们在两个不同的页面中使用了三个不同的地图(第一个在标题中使用)。 在我看来,我无法让它发挥作用。 因此,目前三分之二的地图正在工作。 这是我正在使用的代码: <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>ICLEI</title

在我的网站上,我们在两个不同的页面中使用了三个不同的地图(第一个在标题中使用)。 在我看来,我无法让它发挥作用。 因此,目前三分之二的地图正在工作。 这是我正在使用的代码:

    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ICLEI</title>
    <link rel="stylesheet" href="{{ asset('css/main.css') }}">
    <link rel="stylesheet" href="{{ asset('css/selection.css') }}">
    <link href="https://fonts.googleapis.com/css?family=Hind:300,400,500,600,700" rel="stylesheet">
    <link href='https://fonts.googleapis.com/css?family=Cairo:400,200,300,600,700,900' rel='stylesheet' type='text/css'>
    <link href="//cdn-images.mailchimp.com/embedcode/slim-10_7.css" rel="stylesheet" type="text/css">
    <script src="https://maps.googleapis.com/maps/api/js?key={{YOUR-API-KEY}}&callback=initMap"
            async defer></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js" defer></script>
    <script type="text/javascript">window.jQuery || document.write('<script src="{{ asset('js/jquery-1.11.2.min.js') }}"><\/script>')</script>
    <script type="text/javascript" src="{{ asset('js/jquery.main.js') }}" defer></script>
    <script src="https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/markerclusterer.js"></script>

    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-2790248-3"></script>
    <script>
        window.dataLayer = window.dataLayer || [];
        function gtag(){dataLayer.push(arguments);}
        gtag('js', new Date());

        gtag('config', 'UA-2790248-3');
    </script>
    <script>
    var locations = [{
        lat: 37.4,
        lng: 128.4,
        "government_local_name": "\ud3c9\ucc3d\uad70",
        "city": "Pyeongchang County",
        "country": "Republic of Korea",
        "website": "eng.pc.go.kr"
    },
        {
            lat: 10.5,
            lng: 122.43,
            "government_local_name": "Bayan ng Dumangas",
            "city": "Dumangas",
            "country": "Philippines",
            "website": null
        }];

        var image = '{{ asset('images/marker-office.png') }}';

        function initMap() {
            var options = { imagePath: '{{ asset('images/m') }}'};

            var map = new google.maps.Map(
                document.getElementById('map1'), {
                    zoom: 2,
                    center: {lat: 50.7374, lng: 7.0982},
                }
            );

            var markers = locations.map(function(location, i) {
                return new google.maps.Marker({
                    position: location,
                    icon: image
                });
            });

            var activeInfoWindow;

            markers.forEach(function(marker, i) {
                if(!locations[i].government_local_name){} else {
                    government = locations[i].government_local_name;
                }
                if(!locations[i].city){} else {
                    city = locations[i].city;
                }
                if(!locations[i].country) {} else {
                    country = locations[i].country;
                }
                if(!locations[i].website){} else {
                    website = locations[i].website;
                }
                var infowindow = new google.maps.InfoWindow({
                    content: "<p>"+ government +"</p>" +
                    "<p>"+ city +"</p>" +
                    "<p>"+ country +"</p>" +
                    "<p>"+ website +"</p>"
                });

                marker.addListener('click', function() {
                    if (activeInfoWindow === infowindow) {
                        return;
                    }
                    if (activeInfoWindow) {
                        activeInfoWindow.close();
                    }
                    infowindow.open(map, this);
                    activeInfoWindow = infowindow;
                });
            });

            var markerCluster = new MarkerClusterer(map, markers, options);
        }
    </script>
    <script src="https://maps.googleapis.com/maps/api/js?key={{YOUR-API-KEY}}&callback=initMap"
            async defer></script>
</head>

伊利
window.jQuery | | document.write(“”)
window.dataLayer=window.dataLayer | |[];
函数gtag(){dataLayer.push(参数);}
gtag('js',新日期());
gtag(“配置”、“UA-2790248-3”);
变量位置=[{
拉脱维亚:37.4,
液化天然气:128.4,
“政府\地方\名称”:“\ud3c9\ucc3d\uad70”,
“城市”:“平昌县”,
“国家”:“大韩民国”,
“网站”:“eng.pc.go.kr”
},
{
纬度:10.5,
液化天然气:122.43,
“政府、地方名称”:“巴彦、杜曼加斯”,
“城市”:“杜曼加斯”,
“国家”:“菲律宾”,
“网站”:空
}];
var image={{asset('images/marker office.png')}};
函数initMap(){
var options={imagePath:'{{asset('images/m')}}};
var map=new google.maps.map(
document.getElementById('map1'){
缩放:2,
中心:{lat:50.7374,lng:7.0982},
}
);
var markers=locations.map(函数(位置,i){
返回新的google.maps.Marker({
位置:位置,,
图标:图像
});
});
var-activeInfoWindow;
markers.forEach(函数(marker,i){
如果(!locations[i].政府\本地\名称){}其他{
政府=地点[i]。政府\当地\名称;
}
如果(!locations[i].city){}else{
城市=地点[i]。城市;
}
如果(!locations[i].country){}else{
国家=地点[i]。国家;
}
如果(!locations[i].website){}else{
网站=位置[i]。网站;
}
var infowindow=new google.maps.infowindow({
内容:“”+政府+“

”+ “”+城市+“

”+ “”+国家+“

”+ “”+网站+“

” }); marker.addListener('click',function()){ 如果(activeInfoWindow==infowindow){ 回来 } 如果(activeInfoWindow){ activeInfoWindow.close(); } 打开(地图,这个); activeInfoWindow=infowindow; }); }); var markerCluster=新的MarkerClusterer(映射、标记、选项); }
只要有人能看到我在这里使用的两个脚本与地图。 有了这段代码,一切都可以在chrome中运行,但在Mozzila中无法运行(谢天谢地,我只支持这两种浏览器)。应该显示在每一页上的地图根本不起作用。这是mozzila控制台中显示的错误:

未捕获异常:InvalidValueError:initMap不是函数 您已经多次将Google Maps JavaScript API包含在 这一页。这可能会导致意外错误

这是我在Chrome上遇到的控制台错误:

未捕获Ob{消息:“initMap不是函数”,名称:“InvalidValueError”,堆栈:“Error”↵ 在新Ob(…kLEDNWcj0IwFZ_Io84oExuE8g&callback=initMap:162:56“} 但是所有的东西都显示在Chrome上,Mozzila缺少一张地图。 其他人能给我一个解决方案吗

更新: 如果你问自己为什么我要调用api两次。因为如果我只从顶部调用它一次,那么两个浏览器都会丢失两个映射。我相信这与调用函数有关,因为在一个浏览器中(阅读Mozilla)如果从顶部调用maps api,它就会调用它;在Chrome中,如果从底部调用api,它就会工作。
如果我把它放进去一次,那么在相应的浏览器中,它会说它错过了InitMap。

我需要添加到maps和jquery.main.js以及analytics中的所有内容都是

推迟

在脚本标记的末尾。 对于那些问自己为什么会这样的人来说,这是因为(根据我的研究)google.maps和google.analytics共享一些库和数据


它的作用是在页面和其他所有内容加载后加载javascript(CSS和其他javascript),并分别调用两个库(分析和映射).

为什么要调用api两次?Algo,只是检查一下,我想你在粘贴代码时删除了api密钥,对吗?是的,我删除了密钥是因为我们的客户向我们提供了密钥。查看问题编辑部分以获得第一个问题的答案。因此,在本页中,你有两个映射,一个在标题中,另一个在正文中哪一个再次调用api?不,我们在页眉中使用了一次,在正文中使用了两次。对不起。也许你可以访问iclei.org,在global和iclei.org/en/our_network.html和iclei.org/en/members-search.htmlSorry下查看它,因为我的问题不够清楚。