簡體   English   中英

無法在 Google API 3 中隱藏二維標記數組

[英]unable to hide two dimensional marker array in Google API 3

  My marker  is at the end   

我無法使用 setMap 隱藏標記,控制台出錯 請幫忙!

提前致謝

 markers[i][j].setMap(null); markers.setMap(null); var markers = [ ['office', 'Albania', 42.158410, 19.940845], ['production plant', 'Albania', 40.198905, 20.039722], ['R&D service', 'Albania', 41.090835, 19.545337], ['office', 'Algeria', 28.164666, 3.160335] ]; `Uncaught TypeError: markers[i][j].setMap`

您無法根據數組中的元素隱藏標記。 他們沒有 .setMap 方法。 標記需要是google.maps.Marker對象。 創建標記時,將對其的引用保留在另一個數組中(比如“gmarkers”),然后使用它來隱藏/顯示它們。

概念證明小提琴(使用您的數據)

 var markers = [ ['office', 'Albania', 42.158410, 19.940845], ['production plant', 'Albania', 40.198905, 20.039722], ['R&D service', 'Albania', 41.090835, 19.545337], ['office', 'Algeria', 28.164666, 3.160335] ]; var map; var gmarkers = []; function toggleMarker() { var markerId = parseInt(document.getElementById('markerid').value); if (gmarkers[markerId].getMap() == null) { gmarkers[markerId].setMap(map); } else { gmarkers[markerId].setMap(null); } } function initialize() { map = new google.maps.Map(document.getElementById('map'), { zoom: 10, center: new google.maps.LatLng(-33.92, 151.25), mapTypeId: google.maps.MapTypeId.ROADMAP }); var infowindow = new google.maps.InfoWindow(); var marker, i; var bounds = new google.maps.LatLngBounds(); for (i = 0; i < markers.length; i++) { marker = new google.maps.Marker({ position: new google.maps.LatLng(markers[i][2], markers[i][3]), map: map }); bounds.extend(marker.getPosition()); google.maps.event.addListener(marker, 'click', (function(marker, i) { return function() { infowindow.setContent(markers[i][0]); infowindow.open(map, marker); } })(marker, i)); gmarkers.push(marker); } map.fitBounds(bounds); } google.maps.event.addDomListener(window, 'load', initialize);
 html, body, #map { height: 100%; margin: 0px; padding: 0px }
 <script src="https://maps.googleapis.com/maps/api/js"></script> <input type="text" id="markerid" value="2" /> <input type="button" onclick="toggleMarker()" value="toggle" /> <div id="map"></div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM