UNPKG

earthjs

Version:

D3 Earth JS using SVG, Canvas & THREE js, build with some plugins.

59 lines (57 loc) 2.43 kB
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link type="text/css" rel="stylesheet" href="../css/earthjs.css"> <script type='text/javascript' src="../js/d3.min.js"></script> <script type='text/javascript' src="../js/topojson.min.js"></script> <script type='text/javascript' src='../js/earthjs.js'></script> </head> <body> <div class="set-options"></div> <div class="set-options2"></div> <svg id="earth-js" class="ea-layer ea-1"></svg> <canvas class="ej-canvas ea-layer ea-2"></canvas> <canvas class="ej-canvas ea-layer ea-3"></canvas> <svg class="ej-svg noclicks ea-layer ea-4" width="700" height="500"></svg> <script> const g = earthjs({padding:50}); g.register(earthjs.plugins.commonPlugins('../d/world-110m.json','../d/world-110m-country-names.tsv')); g.register(earthjs.plugins.hoverCanvas()); g.register(earthjs.plugins.fauxGlobeSvg()); g.fauxGlobeSvg.selectAll('.ea-4'); g.commonPlugins.addChecker(':Shading:showGlobeShading'.split(':')) g.commonPlugins.addChecker(':Hilight:showGlobeHilight'.split(':')) g.register(earthjs.plugins.barSvg('../data/bars.json')); g.register(earthjs.plugins.dotsSvg()); g.barSvg.valuePath('properties.mag'); g.dotsSvg.radiusPath('properties.mag'); g.barSvg.ready = function(err, data) { g.barSvg.data(data); g.dotsSvg.data(data); } g.barSvg.selectAll('.ea-4'); g.dotsSvg.selectAll('.ea-1'); g.commonPlugins.addChecker(':Bars:showBars'.split(':')) g.commonPlugins.addChecker(':Dots:showDots'.split(':')) g.register(earthjs.plugins.dotsCanvas('../d/geonames_cities_100k.json')); // g.dotsCanvas.radiusPath('properties.population'); g.dotsCanvas.drawTo([1]); g.dotsCanvas.ready = function(err, data) { const features = data.features.filter(d => d.properties.population>=3500000); const dataMssg = { features, geometry: { radius: 1, lineWidth: 0.5, fillStyle: 'rgba(241, 239, 3,.6)', strokeStyle: 'rgba(241, 100, 0,.6)' } } g.dotsCanvas.data(dataMssg); } g._.options.showGlobeHilight = false; g.ready(() => g.create()); </script> </body> </html>