Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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 跌破开关的情况下,谷歌地图元素似乎失败了_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 跌破开关的情况下,谷歌地图元素似乎失败了

Javascript 跌破开关的情况下,谷歌地图元素似乎失败了,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我一直在尝试调试它,但没有成功。我有一个倒扣式开关盒,当我观察堆栈时,它似乎能工作,它击中了我设置的所有断点(假设类型是多边形,我在应该出现的所有断点上放置了一个断点)。我打了每一个,但都失败了。所以这是第一个有效的 function create_map_element3(type,op,map){ var _op={}; defined(map) ?_op.map=map:null; defined(op.clickable)

我一直在尝试调试它,但没有成功。我有一个倒扣式开关盒,当我观察堆栈时,它似乎能工作,它击中了我设置的所有断点(假设类型是多边形,我在应该出现的所有断点上放置了一个断点)。我打了每一个,但都失败了。所以这是第一个有效的

function create_map_element3(type,op,map){
    var _op={};
    defined(map)                ?_op.map=map:null;
    defined(op.clickable)       ?_op.clickable=op.clickable:null;
    defined(op.visible)         ?_op.visible=op.visible:null;
    defined(op.zIndex)          ?_op.zIndex=op.zIndex:null;

    switch(type){
        case "polygon" :
            defined(op.editable)        ?_op.editable=op.editable:null;
            defined(op.fillOpacity)     ?_op.fillOpacity=op.fillOpacity:null;
            return new google.maps.Polygon(_op);
            break;
        case "rectangle" :
            defined(op.editable)        ?_op.editable=op.editable:null;
            defined(op.fillOpacity)     ?_op.fillOpacity=op.fillOpacity:null;
            return new google.maps.Rectangle(_op);
            break;
        case "circle" :
            defined(op.editable)        ?_op.editable=op.editable:null;
            defined(op.fillOpacity)     ?_op.fillOpacity=op.fillOpacity:null;
            return new google.maps.Circle(_op);
            break;          
        case "polyline" :
            defined(op.editable)        ?_op.editable=op.editable:null;
            defined(op.strokeWeight)    ?_op.strokeWeight=op.strokeWeight:null;
            return new google.maps.Polyline(_op);
            break;              
        case "marker" :
            defined(op.animation)       ?_op.animation=op.animation:null;
            return new google.maps.Marker(_op);
            break;
    };
}
行得通。。我可以很好地获得googlemap元素。现在随着更改,当我调试时,我再次命中所有断点_op对象被填充,并填充其属性。。。但没什么

function create_map_element(type,op,map){
    var _op={};
    defined(map)                ?_op.map=map:null;
    switch(type){
        case "polygon": case "polyline" :  case "rectangle" : case "circle" : case "marker" :
                defined(op.clickable)       ?_op.clickable=op.clickable:null;
                defined(op.visible)         ?_op.visible=op.visible:null;
                defined(op.zIndex)          ?_op.zIndex=op.zIndex:null;
        case "polygon": case "polyline" :  case "rectangle" : case "circle" :
                defined(op.strokeColor)     ?_op.strokeColor=op.strokeColor:null;
                defined(op.strokeOpacity)   ?_op.strokeOpacity=op.strokeOpacity:null;
                defined(op.strokeWeight)    ?_op.strokeWeight=op.strokeWeight:null;
        case "polygon": case "rectangle" : case "circle" :
                defined(op.fillOpacity)     ?_op.fillOpacity=op.fillOpacity:null;
        case "polygon": case "polyline" :
                defined(op.geodesic)        ?_op.geodesic=op.geodesic:null;             
        case "marker" :
                defined(op.animation)       ?_op.animation=op.animation:null;
        case "polygon" :
                return new google.maps.Polygon(_op);
            break;
        case "rectangle" :
                return new google.maps.Rectangle(_op);
            break;
        case "circle" :
                return new google.maps.Circle(_op);
            break;          
        case "polyline" :
                return new google.maps.Polyline(_op);
            break;              
        case "marker" :
                return new google.maps.Marker(_op);
            break;  
    };
}
但是当我在retrun线上设置断点时,它击中了它,看起来一切正常。。但是没有什么。。有人有主意吗?谢谢你-杰里米

[编辑] 基于,嗯,我不知道是谁删除了他们的anwser,但它在案件失败原因的正确轨道上。。。这里有一个选项,我正试图用与上面相同的想法来做

function create_map_element(type,op,map){
    var _op={};
    defined(map)?_op.map=map:null;
    defined(op.clickable)       ?_op.clickable=op.clickable:null;
    defined(op.visible)         ?_op.visible=op.visible:null;
    defined(op.zIndex)          ?_op.zIndex=op.zIndex:null;

    if( ["polygon","polyline","rectangle","circle"].indexOf(type)!== -1  ){
                    defined(op.strokeColor)     ?_op.strokeColor=op.strokeColor:null;
                    defined(op.strokeOpacity)   ?_op.strokeOpacity=op.strokeOpacity:null;
                    defined(op.strokeWeight)    ?_op.strokeWeight=op.strokeWeight:null;
    }
    if( ["polygon","rectangle","circle"].indexOf(type)!== -1  ){
                    defined(op.fillColor)       ?_op.fillColor=op.fillColor:null;
                    defined(op.fillOpacity)     ?_op.fillOpacity=op.fillOpacity:null;
    }
    if( ["polygon","polyline"].indexOf(type)!== -1  ){
                    defined(op.geodesic)        ?_op.geodesic=op.geodesic:null;         
    }
    if(type == "marker"){
                    defined(op.animation)       ?_op.animation=op.animation:null;
                    defined(op.cursor)          ?_op.cursor=op.cursor:null;
                    defined(op.draggable)       ?_op.draggable=op.draggable:null;
                    defined(op.flat)            ?_op.flat=op.flat:null;
                    defined(op.icon)            ?_op.icon=op.icon:null;
                    defined(op.optimized)       ?_op.optimized=op.optimized:null;
                    defined(op.position)        ?_op.position=op.position:null;                 
                    defined(op.raiseOnDrag)     ?_op.raiseOnDrag=op.raiseOnDrag:null;                   
                    defined(op.shadow)          ?_op.shadow=op.shadow:null; 
                    defined(op.shape)           ?_op.shape=op.shape:null;                       
                    defined(op.title)           ?_op.title=op.title:null;   
    }
    switch(type){
        case "polygon" :
                return new google.maps.Polygon(_op);
            break;
        case "rectangle" :
                return new google.maps.Rectangle(_op);
            break;
        case "circle" :
                return new google.maps.Circle(_op);
            break;          
        case "polyline" :
                return new google.maps.Polyline(_op);
            break;              
        case "marker" :
                return new google.maps.Marker(_op);
            break;  
    };
}

哦,这也不管用,但是。。它正确地命中了所有断点,当我检查它时,它看起来很好。它只是不返回GoogleMap元素。。顶部的代码块(函数create\u map\u element3)同样有效

我不知道为什么会投反对票,但答案似乎是,不,你无法修复它,因为该案例将遍历所有内容,它声称它的案例在其所在的组中是真实的

即:

后来

case "marker" : 
即使类型为“多边形”

只需在每个案例下运行函数中的断点,即可显示即使案例已被击中,您也击中了内部。如果您删除了一个fall-thru案例,即:取出案例“标记”:然后,正如预期的那样,它再次经过类型为多边形,因此案例为假


奇怪,但事实就是这样。更好的解释是受欢迎的,这是基于Molle博士指出的事件。

好吧,在堆栈中说它确实发生了,但什么也没有发生,谷歌似乎没有得到它。就像中间有一些乙醚,它会消失在其中。我检查了返回上的断点,并且_op按预期填充,看起来像是新的google.maps.Polygon(_op);开火吧。。。不是百分之百的赞同这个atmWell,这真的比我最近的建议^^^两张反对票更具可读性@莫勒医生,你是在开玩笑吧。。对不起,我说不出来。。我想是的,因为你以前是根据原稿编辑的,编辑也没什么不同,这是我这次粘贴的全部内容。
case "marker" :