Skip to content

Commit 741fdfe

Browse files
committed
Add random points method to Geometry.
1 parent dfb1372 commit 741fdfe

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

src/main/java/org/geoscript/js/geom/Geometry.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,17 @@ public ScriptableObject densify(double tolerance) {
301301
return densified;
302302
}
303303

304+
@JSFunction
305+
public ScriptableObject randomPoints(int number) {
306+
org.locationtech.jts.shape.random.RandomPointsBuilder builder = new org.locationtech.jts.shape.random.RandomPointsBuilder(factory);
307+
builder.setExtent(geometry);
308+
builder.setNumPoints(number);
309+
org.locationtech.jts.geom.Geometry geom = builder.getGeometry();
310+
ScriptableObject points = GeometryWrapper.wrap(getParentScope(), geom);
311+
((Geometry) points).projection = projection;
312+
return points;
313+
}
314+
304315
@JSFunction
305316
public String getGeometryType() {
306317
return geometry.getGeometryType();

src/test/resources/org/geoscript/js/tests/geoscript/test_geom.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,15 @@ exports["test: create(bounds)"] = function() {
157157

158158
};
159159

160+
exports["test: create random points"] = function() {
161+
162+
var geom = GEOM.Point([1,1]).buffer(10)
163+
var points = geom.randomPoints(10)
164+
ASSERT.ok(points instanceof GEOM.MultiPoint)
165+
ASSERT.strictEqual(points.components.length, 10, "geometry has 10 components");
166+
}
167+
168+
160169
exports["test: Point"] = require("./geom/test_point");
161170
exports["test: LineString"] = require("./geom/test_linestring");
162171
exports["test: Polygon"] = require("./geom/test_polygon");

0 commit comments

Comments
 (0)