turf-tin
Advanced tools
Comparing version 0.1.0 to 1.0.0
51
index.js
//http://en.wikipedia.org/wiki/Delaunay_triangulation | ||
//https://github.com/ironwallaby/delaunay | ||
var polygon = require('turf-polygon') | ||
var nearest = require('turf-nearest') | ||
var point = require('turf-point') | ||
var polygon = require('turf-polygon'); | ||
var nearest = require('turf-nearest'); | ||
var point = require('turf-point'); | ||
module.exports = function(points, z, done){ | ||
module.exports = function(points, z){ | ||
//break down points | ||
var vertices = [] | ||
var vertices = []; | ||
points.features.forEach(function(p){ | ||
vertices.push({x:p.geometry.coordinates[0], y:p.geometry.coordinates[1]}) | ||
vertices.push({x:p.geometry.coordinates[0], y:p.geometry.coordinates[1]}); | ||
}) | ||
var triangulated = triangulate(vertices) | ||
var triangulated = triangulate(vertices); | ||
var triangles = { | ||
type: 'FeatureCollection', | ||
features: [] | ||
} | ||
}; | ||
done = done || function () {}; | ||
triangulated.forEach(function(triangle){ | ||
var coords = [[[triangle.a.x, triangle.a.y], [triangle.b.x, triangle.b.y], [triangle.c.x, triangle.c.y]]] | ||
var poly = polygon(coords, {a: null, b: null, c: null}) | ||
var coords = [[[triangle.a.x, triangle.a.y], [triangle.b.x, triangle.b.y], [triangle.c.x, triangle.c.y]]]; | ||
var poly = polygon(coords, {a: null, b: null, c: null}); | ||
triangles.features.push(poly) | ||
}) | ||
triangles.features.push(poly); | ||
}); | ||
if(z){ | ||
// add values from vertices | ||
triangles.features.forEach(function(tri){ | ||
var coordinateNumber = 1 | ||
var coordinateNumber = 1; | ||
tri.geometry.coordinates[0].forEach(function(c){ | ||
@@ -36,20 +34,19 @@ var closest = nearest(point(c[0], c[1]), points); | ||
if(coordinateNumber === 1){ | ||
tri.properties.a = closest.properties[z] | ||
tri.properties.a = closest.properties[z]; | ||
} | ||
else if(coordinateNumber === 2){ | ||
tri.properties.b = closest.properties[z] | ||
tri.properties.b = closest.properties[z]; | ||
} | ||
else if(coordinateNumber === 3){ | ||
tri.properties.c = closest.properties[z] | ||
tri.properties.c = closest.properties[z]; | ||
} | ||
coordinateNumber++ | ||
}) | ||
}) | ||
coordinateNumber++; | ||
}); | ||
}); | ||
} | ||
triangles.features.forEach(function(tri){ | ||
tri = correctRings(tri) | ||
}) | ||
tri = correctRings(tri); | ||
}); | ||
done(null, triangles) | ||
return triangles; | ||
@@ -60,8 +57,8 @@ } | ||
poly.geometry.coordinates.forEach(function(ring){ | ||
var isWrapped = ring[0] === ring.slice(-1)[0] | ||
var isWrapped = ring[0] === ring.slice(-1)[0]; | ||
if(!isWrapped){ | ||
ring.push(ring[0]) | ||
ring.push(ring[0]); | ||
} | ||
}) | ||
return poly | ||
return poly; | ||
} | ||
@@ -68,0 +65,0 @@ |
{ | ||
"name": "turf-tin", | ||
"version": "0.1.0", | ||
"version": "1.0.0", | ||
"description": "turf tin module", | ||
@@ -25,2 +25,3 @@ "main": "index.js", | ||
"devDependencies": { | ||
"benchmark": "^1.0.0", | ||
"tape": "^2.13.4" | ||
@@ -27,0 +28,0 @@ }, |
18
test.js
@@ -1,15 +0,15 @@ | ||
var test = require('tape') | ||
var fs = require('fs') | ||
var tin = require('./') | ||
var test = require('tape'); | ||
var fs = require('fs'); | ||
var tin = require('./'); | ||
test('tin', function(t){ | ||
var points = JSON.parse(fs.readFileSync(__dirname+'/geojson/Points.geojson')) | ||
var points = JSON.parse(fs.readFileSync(__dirname+'/geojson/Points.geojson')); | ||
var tinned = tin(points, 'elevation') | ||
var tinned = tin(points, 'elevation'); | ||
t.equal(tinned.features[0].geometry.type, 'Polygon') | ||
t.equal(tinned.features.length, 24) | ||
t.equal(tinned.features[0].geometry.type, 'Polygon'); | ||
t.equal(tinned.features.length, 24); | ||
fs.writeFileSync(__dirname+'/geojson/Tin.geojson', JSON.stringify(tinned)) | ||
t.end() | ||
fs.writeFileSync(__dirname+'/geojson/Tin.geojson', JSON.stringify(tinned)); | ||
t.end(); | ||
}); |
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
18476
10
238
0
2
2