UNPKG

react-mapfilter

Version:

These components are designed for viewing data in Mapeo. They share a common interface:

58 lines (50 loc) 1.35 kB
const fc = require('./example_fc.json') const fs = require('fs') const path = require('path') const LoremIpsum = require('lorem-ipsum').LoremIpsum const lorem = new LoremIpsum({ sentencesPerParagraph: { max: 3, min: 1 }, wordsPerSentence: { max: 9, min: 4 } }) const observations = fc.features.map(f => { const observation = { id: f.id, lon: f.geometry && f.geometry.coordinates[0], lat: f.geometry && f.geometry.coordinates[1], created_at: f.properties.start, attachments: Array(randomInt(5)) .fill() .map(() => ({ id: randomId() + '.jpg', type: 'image/jpg' })), tags: {} } const omit = ['id', 'picture', 'pictures'] for (const key in f.properties) { if (omit.includes(key)) continue if (Array.isArray(f.properties[key])) continue observation.tags[key] = f.properties[key] } observation.tags.notes = lorem.generateParagraphs(1) if (f.properties.happening && f.properties.happening[0]) { observation.tags.categoryId = f.properties.happening[0] } return observation }) function randomInt(max) { return Math.ceil(Math.random() * max) } function randomId() { return Math.ceil(Math.random() * Math.pow(2, 32)).toString(16) } fs.writeFileSync( path.join(__dirname, '/observations.json'), JSON.stringify(observations, null, 2) )