UNPKG

earthjs

Version:

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

61 lines (57 loc) 1.86 kB
export default urlDots => { /*eslint no-console: 0 */ const _ = {dataDots: null}; function init() { let dots; const o = this._.options; o.showDots = true; this.canvasThreejs.onDraw({ dotsCThreejs(context, path) { if (o.showDots) { if (!dots) { dots = _.dots.map(d => d.circle); } const _g = _.dataDots.geometry || {}; context.beginPath(); path({type: 'GeometryCollection', geometries: dots}); context.lineWidth = _g.lineWidth || 0.2; context.fillStyle = _g.fillStyle || 'rgba(100,0,0,.4)'; context.strokeStyle = _g.strokeStyle || 'rgba(100,0,0,.6)'; context.fill(); context.stroke(); } } }); } function initData() { const geoCircle = d3.geoCircle(); const _g = _.dataDots.geometry || {}; const _r = _g.radius || 0.5; _.dots = _.dataDots.features.map(function(d) { const coordinates = d.geometry.coordinates; const properties = d.properties; const r = d.geometry.radius || _r; const circle = geoCircle.center(coordinates).radius(r)(); return {properties, coordinates, circle}; }); } return { name: 'dotsCThreejs', urls: urlDots && [urlDots], onReady(err, dots) { _.me.data(dots); }, onInit(me) { _.me = me; init.call(this); }, data(data) { if (data) { _.dataDots = data; initData(); } else { return _.dataDots; } }, } }