Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.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 调用函数;新google.maps.Circle“;从初始化失败_Javascript_Function_Google Maps_Initialization - Fatal编程技术网

Javascript 调用函数;新google.maps.Circle“;从初始化失败

Javascript 调用函数;新google.maps.Circle“;从初始化失败,javascript,function,google-maps,initialization,Javascript,Function,Google Maps,Initialization,有人能描述一下我,问题在哪里,以及如何修复代码吗 这不起作用: function initialize() { var b = new google.maps.LatLng(49.190033, 16.6150523); var Copt = {center:b, map: map, radius: 1000}; var mapOptions = { zoom: 13, center: b, mapTypeId: google.maps.MapTypeId.ROADMAP }

有人能描述一下我,问题在哪里,以及如何修复代码吗

这不起作用:

function initialize() {
    var b = new google.maps.LatLng(49.190033, 16.6150523); var Copt = {center:b, map: map, radius: 1000};
    var mapOptions = { zoom: 13, center: b, mapTypeId: google.maps.MapTypeId.ROADMAP }              
    var map = new google.maps.Map(document.getElementById("map_canvas"),mapOptions);
    cir();
    //var C = new google.maps.Circle(Copt);C.setMap(map);
} 

function cir(){    
    var C = new google.maps.Circle(Copt); C.setMap(map);
}
但当我将函数cir()的内容放入initialize中时,它的工作原理是: 这里

我认为,这与部件

但我真的不知道该怎么做,如何将函数置于initialize之外,以及它是如何工作的


您能否创建一个用于创建圆的函数的简短示例并从initialize调用它?

我认为您遇到的问题是,
C
函数的作用域中没有
map
变量。试试这个:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body onload="initMap();">
    <div id="map_canvas"></div>
    <script>
        function initMap() {
            var options = {
                // your options here
            };
            var map = new google.maps.Map(document.getElementById('map_canvas'), options);
            drawCircle(map);
        };

        function drawCircle(map) {
            // draw circle logic in here; use map as you would normally
        };
    </script>
  </body>
</html>

函数initMap(){
变量选项={
//你的选择在这里
};
var map=new google.maps.map(document.getElementById('map_canvas'),选项);
画圈(地图);
};
函数drawCircle(地图){
//在这里画圆逻辑;像平常一样使用地图
};

map
参数传递给
drawCircle()
函数意味着它可以使用它。我不熟悉
Circle
对象,但您应该能够从这里实现您的代码。

我通常声明
var-map全局。这可以避免传递地图参考。

您好,谢谢您的回答和好主意。我尝试了“函数drawCircle(map){alert(“alert”);C=new google.maps.Circle({center:b,map:map,radius:1000});};”,但不幸的是,问题仍然是一样的(我只得到了map和alert)。如果使用Chrome,您应该会在Web Inspector控制台中发现任何JavaScript错误。
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body onload="initMap();">
    <div id="map_canvas"></div>
    <script>
        function initMap() {
            var options = {
                // your options here
            };
            var map = new google.maps.Map(document.getElementById('map_canvas'), options);
            drawCircle(map);
        };

        function drawCircle(map) {
            // draw circle logic in here; use map as you would normally
        };
    </script>
  </body>
</html>