google maps click (trigger)

by Thomas Pitera

HTML

<div id="map"></div>
<button id="btn" onclick="clickLatLng() ">simulate click</button>
<script>
  var map, infoWindow, marker, clickedLocation;
  var src1 = 'https://raw.githubusercontent.com/piterat/kmlLink/642e292853adc55d34f4105d94cb024fac104db4/NEWYORK_SNOWLOADS.kml';
  function initMap() {
    map = new google.maps.Map(document.getElementById('map'), {
      center: {
        lat: 42.8,
        lng: -75.19
      },
      zoom: 5
    });
    NewYorkSnowLoads = new google.maps.KmlLayer(src1,{suppressInfoWindows: true,preserveViewport: true});
  	NewYorkSnowLoads.setMap(map);
    infoWindow = new google.maps.InfoWindow({
      content: ""
    });

    google.maps.event.addListener(NewYorkSnowLoads, "click", function(event) {
      console.log("mapClick", event)
      if (marker != null)
		  {
      			marker.setMap(null);
      }    		
      var latlng = event.latLng.lat() + "<br>" + event.latLng.lng();
      var clickedLocation = event.latLng;
      infoWindow.setContent(latlng);
      infoWindow.open(map);
      infoWindow.setPosition(event.latLng);
      var snowloadtext = event.featureData.description;
      // Puts down marker at Clicked Location
		  marker = new google.maps.Marker({map: map,position: clickedLocation,draggable: false});	
    })

  }

  function clickLatLng() {
    console.log("clickLatLng...");
    var e = {
      latLng: new google.maps.LatLng((42.55), -76.17),
      featureData: new google.maps.featureData()
    };
    google.maps.event.trigger(NewYorkSnowLoads, 'click', e);
  }

</script>
<script src="https://maps.googleapis.com/maps/api/js?callback=initMap" async defer></script>

CSS

html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}

#map {
  height: 100%;
}

#btn {
  position: absolute;
  width: auto;
  height: 35px;
  background-color: red;
  left: 140px;
  top: 15px;
  cursor: pointer;
}