Карта Google с маркером кластера - добавить кнопку-переключатель (КМЛ) не работает
У меня есть базовая карта, использующая функцию маркерного кластера, и я хотел бы добавить еще одну карту с переключателями (слой KML).
После нескольких часов попыток и изменения кода здесь и там все еще не удается заставить его работать. т. е. базовая карта работает, кнопка переключения слоя при нажатии не работает.
Я приложил ниже свои коды, очень сожалею о беспорядке форматирования, так как я изучаю коды и пробовал много проб и ошибок.
Мою проектную работу можно найти по этому адресу: https://360.yo.fr/mapcluster/koh
Может ли кто-нибудь просветить меня, что пошло не так с моим кодом?
Огромное спасибо.
Что я уже пробовал:
<pre>//----------------google.maps.event.addDomListener(window, 'load', speedTest.init); var map = null; var geocoder = new google.maps.Geocoder(); var layers=[]; layers[0] = new google.maps.KmlLayer("https://www.google.com/maps/d/kml?mid=11L4VsN2gl3JG5ORhce3-L1-M5QkZWIGR", {preserveViewport: true});layers[1] = new google.maps.KmlLayer("https://www.google.com/maps/d/kml?mid=1EafZzDb4pL4J52bnrjjOjMOVmwDSPn9u", {preserveViewport: true}); function toggleLayers(i) { if(layers[i].getMap()==null){ layers[i].setMap(map); } else { layers[i].setMap(null); } } function geocodePosition(pos) { geocoder.geocode({ latLng: pos }, function(responses) { if (responses && responses.length > 0) { updateMarkerAddress(responses[0].formatted_address); } else { updateMarkerAddress('Cannot determine address at this location.'); } }); } function updateMarkerStatus(str) { document.getElementById('markerStatus').innerHTML = str; } function updateMarkerPosition(latLng) { document.getElementById('info').innerHTML = [ latLng.lat(), latLng.lng() ].join(', '); } function updateMarkerAddress(str) { document.getElementById('address').innerHTML = str; } //----------------------------var map;function initialize() { var latLng = new google.maps.LatLng(1.525420, 103.712070); var markerPosition = new google.maps.LatLng(1.525420, 103.712070); var image = 'https://360.yo.fr/mapcluster/images/marker1.png'; //custom marker path map = new google.maps.Map(document.getElementById('map'), { zoom: 12, center: latLng, icon: image, mapTypeId: google.maps.MapTypeId.TERRAIN }); var marker = new google.maps.Marker({ position: markerPosition, title: 'Point A', map: map, icon: image,// customer marker draggable: true }); // Update current position info. updateMarkerPosition(latLng); geocodePosition(latLng); // Add dragging event listeners. google.maps.event.addListener(marker, 'dragstart', function() { updateMarkerAddress('DRAGGING...'); }); google.maps.event.addListener(marker, 'drag', function() { updateMarkerStatus('DRAGGING...'); updateMarkerPosition(marker.getPosition()); }); google.maps.event.addListener(marker, 'dragend', function() { updateMarkerStatus('DRAG & DROP THE MARKER ONTO YOUR DESIRED PROPERTY'); geocodePosition(marker.getPosition()); }); // google.maps.event.addDomListener(window, 'load', initialize); google.maps.event.addDomListener(window, 'load', speedTest.init);