geojson.lib.routeboxer
Version:
The RouteBoxer class generates an Array of GeoJSON.Polygon Objects that are guaranteed to cover every point within a specified distance of a path.
67 lines (54 loc) • 1.41 kB
JavaScript
var RouteBoxer = require('../lib/geojson.lib.routeboxer');
var exec = require('child_process').exec;
var fs = require('fs');
var template = fs.readFileSync(__dirname + '/GeoJSONViewer.tmpl').toString();
var route1 = require('./route.json');
var route2 = {
"type": "LineString",
"coordinates": [
[],
[],
[],
[],
[],
[],
[]
]};
var route3 = {
"type": "LineString",
"coordinates": [
[-3.62, 1.96],
[],
[],
[-2.84, -3.36],
[-4.09, 1.09]
]};
var path = route2;
var range = 20;
var boxer = new RouteBoxer();
var boxes = boxer.box(path, range);
boxes.unshift(boxer.getIntersectingCells());
boxes.unshift(boxer.getGrid());
boxes.push(path);
boxes.push(boxer.getIntersectionPoints());
generateHtml(boxes);
function generateHtml (geojson) {
var pageCode = template.replace('###LINES###', JSON.stringify(geojson));
fs.writeFileSync(__dirname + '/GeoJSONViewer.html', pageCode);
openBrowser();
}
function openBrowser () {
var opener;
switch (process.platform) {
case 'linux':
opener = 'xdg-open';
break;
case 'darwin':
opener = 'open';
break;
case 'win32':
opener = 'start ""';
break;
}
return exec(opener + ' "file://' + __dirname + '/GeoJSONViewer.html"');
}