Генератор фейковых точек на карте

5 апреля, 2017
1 минута чтения

На хакатоне потребовалось генерировать огромное количество случайных точек на карте. Для этого написал следующий скрипт использующий библиотеку proj4:

Листинг скрипта

const proj4 = require('proj4');
const fs = require('fs');

var source = proj4.Proj('EPSG:4326');
var dest = proj4.Proj('EPSG:3785');  

// transforming point coordinates
var p1 = proj4.toPoint([55.907002, 37.369767]); // top left Moscow
var d1 = proj4.transform(source, dest, p1);      

var p2 = proj4.toPoint([55.563752, 37.865525]); // bottom right Moscow
var d2 = proj4.transform(source, dest, p2);

var outArray = [];
const step = 500; // meters

for (let i = Number(d2.x); i <= d1.x; i += step) {
  for (let j = Number(d1.y); j <= d2.y; j += step) {
    const weight = Number(Math.random().toFixed(2));
    const outObj = {};

    // Less points
    if (Math.random() > .2) {
      continue;
    }

    outObj.weight = weight;
    outObj.geo = proj4.transform(dest, source, [i, j]);
    outArray.push(outObj);
  }
}

fs.writeFile("./test.json", JSON.stringify(outArray), (err) => {
  if (err) {
    return console.log(err);
  }
  console.log("The file was saved!");
});

Денис Сергеевич Басковский

Философ, изобретатель и поэт.

Добавить комментарий Отменить ответ

numbers
Предыдущая статья

Возврат уникальных значений из списка на JavaScript

Gulp Webpack
Следующая статья

Пример внедрения Webpack в Gulp

Exit mobile version