var map = L.map( 'mapid', { center: [51.505, -0.09], // Default to U.S.A minZoom: 2, zoom: 0 }); L.tileLayer( 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© OpenStreetMap | COVID-19 PubSeq', subdomains: ['a','b','c'] }).addTo(map); function drawMap(){ var mymap = map; fetch(scriptRoot + "api/getCountByGPS") .then(response => { console.log(response) return response.json(); }) .then(data => { updateMapMarkers(data); }); document.getElementById("map_view").classList.remove("invisible"); map.invalidateSize(); } /* * These functions updates the map with markers */ seqMarker = L.Marker.extend({ options: { seqMarkerLocation: "Loc", contributors: "countContrib", sequences: "countSeq" } }); function updateMapMarkers(data) { let markers = L.markerClusterGroup({ iconCreateFunction: function (cluster) { var theseMarkers = cluster.getAllChildMarkers(); //// -- this is the array of each marker in the cluster. sumCount = 0; for (var i = 0; i < theseMarkers.length; i++) { // console.log(theseMarkers[i]); sumCount += theseMarkers[i].options.sequences; } var digits = (sumCount + '').length; return L.divIcon({ html: sumCount, className: 'my-custom-icon my-custom-icon-'+digits, }); }, }); for (let i = 0; i < data.length; i++) { let {"count": fastaCount, GPS, LocationLabel: label } = data[i]; let countSeq = Number(fastaCount); let coordinates = GPS.split(" "); if (!(coordinates == null)) { let lat, lon; [lon, lat] = coordinates.map(parseFloat); let point = L.point() marker = new seqMarker([lat, lon],markerOptions={title: fastaCount+" sequences",sequences: countSeq}); marker.bindPopup("" + label + "
" + "SARS-CoV-2
sequences: " +fastaCount); markers.addLayer(marker); } } map.addLayer(markers); }