mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-24 05:06:02 +08:00
523 lines
11 KiB
TypeScript
523 lines
11 KiB
TypeScript
/// <reference path="turf.d.ts"/>
|
|
|
|
///////////////////////////////////////////
|
|
// Tests data initialisation
|
|
///////////////////////////////////////////
|
|
|
|
var point1 = {
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Point",
|
|
"coordinates": [-75.343, 39.984]
|
|
}
|
|
};
|
|
|
|
var point2 = {
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Point",
|
|
"coordinates": [-75.534, 39.123]
|
|
}
|
|
};
|
|
|
|
var line = {
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "LineString",
|
|
"coordinates": [
|
|
[-77.031669, 38.878605],
|
|
[-77.029609, 38.881946],
|
|
[-77.020339, 38.884084],
|
|
[-77.025661, 38.885821],
|
|
[-77.021884, 38.889563],
|
|
[-77.019824, 38.892368]
|
|
]
|
|
}
|
|
};
|
|
|
|
var polygons = {
|
|
"type": "FeatureCollection",
|
|
"features": [
|
|
{
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Polygon",
|
|
"coordinates": [[
|
|
[-67.031021, 10.458102],
|
|
[-67.031021, 10.53372],
|
|
[-66.929397, 10.53372],
|
|
[-66.929397, 10.458102],
|
|
[-67.031021, 10.458102]
|
|
]]
|
|
}
|
|
}, {
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Polygon",
|
|
"coordinates": [[
|
|
[-66.919784, 10.397325],
|
|
[-66.919784, 10.513467],
|
|
[-66.805114, 10.513467],
|
|
[-66.805114, 10.397325],
|
|
[-66.919784, 10.397325]
|
|
]]
|
|
}
|
|
}
|
|
]
|
|
};
|
|
|
|
var polygon1 = {
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Polygon",
|
|
"coordinates": [[
|
|
[105.818939,21.004714],
|
|
[105.818939,21.061754],
|
|
[105.890007,21.061754],
|
|
[105.890007,21.004714],
|
|
[105.818939,21.004714]
|
|
]]
|
|
}
|
|
};
|
|
|
|
var polygon2 = {
|
|
"type": "Feature",
|
|
"properties": {
|
|
"fill": "#00f"
|
|
},
|
|
"geometry": {
|
|
"type": "Polygon",
|
|
"coordinates": [[
|
|
[-122.520217, 45.535693],
|
|
[-122.64038, 45.553967],
|
|
[-122.720031, 45.526554],
|
|
[-122.669906, 45.507309],
|
|
[-122.723464, 45.446643],
|
|
[-122.532577, 45.408574],
|
|
[-122.487258, 45.477466],
|
|
[-122.520217, 45.535693]
|
|
]]
|
|
}
|
|
}
|
|
|
|
var features = {
|
|
"type": "FeatureCollection",
|
|
"features": [
|
|
{
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Point",
|
|
"coordinates": [-97.522259, 35.4691]
|
|
}
|
|
}, {
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Point",
|
|
"coordinates": [-97.502754, 35.463455]
|
|
}
|
|
}, {
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Point",
|
|
"coordinates": [-97.508269, 35.463245]
|
|
}
|
|
}, {
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Point",
|
|
"coordinates": [-97.516809, 35.465779]
|
|
}
|
|
}, {
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Point",
|
|
"coordinates": [-97.515372, 35.467072]
|
|
}
|
|
}, {
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Point",
|
|
"coordinates": [-97.509363, 35.463053]
|
|
}
|
|
}, {
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Point",
|
|
"coordinates": [-97.511123, 35.466601]
|
|
}
|
|
}, {
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Point",
|
|
"coordinates": [-97.518547, 35.469327]
|
|
}
|
|
}, {
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Point",
|
|
"coordinates": [-97.519706, 35.469659]
|
|
}
|
|
}, {
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Point",
|
|
"coordinates": [-97.517839, 35.466998]
|
|
}
|
|
}, {
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Point",
|
|
"coordinates": [-97.508678, 35.464942]
|
|
}
|
|
}, {
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {
|
|
"type": "Point",
|
|
"coordinates": [-97.514914, 35.463453]
|
|
}
|
|
}
|
|
]
|
|
};
|
|
|
|
var triangle = {
|
|
"type": "Feature",
|
|
"properties": {
|
|
"a": 11,
|
|
"b": 122,
|
|
"c": 44
|
|
},
|
|
"geometry": {
|
|
"type": "Polygon",
|
|
"coordinates": [[
|
|
[-75.1221, 39.57],
|
|
[-75.58, 39.18],
|
|
[-75.97, 39.86],
|
|
[-75.1221, 39.57]
|
|
]]
|
|
}
|
|
};
|
|
|
|
var aggregations = [
|
|
{
|
|
aggregation: 'sum',
|
|
inField: 'population',
|
|
outField: 'pop_sum'
|
|
},
|
|
{
|
|
aggregation: 'average',
|
|
inField: 'population',
|
|
outField: 'pop_avg'
|
|
},
|
|
{
|
|
aggregation: 'median',
|
|
inField: 'population',
|
|
outField: 'pop_median'
|
|
},
|
|
{
|
|
aggregation: 'min',
|
|
inField: 'population',
|
|
outField: 'pop_min'
|
|
},
|
|
{
|
|
aggregation: 'max',
|
|
inField: 'population',
|
|
outField: 'pop_max'
|
|
},
|
|
{
|
|
aggregation: 'deviation',
|
|
inField: 'population',
|
|
outField: 'pop_deviation'
|
|
},
|
|
{
|
|
aggregation: 'variance',
|
|
inField: 'population',
|
|
outField: 'pop_variance'
|
|
},
|
|
{
|
|
aggregation: 'count',
|
|
inField: '',
|
|
outField: 'point_count'
|
|
}
|
|
];
|
|
|
|
///////////////////////////////////////////
|
|
// Tests Aggregation
|
|
///////////////////////////////////////////
|
|
|
|
// -- Test aggregate --
|
|
var aggregated = turf.aggregate(polygons, points, aggregations);
|
|
|
|
// -- Test average --
|
|
var averaged = turf.average(polygons, points, 'population', 'pop_avg');
|
|
|
|
// -- Test count --
|
|
var counted = turf.count(polygons, points, 'pt_count');
|
|
|
|
// -- Test deviation --
|
|
var deviated = turf.deviation(polygons, points, 'population', 'pop_deviation');
|
|
|
|
// -- Test max --
|
|
var aggregated = turf.max(polygons, points, 'population', 'max');
|
|
|
|
// -- Test median --
|
|
var medians = turf.median(polygons, points, 'population', 'median');
|
|
|
|
// -- Test min --
|
|
var minimums = turf.min(polygons, points, 'population', 'min');
|
|
|
|
// -- Test sum --
|
|
var summed = turf.sum(polygons, points, 'population', 'sum');
|
|
|
|
// -- Test variance --
|
|
var varianced = turf.variance(polygons, points, 'population', 'variance');
|
|
|
|
///////////////////////////////////////////
|
|
// Tests Measurement
|
|
///////////////////////////////////////////
|
|
|
|
// -- Test along --
|
|
var along = turf.along(line, 1, 'miles');
|
|
|
|
// -- Test area --
|
|
var area = turf.area(polygons);
|
|
|
|
// -- Test bboxPolygon --
|
|
var bbox = [0, 0, 10, 10];
|
|
var poly = turf.bboxPolygon(bbox);
|
|
|
|
// -- Test bearing --
|
|
var bearing = turf.bearing(point1, point2);
|
|
|
|
// -- Test center
|
|
var centerPt = turf.center(features);
|
|
|
|
// -- Test centroid --
|
|
var centroidPt = turf.centroid(polygon1);
|
|
|
|
// -- Test destination --
|
|
var distance = 50;
|
|
var bearing = 90;
|
|
var units = 'miles';
|
|
var destination = turf.destination(point1, distance, bearing, units);
|
|
|
|
// -- Test distance --
|
|
var units = "miles";
|
|
var distance = turf.distance(point1, point2, units);
|
|
|
|
// -- Test envelope --
|
|
var enveloped = turf.envelope(polygons);
|
|
|
|
// -- Test extent --
|
|
var bbox = turf.extent(polygons);
|
|
|
|
// -- Test lineDistance
|
|
var length = turf.lineDistance(line, 'miles');
|
|
|
|
// -- Test midpoint --
|
|
var midpointed = turf.midpoint(point1, point2);
|
|
|
|
// -- Test pointOnSurface --
|
|
var pointOnPolygon = turf.pointOnSurface(polygon1);
|
|
|
|
// -- Test size --
|
|
var resized = turf.size(bbox, 2);
|
|
|
|
// -- Test square --
|
|
var squared = turf.square(bbox);
|
|
|
|
///////////////////////////////////////////
|
|
// Tests Transformation
|
|
///////////////////////////////////////////
|
|
|
|
// -- Test bezier --
|
|
var curved = turf.bezier(line);
|
|
|
|
// -- Test buffer --
|
|
var buffered = turf.buffer(point1, 500, units);
|
|
|
|
// -- Test concave --
|
|
var hull = turf.concave(features, 1, 'miles');
|
|
|
|
// -- Test convex --
|
|
var hull = turf.convex(features);
|
|
|
|
// -- Test difference --
|
|
var differenced = turf.difference(polygon1, polygon2);
|
|
|
|
// -- Test intersect --
|
|
var intersection = turf.intersect(polygon1, polygon2);
|
|
|
|
// -- Test merge --
|
|
var merged = turf.merge(polygons);
|
|
|
|
// -- Test simplify --
|
|
var tolerance = 0.01;
|
|
var simplified = turf.simplify(polygon1, tolerance, false);
|
|
|
|
// -- Test union --
|
|
var union = turf.union(polygon1, polygon2);
|
|
|
|
///////////////////////////////////////////
|
|
// Tests Misc
|
|
///////////////////////////////////////////
|
|
|
|
// -- Test combine --
|
|
var combined = turf.combine(features);
|
|
|
|
// -- Test explode --
|
|
var points = turf.explode(polygon1);
|
|
|
|
// -- Test flip --
|
|
var flipedPoint = turf.flip(point1);
|
|
|
|
// -- Test kinks --
|
|
var kinks = turf.kinks(polygon1);
|
|
|
|
// -- Test lineSlice --
|
|
var sliced = turf.lineSlice(point1, point2, line);
|
|
|
|
// -- Test pointOnLine --
|
|
var snapped = turf.pointOnLine(line, point1);
|
|
|
|
///////////////////////////////////////////
|
|
// Tests Helper
|
|
///////////////////////////////////////////
|
|
|
|
// -- Test featurecollection --
|
|
var fc = turf.featurecollection([point1, point2]);
|
|
|
|
// -- Test linestring --
|
|
var linestring1 = turf.linestring([
|
|
[-21.964416, 64.148203],
|
|
[-21.956176, 64.141316],
|
|
[-21.93901, 64.135924],
|
|
[-21.927337, 64.136673]
|
|
]);
|
|
var linestring2 = turf.linestring([
|
|
[-21.929054, 64.127985],
|
|
[-21.912918, 64.134726],
|
|
[-21.916007, 64.141016],
|
|
[-21.930084, 64.14446]
|
|
], {name: 'line 1', distance: 145});
|
|
|
|
// -- Test point --
|
|
var pt1 = turf.point([-75.343, 39.984]);
|
|
var pt2 = turf.point([-75.343, 39.984], {name: 'point 1', distance: 145});
|
|
|
|
// -- Test polygon --
|
|
var polygon = turf.polygon([[
|
|
[-2.275543, 53.464547],
|
|
[-2.275543, 53.489271],
|
|
[-2.215118, 53.489271],
|
|
[-2.215118, 53.464547],
|
|
[-2.275543, 53.464547]
|
|
]], { name: 'poly1', population: 400});
|
|
|
|
///////////////////////////////////////////
|
|
// Tests Data
|
|
///////////////////////////////////////////
|
|
|
|
// -- Test filter --
|
|
var key = "species";
|
|
var value = "oak";
|
|
var filtered = turf.filter(features, key, value);
|
|
|
|
// -- Test random --
|
|
var randomPoints = turf.random('points', 100, {
|
|
bbox: [-70, 40, -60, 60]
|
|
});
|
|
|
|
var randomPoints = turf.random('points', 100, {
|
|
bbox: [-70, 40, -60, 60],
|
|
num_vertices: 2,
|
|
max_radial_length: 10
|
|
});
|
|
|
|
// -- Test remove --
|
|
var filtered = turf.remove(points, 'marker-color', '#00f');
|
|
|
|
// -- Test sample --
|
|
var randomPoints = turf.random('points', 1000);
|
|
var sample = turf.sample(points, 10);
|
|
|
|
///////////////////////////////////////////
|
|
// Tests Interpolation
|
|
///////////////////////////////////////////
|
|
|
|
// -- Test hexGrid --
|
|
var cellWidth = 50;
|
|
var hexgrid = turf.hexGrid(bbox, cellWidth, units);
|
|
|
|
// -- Test isolines --
|
|
var breaks = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
|
var isolined = turf.isolines(points, 'z', 15, breaks);
|
|
|
|
// -- Test planepoint --
|
|
var zValue = turf.planepoint(point1, triangle);
|
|
|
|
// -- Test pointGrid --
|
|
var extent = [-70.823364, -33.553984, -70.473175, -33.302986];
|
|
var cellWidth = 3;
|
|
var grid = turf.pointGrid(extent, cellWidth, units);
|
|
|
|
// -- Test squareGrid --
|
|
var squareGrid = turf.squareGrid(extent, cellWidth, units);
|
|
|
|
// -- Test tin --
|
|
var tin = turf.tin(points, 'z');
|
|
|
|
// -- Test triangleGrid --
|
|
var triangleGrid = turf.triangleGrid(extent, cellWidth, units);
|
|
|
|
///////////////////////////////////////////
|
|
// Tests Joins
|
|
///////////////////////////////////////////
|
|
|
|
// -- Test inside --
|
|
var isInside1 = turf.inside(point1, polygon);
|
|
|
|
// -- Test tag --
|
|
var tagged = turf.tag(points, triangleGrid, 'fill', 'marker-color');
|
|
|
|
// -- Test within --
|
|
var ptsWithin = turf.within(points, polygons);
|
|
|
|
///////////////////////////////////////////
|
|
// Tests Classification
|
|
///////////////////////////////////////////
|
|
|
|
// -- Test jenks --
|
|
var breaks = turf.jenks(points, 'population', 3);
|
|
|
|
// -- Test nearest --
|
|
var nearest = turf.nearest(point1, points);
|
|
|
|
// -- Test quantile --
|
|
var breaks = turf.quantile(points, 'population', [25, 50, 75, 99]);
|
|
|
|
// -- Test reclass --
|
|
var translations = [
|
|
[0, 200, "small"],
|
|
[200, 400, "medium"],
|
|
[400, 600, "large"]
|
|
];
|
|
var reclassed = turf.reclass(points, 'population', 'size', translations);
|