Google Map API-删除标记

我曾尝试在此处和Google Maps API文档中查看大量代码块,但仍无法弄清楚如何隐藏标记。


这是我正在使用的当前代码,并且可以在一个实例上使用。一旦我用markers.setMap(null)在函数中添加了“ for”循环,Firefox就会显示以下错误:


错误:TypeError:markers.setMap不是函数


function removeMarkers(){

    var markers;

    alert(markers);

    alert(locations.length);

    for (i = 0; i<locations.length; i++){

        markers = locations[i];

        alert(markers.title);

        markers.setMap(null);

    }

}


摇曳的蔷薇
浏览 634回答 3
3回答

慕村225694

您需要保留一个google.maps.Marker对象数组以隐藏(或对其进行删除或运行其他操作)。在全球范围内:var gmarkers = [];然后在创建标记时将标记推入该阵列:var marker = new google.maps.Marker({&nbsp; &nbsp; position: new google.maps.LatLng(locations[i].latitude, locations[i].longitude),&nbsp; &nbsp; title: locations[i].title,&nbsp; &nbsp; icon: icon,&nbsp; &nbsp; map:map});// Push your newly created marker into the array:gmarkers.push(marker);然后删除它们:function removeMarkers(){&nbsp; &nbsp; for(i=0; i<gmarkers.length; i++){&nbsp; &nbsp; &nbsp; &nbsp; gmarkers[i].setMap(null);&nbsp; &nbsp; }}工作示例(切换标记)代码段:var gmarkers = [];var RoseHulman = new google.maps.LatLng(39.483558, -87.324593);var styles = [{&nbsp; stylers: [{&nbsp; &nbsp; hue: "black"&nbsp; }, {&nbsp; &nbsp; saturation: -90&nbsp; }]}, {&nbsp; featureType: "road",&nbsp; elementType: "geometry",&nbsp; stylers: [{&nbsp; &nbsp; lightness: 100&nbsp; }, {&nbsp; &nbsp; visibility: "simplified"&nbsp; }]}, {&nbsp; featureType: "road",&nbsp; elementType: "labels",&nbsp; stylers: [{&nbsp; &nbsp; visibility: "on"&nbsp; }]}];var styledMap = new google.maps.StyledMapType(styles, {&nbsp; name: "Campus"});var mapOptions = {&nbsp; center: RoseHulman,&nbsp; zoom: 15,&nbsp; mapTypeControl: true,&nbsp; zoomControl: true,&nbsp; zoomControlOptions: {&nbsp; &nbsp; style: google.maps.ZoomControlStyle.SMALL&nbsp; },&nbsp; mapTypeControlOptions: {&nbsp; &nbsp; mapTypeIds: ['map_style', google.maps.MapTypeId.HYBRID],&nbsp; &nbsp; style: google.maps.MapTypeControlStyle.DROPDOWN_MENU&nbsp; },&nbsp; scrollwheel: false,&nbsp; streetViewControl: true,};var map = new google.maps.Map(document.getElementById('map'), mapOptions);map.mapTypes.set('map_style', styledMap);map.setMapTypeId('map_style');var infowindow = new google.maps.InfoWindow({&nbsp; maxWidth: 300,&nbsp; infoBoxClearance: new google.maps.Size(1, 1),&nbsp; disableAutoPan: false});var marker, i, icon, image;var locations = [{&nbsp; "id": "1",&nbsp; "category": "6",&nbsp; "campus_location": "F2",&nbsp; "title": "Alpha Tau Omega Fraternity",&nbsp; "description": "<p>Alpha Tau Omega house</p>",&nbsp; "longitude": "-87.321133",&nbsp; "latitude": "39.484092"}, {&nbsp; "id": "2",&nbsp; "category": "6",&nbsp; "campus_location": "B2",&nbsp; "title": "Apartment Commons",&nbsp; "description": "<p>The commons area of the apartment-style residential complex</p>",&nbsp; "longitude": "-87.329282",&nbsp; "latitude": "39.483599"}, {&nbsp; "id": "3",&nbsp; "category": "6",&nbsp; "campus_location": "B2",&nbsp; "title": "Apartment East",&nbsp; "description": "<p>Apartment East</p>",&nbsp; "longitude": "-87.328809",&nbsp; "latitude": "39.483748"}, {&nbsp; "id": "4",&nbsp; "category": "6",&nbsp; "campus_location": "B2",&nbsp; "title": "Apartment West",&nbsp; "description": "<p>Apartment West</p>",&nbsp; "longitude": "-87.329732",&nbsp; "latitude": "39.483429"}, {&nbsp; "id": "5",&nbsp; "category": "6",&nbsp; "campus_location": "C2",&nbsp; "title": "Baur-Sames-Bogart (BSB) Hall",&nbsp; "description": "<p>Baur-Sames-Bogart Hall</p>",&nbsp; "longitude": "-87.325714",&nbsp; "latitude": "39.482382"}, {&nbsp; "id": "6",&nbsp; "category": "6",&nbsp; "campus_location": "D3",&nbsp; "title": "Blumberg Hall",&nbsp; "description": "<p>Blumberg Hall</p>",&nbsp; "longitude": "-87.328321",&nbsp; "latitude": "39.483388"}, {&nbsp; "id": "7",&nbsp; "category": "1",&nbsp; "campus_location": "E1",&nbsp; "title": "The Branam Innovation Center",&nbsp; "description": "<p>The Branam Innovation Center</p>",&nbsp; "longitude": "-87.322614",&nbsp; "latitude": "39.48494"}, {&nbsp; "id": "8",&nbsp; "category": "6",&nbsp; "campus_location": "G3",&nbsp; "title": "Chi Omega Sorority",&nbsp; "description": "<p>Chi Omega house</p>",&nbsp; "longitude": "-87.319905",&nbsp; "latitude": "39.482071"}, {&nbsp; "id": "9",&nbsp; "category": "3",&nbsp; "campus_location": "D1",&nbsp; "title": "Cook Stadium/Phil Brown Field",&nbsp; "description": "<p>Cook Stadium at Phil Brown Field</p>",&nbsp; "longitude": "-87.325258",&nbsp; "latitude": "39.485007"}, {&nbsp; "id": "10",&nbsp; "category": "1",&nbsp; "campus_location": "D2",&nbsp; "title": "Crapo Hall",&nbsp; "description": "<p>Crapo Hall</p>",&nbsp; "longitude": "-87.324368",&nbsp; "latitude": "39.483709"}, {&nbsp; "id": "11",&nbsp; "category": "6",&nbsp; "campus_location": "G3",&nbsp; "title": "Delta Delta Delta Sorority",&nbsp; "description": "<p>Delta Delta Delta</p>",&nbsp; "longitude": "-87.317477",&nbsp; "latitude": "39.482951"}, {&nbsp; "id": "12",&nbsp; "category": "6",&nbsp; "campus_location": "D2",&nbsp; "title": "Deming Hall",&nbsp; "description": "<p>Deming Hall</p>",&nbsp; "longitude": "-87.325822",&nbsp; "latitude": "39.483421"}, {&nbsp; "id": "13",&nbsp; "category": "5",&nbsp; "campus_location": "F1",&nbsp; "title": "Facilities Operations",&nbsp; "description": "<p>Facilities Operations</p>",&nbsp; "longitude": "-87.321782",&nbsp; "latitude": "39.484916"}, {&nbsp; "id": "14",&nbsp; "category": "2",&nbsp; "campus_location": "E3",&nbsp; "title": "Flame of the Millennium",&nbsp; "description": "<p>Flame of Millennium sculpture</p>",&nbsp; "longitude": "-87.323306",&nbsp; "latitude": "39.481978"}, {&nbsp; "id": "15",&nbsp; "category": "5",&nbsp; "campus_location": "E2",&nbsp; "title": "Hadley Hall",&nbsp; "description": "<p>Hadley Hall</p>",&nbsp; "longitude": "-87.324046",&nbsp; "latitude": "39.482887"}, {&nbsp; "id": "16",&nbsp; "category": "2",&nbsp; "campus_location": "F2",&nbsp; "title": "Hatfield Hall",&nbsp; "description": "<p>Hatfield Hall</p>",&nbsp; "longitude": "-87.322340",&nbsp; "latitude": "39.482146"}, {&nbsp; "id": "17",&nbsp; "category": "6",&nbsp; "campus_location": "C2",&nbsp; "title": "Hulman Memorial Union",&nbsp; "description": "<p>Hulman Memorial Union</p>",&nbsp; "longitude": "-87.32698",&nbsp; "latitude": "39.483574"}, {&nbsp; "id": "18",&nbsp; "category": "1",&nbsp; "campus_location": "E2",&nbsp; "title": "John T. Myers Center for Technological Research with Industry",&nbsp; "description": "<p>John T. Myers Center for Technological Research With Industry</p>",&nbsp; "longitude": "-87.322984",&nbsp; "latitude": "39.484063"}, {&nbsp; "id": "19",&nbsp; "category": "6",&nbsp; "campus_location": "A2",&nbsp; "title": "Lakeside Hall",&nbsp; "description": "<p></p>",&nbsp; "longitude": "-87.330612",&nbsp; "latitude": "39.482804"}, {&nbsp; "id": "20",&nbsp; "category": "6",&nbsp; "campus_location": "F2",&nbsp; "title": "Lambda Chi Alpha Fraternity",&nbsp; "description": "<p>Lambda Chi Alpha</p>",&nbsp; "longitude": "-87.320999",&nbsp; "latitude": "39.48305"}, {&nbsp; "id": "21",&nbsp; "category": "1",&nbsp; "campus_location": "D2",&nbsp; "title": "Logan Library",&nbsp; "description": "<p>Logan Library</p>",&nbsp; "longitude": "-87.324851",&nbsp; "latitude": "39.483408"}, {&nbsp; "id": "22",&nbsp; "category": "6",&nbsp; "campus_location": "C2",&nbsp; "title": "Mees Hall",&nbsp; "description": "<p>Mees Hall</p>",&nbsp; "longitude": "-87.32778",&nbsp; "latitude": "39.483533"}, {&nbsp; "id": "23",&nbsp; "category": "1",&nbsp; "campus_location": "E2",&nbsp; "title": "Moench Hall",&nbsp; "description": "<p>Moench Hall</p>",&nbsp; "longitude": "-87.323695",&nbsp; "latitude": "39.483471"}, {&nbsp; "id": "24",&nbsp; "category": "1",&nbsp; "campus_location": "G4",&nbsp; "title": "Oakley Observatory",&nbsp; "description": "<p>Oakley Observatory</p>",&nbsp; "longitude": "-87.31616",&nbsp; "latitude": "39.483789"}, {&nbsp; "id": "25",&nbsp; "category": "1",&nbsp; "campus_location": "D2",&nbsp; "title": "Olin Hall and Olin Advanced Learning Center",&nbsp; "description": "<p>Olin Hall</p>",&nbsp; "longitude": "-87.324550",&nbsp; "latitude": "39.482796"}, {&nbsp; "id": "26",&nbsp; "category": "6",&nbsp; "campus_location": "C3",&nbsp; "title": "Percopo Hall",&nbsp; "description": "<p>Percopo Hall</p>",&nbsp; "longitude": "-87.328182",&nbsp; "latitude": "39.482121"}, {&nbsp; "id": "27",&nbsp; "category": "6",&nbsp; "campus_location": "G3",&nbsp; "title": "Public Safety Office",&nbsp; "description": "<p>The Office of Public Safety</p>",&nbsp; "longitude": "-87.320377",&nbsp; "latitude": "39.48191"}, {&nbsp; "id": "28",&nbsp; "category": "1",&nbsp; "campus_location": "E2",&nbsp; "title": "Rotz Mechanical Engineering Lab",&nbsp; "description": "<p>Rotz Lab</p>",&nbsp; "longitude": "-87.323247",&nbsp; "latitude": "39.483711"}, {&nbsp; "id": "28",&nbsp; "category": "6",&nbsp; "campus_location": "C2",&nbsp; "title": "Scharpenberg Hall",&nbsp; "description": "<p>Scharpenberg Hall</p>",&nbsp; "longitude": "-87.328139",&nbsp; "latitude": "39.483582"}, {&nbsp; "id": "29",&nbsp; "category": "6",&nbsp; "campus_location": "G2",&nbsp; "title": "Sigma Nu Fraternity",&nbsp; "description": "<p>The Sigma Nu house</p>",&nbsp; "longitude": "-87.31999",&nbsp; "latitude": "39.48374"}, {&nbsp; "id": "30",&nbsp; "category": "6",&nbsp; "campus_location": "E4",&nbsp; "title": "South Campus / Rose-Hulman Ventures",&nbsp; "description": "<p></p>",&nbsp; "longitude": "-87.330623",&nbsp; "latitude": "39.417646"}, {&nbsp; "id": "31",&nbsp; "category": "6",&nbsp; "campus_location": "C3",&nbsp; "title": "Speed Hall",&nbsp; "description": "<p>Speed Hall</p>",&nbsp; "longitude": "-87.326632",&nbsp; "latitude": "39.482121"}, {&nbsp; "id": "32",&nbsp; "category": "3",&nbsp; "campus_location": "C1",&nbsp; "title": "Sports and Recreation Center",&nbsp; "description": "<p></p>",&nbsp; "longitude": "-87.3272",&nbsp; "latitude": "39.484874"}, {&nbsp; "id": "33",&nbsp; "category": "6",&nbsp; "campus_location": "F2",&nbsp; "title": "Triangle Fraternity",&nbsp; "description": "<p>Triangle fraternity</p>",&nbsp; "longitude": "-87.32113",&nbsp; "latitude": "39.483659"}, {&nbsp; "id": "34",&nbsp; "category": "6",&nbsp; "campus_location": "B3",&nbsp; "title": "White Chapel",&nbsp; "description": "<p>The White Chapel</p>",&nbsp; "longitude": "-87.329367",&nbsp; "latitude": "39.482481"}, {&nbsp; "id": "35",&nbsp; "category": "6",&nbsp; "campus_location": "F2",&nbsp; "title": "Women's Fraternity Housing",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.320753",&nbsp; "latitude": "39.482401"}, {&nbsp; "id": "36",&nbsp; "category": "3",&nbsp; "campus_location": "E1",&nbsp; "title": "Intramural Fields",&nbsp; "description": "<p></p>",&nbsp; "longitude": "-87.321267",&nbsp; "latitude": "39.485934"}, {&nbsp; "id": "37",&nbsp; "category": "3",&nbsp; "campus_location": "A3",&nbsp; "title": "James Rendel Soccer Field",&nbsp; "description": "<p></p>",&nbsp; "longitude": "-87.332135",&nbsp; "latitude": "39.480933"}, {&nbsp; "id": "38",&nbsp; "category": "3",&nbsp; "campus_location": "B2",&nbsp; "title": "Art Nehf Field",&nbsp; "description": "<p>Art Nehf Field</p>",&nbsp; "longitude": "-87.330923",&nbsp; "latitude": "39.48022"}, {&nbsp; "id": "39",&nbsp; "category": "3",&nbsp; "campus_location": "B2",&nbsp; "title": "Women's Softball Field",&nbsp; "description": "<p></p>",&nbsp; "longitude": "-87.329904",&nbsp; "latitude": "39.480278"}, {&nbsp; "id": "40",&nbsp; "category": "3",&nbsp; "campus_location": "D1",&nbsp; "title": "Joy Hulbert Tennis Courts",&nbsp; "description": "<p>The Joy Hulbert Outdoor Tennis Courts</p>",&nbsp; "longitude": "-87.323767",&nbsp; "latitude": "39.485595"}, {&nbsp; "id": "41",&nbsp; "category": "6",&nbsp; "campus_location": "B2",&nbsp; "title": "Speed Lake",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.328134",&nbsp; "latitude": "39.482779"}, {&nbsp; "id": "42",&nbsp; "category": "5",&nbsp; "campus_location": "F1",&nbsp; "title": "Recycling Center",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.320098",&nbsp; "latitude": "39.484593"}, {&nbsp; "id": "43",&nbsp; "category": "1",&nbsp; "campus_location": "F3",&nbsp; "title": "Army ROTC",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.321342",&nbsp; "latitude": "39.481992"}, {&nbsp; "id": "44",&nbsp; "category": "2",&nbsp; "campus_location": "&nbsp; ",&nbsp; "title": "Self Made Man",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.326272",&nbsp; "latitude": "39.484481"}, {&nbsp; "id": "P1",&nbsp; "category": "4",&nbsp; "title": "Percopo Parking",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.328756",&nbsp; "latitude": "39.481587"}, {&nbsp; "id": "P2",&nbsp; "category": "4",&nbsp; "title": "Speed Parking",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.327361",&nbsp; "latitude": "39.481694"}, {&nbsp; "id": "P3",&nbsp; "category": "4",&nbsp; "title": "Main Parking",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.326245",&nbsp; "latitude": "39.481446"}, {&nbsp; "id": "P4",&nbsp; "category": "4",&nbsp; "title": "Lakeside Parking",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.330848",&nbsp; "latitude": "39.483284"}, {&nbsp; "id": "P5",&nbsp; "category": "4",&nbsp; "title": "Hatfield Hall Parking",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.321417",&nbsp; "latitude": "39.482398"}, {&nbsp; "id": "P6",&nbsp; "category": "4",&nbsp; "title": "Women's Fraternity Parking",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.320977",&nbsp; "latitude": "39.482315"}, {&nbsp; "id": "P7",&nbsp; "category": "4",&nbsp; "title": "Myers and Facilities Parking",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.322243",&nbsp; "latitude": "39.48417"}, {&nbsp; "id": "P8",&nbsp; "category": "4",&nbsp; "title": "",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.323241",&nbsp; "latitude": "39.484758"}, {&nbsp; "id": "P9",&nbsp; "category": "4",&nbsp; "title": "",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.323617",&nbsp; "latitude": "39.484311"}, {&nbsp; "id": "P10",&nbsp; "category": "4",&nbsp; "title": "",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.325714",&nbsp; "latitude": "39.484584"}, {&nbsp; "id": "P11",&nbsp; "category": "4",&nbsp; "title": "",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.32778",&nbsp; "latitude": "39.484145"}, {&nbsp; "id": "P12",&nbsp; "category": "4",&nbsp; "title": "",&nbsp; "description": "",&nbsp; "image": "",&nbsp; "longitude": "-87.329035",&nbsp; "latitude": "39.4848"}];for (i = 0; i < locations.length; i++) {&nbsp; var marker = new google.maps.Marker({&nbsp; &nbsp; position: new google.maps.LatLng(locations[i].latitude, locations[i].longitude),&nbsp; &nbsp; title: locations[i].title,&nbsp; &nbsp; map: map&nbsp; });&nbsp; gmarkers.push(marker);&nbsp; google.maps.event.addListener(marker, 'click', (function(marker, i) {&nbsp; &nbsp; return function() {&nbsp; &nbsp; &nbsp; if (locations[i].description !== "" || locations[i].title !== "") {&nbsp; &nbsp; &nbsp; &nbsp; infowindow.setContent('<div class="content" id="content-' + locations[i].id +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '" style="max-height:300px; font-size:12px;"><h3>' + locations[i].title + '</h3>' +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '<hr class="grey" />' +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hasImage(locations[i]) +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; locations[i].description) + '</div>';&nbsp; &nbsp; &nbsp; &nbsp; infowindow.open(map, marker);&nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; })(marker, i));}function toggleMarkers() {&nbsp; for (i = 0; i < gmarkers.length; i++) {&nbsp; &nbsp; if (gmarkers[i].getMap() != null) gmarkers[i].setMap(null);&nbsp; &nbsp; else gmarkers[i].setMap(map);&nbsp; }}function hasImage(location) {&nbsp; return '';}html,body,#map {&nbsp; height: 100%;&nbsp; width: 100%;}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script src="http://maps.googleapis.com/maps/api/js"></script><div id="controls">&nbsp; <input type="button" value="Toggle All Markers" onClick="toggleMarkers()" /></div><div id="map"></div>

慕尼黑8549860

根据Google文档,他们说这是最好的方法。首先创建此函数以找出有多少个标记/&nbsp; &nbsp;function setMapOnAll(map1) {&nbsp; &nbsp; for (var i = 0; i < markers.length; i++) {&nbsp; &nbsp; &nbsp; markers[i].setMap(map1);&nbsp; &nbsp; }&nbsp; }接下来创建另一个函数以消除所有这些标记&nbsp;function clearMarker(){setMapOnAll(null);}然后创建此最终功能以在调用此功能时擦除所有标记。&nbsp;function delateMarkers(){clearMarker()markers = []//console.log(markers) This is just if you want to}希望能帮助好运

慕盖茨4494581

你可以试试这个&nbsp; &nbsp; markers[markers.length-1].setMap(null);希望它能工作。
打开App,查看更多内容
随时随地看视频慕课网APP