Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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 map api,未捕获错误,marker.setMap不是函数_Javascript_Google Maps Api 3 - Fatal编程技术网

Javascript Google map api,未捕获错误,marker.setMap不是函数

Javascript Google map api,未捕获错误,marker.setMap不是函数,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我正在使用MeteorJS1.4.4.2+ReactJS构建交通堵塞应用程序。我以前使用过atmosphere google map软件包和流行的google map npm软件包(istarkov和tomchentw),这些软件包工作得很好,但它没有我想要的,所以我直接使用google map api来获得它的完整功能 我希望能够删除地图上选定的标记 尝试: // Map functions in the same file as mapInit function let addMarker

我正在使用MeteorJS1.4.4.2+ReactJS构建交通堵塞应用程序。我以前使用过atmosphere google map软件包和流行的google map npm软件包(istarkov和tomchentw),这些软件包工作得很好,但它没有我想要的,所以我直接使用google map api来获得它的完整功能

我希望能够删除地图上选定的标记

尝试:

// Map functions in the same file as mapInit function

let addMarker = ( location )=> {

    let marker = new google.maps.Marker({

        position: location,
        map: map,
        animation: google.maps.Animation.DROP,
        draggable: true

    }).addListener( 'click', ( e )=> removeMarkerOnClick( e ) );

    markers.push( marker );

};

let removeMarkerOnClick( marker )=> {

    let lat = marker.latLng.lat (),
        lng = marker.latLng.ln (),
        position = {};

    markers = markers.reduce(( new_markers, marker )=> {

        position = marker.f.position;

        position.lat() !== lat && position.lng() !== lng ?

            new_markers.push( marker ) : marker.setMap( null );

        return new_markers;

    }, markers);

}

window.initMap = () => {

    //.... body hidden

    map.addListener( 'click', ( e )=> addMarker( e.latLng ) );

}
Uncaught TypeError:
    MapFunctions.jsx:74
    marker.setMap is not a function
     at http://localhost:3000/app/app.js?hash=1f01aac45aac6af0dd009bc4623183b2511f62bf:419:20
at Array.reduce (native)
at removeMarkerOnClick (http://localhost:3000/app/app.js?hash=1f01aac45aac6af0dd009bc4623183b2511f62bf:413:23)
at _.Ge.<anonymous> (http://localhost:3000/app/app.js?hash=1f01aac45aac6af0dd009bc4623183b2511f62bf:403:16)
at Object._.z.trigger (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:102:121)
at XT.<anonymous> (https://maps.googleapis.com/maps-api-v3/api/js/28/14/marker.js:19:348)
at _.pG._.z.trigger (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:102:121)
at _.pG.onclick (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:40:81)
at _.Bu._.z.trigger (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:102:121)
at _.Bu.<anonymous> (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:40:81)
let removeMarkerOnClick( marker )=> {

    let lat = marker.latLng.lat (),
        lng = marker.latLng.ln (),
        position = {};

    markers = markers.reduce(( new_markers, marker )=> {

        position = marker.f.position;

        position.lat() !== lat && position.lng() !== lng ?

        new_markers.push( marker ) : marker.f.setMap ( null ); // Change this line from marker.setMap( null ) to marker.f.setMap ( null )

        return new_markers;

    }, markers);

}
来自客户端控制台的错误:

// Map functions in the same file as mapInit function

let addMarker = ( location )=> {

    let marker = new google.maps.Marker({

        position: location,
        map: map,
        animation: google.maps.Animation.DROP,
        draggable: true

    }).addListener( 'click', ( e )=> removeMarkerOnClick( e ) );

    markers.push( marker );

};

let removeMarkerOnClick( marker )=> {

    let lat = marker.latLng.lat (),
        lng = marker.latLng.ln (),
        position = {};

    markers = markers.reduce(( new_markers, marker )=> {

        position = marker.f.position;

        position.lat() !== lat && position.lng() !== lng ?

            new_markers.push( marker ) : marker.setMap( null );

        return new_markers;

    }, markers);

}

window.initMap = () => {

    //.... body hidden

    map.addListener( 'click', ( e )=> addMarker( e.latLng ) );

}
Uncaught TypeError:
    MapFunctions.jsx:74
    marker.setMap is not a function
     at http://localhost:3000/app/app.js?hash=1f01aac45aac6af0dd009bc4623183b2511f62bf:419:20
at Array.reduce (native)
at removeMarkerOnClick (http://localhost:3000/app/app.js?hash=1f01aac45aac6af0dd009bc4623183b2511f62bf:413:23)
at _.Ge.<anonymous> (http://localhost:3000/app/app.js?hash=1f01aac45aac6af0dd009bc4623183b2511f62bf:403:16)
at Object._.z.trigger (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:102:121)
at XT.<anonymous> (https://maps.googleapis.com/maps-api-v3/api/js/28/14/marker.js:19:348)
at _.pG._.z.trigger (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:102:121)
at _.pG.onclick (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:40:81)
at _.Bu._.z.trigger (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:102:121)
at _.Bu.<anonymous> (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:40:81)
let removeMarkerOnClick( marker )=> {

    let lat = marker.latLng.lat (),
        lng = marker.latLng.ln (),
        position = {};

    markers = markers.reduce(( new_markers, marker )=> {

        position = marker.f.position;

        position.lat() !== lat && position.lng() !== lng ?

        new_markers.push( marker ) : marker.f.setMap ( null ); // Change this line from marker.setMap( null ) to marker.f.setMap ( null )

        return new_markers;

    }, markers);

}
未捕获类型错误:
jsx:74
marker.setMap不是一个函数
在http://localhost:3000/app/app.js?hash=1f01aac45aac6af0dd009bc4623183b2511f62bf:419:20
at Array.reduce(本机)
在移除标记时,单击(http://localhost:3000/app/app.js?hash=1f01aac45aac6af0dd009bc4623183b2511f62bf:413:23)
在uge。(http://localhost:3000/app/app.js?hash=1f01aac45aac6af0dd009bc4623183b2511f62bf:403:16)
在对象处触发(https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:102:121)
在XT。(https://maps.googleapis.com/maps-api-v3/api/js/28/14/marker.js:19:348)
在uu.pG.uz.触发(https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:102:121)
在uu.pG.onclick(https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:40:81)
在uu.Bu.uz.触发(https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:102:121)
在u.Bu。(https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:40:81)
解决方案尝试:

// Map functions in the same file as mapInit function

let addMarker = ( location )=> {

    let marker = new google.maps.Marker({

        position: location,
        map: map,
        animation: google.maps.Animation.DROP,
        draggable: true

    }).addListener( 'click', ( e )=> removeMarkerOnClick( e ) );

    markers.push( marker );

};

let removeMarkerOnClick( marker )=> {

    let lat = marker.latLng.lat (),
        lng = marker.latLng.ln (),
        position = {};

    markers = markers.reduce(( new_markers, marker )=> {

        position = marker.f.position;

        position.lat() !== lat && position.lng() !== lng ?

            new_markers.push( marker ) : marker.setMap( null );

        return new_markers;

    }, markers);

}

window.initMap = () => {

    //.... body hidden

    map.addListener( 'click', ( e )=> addMarker( e.latLng ) );

}
Uncaught TypeError:
    MapFunctions.jsx:74
    marker.setMap is not a function
     at http://localhost:3000/app/app.js?hash=1f01aac45aac6af0dd009bc4623183b2511f62bf:419:20
at Array.reduce (native)
at removeMarkerOnClick (http://localhost:3000/app/app.js?hash=1f01aac45aac6af0dd009bc4623183b2511f62bf:413:23)
at _.Ge.<anonymous> (http://localhost:3000/app/app.js?hash=1f01aac45aac6af0dd009bc4623183b2511f62bf:403:16)
at Object._.z.trigger (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:102:121)
at XT.<anonymous> (https://maps.googleapis.com/maps-api-v3/api/js/28/14/marker.js:19:348)
at _.pG._.z.trigger (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:102:121)
at _.pG.onclick (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:40:81)
at _.Bu._.z.trigger (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:102:121)
at _.Bu.<anonymous> (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:40:81)
let removeMarkerOnClick( marker )=> {

    let lat = marker.latLng.lat (),
        lng = marker.latLng.ln (),
        position = {};

    markers = markers.reduce(( new_markers, marker )=> {

        position = marker.f.position;

        position.lat() !== lat && position.lng() !== lng ?

        new_markers.push( marker ) : marker.f.setMap ( null ); // Change this line from marker.setMap( null ) to marker.f.setMap ( null )

        return new_markers;

    }, markers);

}
  • 使用setOnMap(null)也不起作用,同样的类型错误,setOnMap()不是一个函数

  • 使用marker.setVisibility(false)也不起作用,相同的类型错误。。。不是功能


  • 我在谷歌搜索了一个半小时,还没有找到任何东西,所以请帮助我,非常感谢你花时间阅读此文章。

    你正在函数调用中传递事件

    }).addListener( 'click', ( e )=> removeMarkerOnClick( e ) ); 
    
    you should do:
    }).addListener( 'click', ( e )=> removeMarkerOnClick( marker ) );
    

    很抱歉,如果有人试图找到解决方案,麻烦您。 当我尝试搜索Marker对象时,我尝试使用Marker的其他示例,控制台记录Marker对象以检查差异,然后我发现我的Marker对象位于另一个顶级对象中,因此为了访问setMap函数,我必须进入一个较低的级别。 解决方案:

    // Map functions in the same file as mapInit function
    
    let addMarker = ( location )=> {
    
        let marker = new google.maps.Marker({
    
            position: location,
            map: map,
            animation: google.maps.Animation.DROP,
            draggable: true
    
        }).addListener( 'click', ( e )=> removeMarkerOnClick( e ) );
    
        markers.push( marker );
    
    };
    
    let removeMarkerOnClick( marker )=> {
    
        let lat = marker.latLng.lat (),
            lng = marker.latLng.ln (),
            position = {};
    
        markers = markers.reduce(( new_markers, marker )=> {
    
            position = marker.f.position;
    
            position.lat() !== lat && position.lng() !== lng ?
    
                new_markers.push( marker ) : marker.setMap( null );
    
            return new_markers;
    
        }, markers);
    
    }
    
    window.initMap = () => {
    
        //.... body hidden
    
        map.addListener( 'click', ( e )=> addMarker( e.latLng ) );
    
    }
    
    Uncaught TypeError:
        MapFunctions.jsx:74
        marker.setMap is not a function
         at http://localhost:3000/app/app.js?hash=1f01aac45aac6af0dd009bc4623183b2511f62bf:419:20
    at Array.reduce (native)
    at removeMarkerOnClick (http://localhost:3000/app/app.js?hash=1f01aac45aac6af0dd009bc4623183b2511f62bf:413:23)
    at _.Ge.<anonymous> (http://localhost:3000/app/app.js?hash=1f01aac45aac6af0dd009bc4623183b2511f62bf:403:16)
    at Object._.z.trigger (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:102:121)
    at XT.<anonymous> (https://maps.googleapis.com/maps-api-v3/api/js/28/14/marker.js:19:348)
    at _.pG._.z.trigger (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:102:121)
    at _.pG.onclick (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:40:81)
    at _.Bu._.z.trigger (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:102:121)
    at _.Bu.<anonymous> (https://maps.googleapis.com/maps/api/js?key=AIzaSyB1-fwP96l-_VAicaDGRNMmEU93TY4fcGs&libraries=places&callback=initMap:40:81)
    
    let removeMarkerOnClick( marker )=> {
    
        let lat = marker.latLng.lat (),
            lng = marker.latLng.ln (),
            position = {};
    
        markers = markers.reduce(( new_markers, marker )=> {
    
            position = marker.f.position;
    
            position.lat() !== lat && position.lng() !== lng ?
    
            new_markers.push( marker ) : marker.f.setMap ( null ); // Change this line from marker.setMap( null ) to marker.f.setMap ( null )
    
            return new_markers;
    
        }, markers);
    
    }
    

    哦,是的,对不起,我没有看到,非常感谢,我会尽快修复它并向您报告Hello bro,将marker传递给它只是为了获取它的坐标,但它仍然无法解决导致marker的问题。setMap()不是函数