diff options
| author | Adam Harvey <adam@ahprojects.com> | 2018-12-23 01:37:03 +0100 |
|---|---|---|
| committer | Adam Harvey <adam@ahprojects.com> | 2018-12-23 01:37:03 +0100 |
| commit | 4452e02e8b04f3476273574a875bb60cfbb4568b (patch) | |
| tree | 3ffa44f9621b736250a8b94da14a187dc785c2fe /scraper/reports/map.js | |
| parent | 2a65f7a157bd4bace970cef73529867b0e0a374d (diff) | |
| parent | 5340bee951c18910fd764241945f1f136b5a22b4 (diff) | |
.
Diffstat (limited to 'scraper/reports/map.js')
| -rw-r--r-- | scraper/reports/map.js | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/scraper/reports/map.js b/scraper/reports/map.js new file mode 100644 index 00000000..58984c8e --- /dev/null +++ b/scraper/reports/map.js @@ -0,0 +1,92 @@ +function read_json(selector) { + try { + return JSON.parse(document.querySelector('#' + selector).innerText) + } catch(e) { + console.log("json error!") + return [] + } +} + +let map_mode = false +if (window.location.hash.indexOf('map') !== -1) { + document.body.parentNode.classList.add('map') + map_mode = true +} + +let map = L.map('mapid').setView([25, 0], 2); +L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}', { + attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="https://www.mapbox.com/">Mapbox</a>', + maxZoom: 18, + id: 'mapbox.dark', + style: 'mapbox://styles/mapbox/dark-v9', + accessToken: 'pk.eyJ1IjoiZmFuc2FsY3kiLCJhIjoiY2pvN3I1czJwMHF5NDNrbWRoMWpteHlrdCJ9.kMpM5syQUhVjKkn1iVx9fg' +}).addTo(map); +let points = read_json('citations') +let address = read_json('address') +let source = [0,0] +if (address) { + source = address.slice(3,5).map(n => parseFloat(n)) + console.log(address, source) +} + +var redDot = L.icon({ + iconUrl: '../reddot.png', + iconSize: [17, 17], // size of the icon + iconAnchor: [8, 8], // point of the icon which will correspond to marker's location + popupAnchor: [0, -5] // point from which the popup should open relative to the iconAnchor +}); + +points.forEach(point => { + /* + [ + "Face Alignment by Local Deep Descriptor Regression", + "Rutgers University", + [ + "Rutgers University", + "40.47913175", + "-74.431688684404", + "Rutgers Cook Campus - North, Biel Road, New Brunswick, Middlesex County, New Jersey, 08901, USA" + ] + ] + */ + + const latlng = point.slice(5,7).map(n => parseFloat(n)) + // console.log(point) + if (!latlng.length || isNaN(latlng[0]) || isNaN(latlng[1])) return + var marker = L.marker(latlng, { icon: redDot }).addTo(map); + marker.bindPopup([ + "<b>", point[0], "</b>", + "<br>", + point[1], + ].join('')) + // var arcStyle = { + // color: 'rgb(245, 246, 150)', + // fillColor: 'rgb(245, 246, 150)', + // opacity: 0.8, + // weight: '1', + // vertices: 100, + // } + // L.Polyline.Arc(source, latlng, arcStyle).addTo(map); + // console.log(latlng) + var pathStyle = { + color: 'rgb(245, 246, 150)', + fillColor: 'rgb(245, 246, 150)', + opacity: 0.8, + weight: '1', + } + L.bezier({ + path: [ + [ + {lat: source[0], lng: source[1]}, + {lat: latlng[0], lng: latlng[1]}, + ], + ] + }, pathStyle).addTo(map) +}) + +var marker = L.marker(source, { icon: redDot }).addTo(map); +marker.bindPopup([ + "<b>", document.querySelector('h2').innerText, "</b>", + '<br/>', + address[0] +].join('')) |
