如何解决turf 的 mask() 函数不能运行 10 个或更多多边形
我无法使用超过 9 个随机创建的点运行 turf.mask()
函数。它只是不返回任何结果。
import { featureCollection,polygon } from '@turf/helpers';
import createCircle from '@turf/circle';
import createMask from '@turf/mask';
const howManyCircles = 9;
const cover = polygon([
[[-180,-90],[180,90],[-180,-90]]
],{ name: 'cover' });
const bbox = [83.16964204361335,83.47466091885153,-83.16964204362385,-83.47466091885192];
const randomPoints = randomPoint(howManyCircles,{ bbox: bbox });
const radius = 1000;
const options = { steps: 64,units: 'kilometers',properties: { foo: 'bar' } };
const circles = randomPoints.features.map(points => {
return createCircle(points.geometry.coordinates,radius,options);
});
const mask = createMask(featureCollection(circles),cover);
这按预期工作。多边形中有九个孔(通过 randomPoints()
函数创建)。
但是,一旦我将 howManyCircles
更改为大于 9
的数字,我就不会得到任何结果。它计算和计算但没有结束。这是一个可以玩的小提琴:https://jsfiddle.net/6m3qsnu1/
这是为什么?
"@turf/helpers": "^6.3.0","@turf/random": "^6.3.0","@turf/turf": "^6.3.0",
解决方法
显然这是一个已知错误并在 v7
中得到修复。但是,yarn add @turf/turf
或 npm i @turf/turf
会安装 turf 6.3.0
。要安装最新版本,请使用 npm i turf@7.0.0-alpha.1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。