gpt4 book ai didi

javascript - googlemaps 多边形与 clipper.js 的结合

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:34:20 26 4
gpt4 key购买 nike

我正在尝试使用 clipper.js 合并 Google map (API v3 Javascript)上的 2 个多边形(绿色)。

之前:http://jsfiddle.net/kevdiho/tc53Y/

我的目标是只有 1 个多边形(红色)。问题是最终的多边形没有完全遵循路径,有时甚至更糟。

之后:http://jsfiddle.net/kevdiho/uF6ec/

为了合并 2 个绿色多边形,我使用了 clipper.js 和这个函数 ClipperLib.ClipType.ctUnion

var clipType = ClipperLib.ClipType.ctUnion;
function mergePolygon()
{
for(j=0;j<array_polygon.length;j++){
array_polygon_clipper = createarray_clipper_polygon(array_polygon[j]);
subj_polygons.push(array_polygon_clipper);
}
cpr.AddPolygons(subj_polygons, ClipperLib.PolyType.ptSubject);
var succeeded = cpr.Execute(clipType, solution_polygons);
return solution_polygons;
}

我该如何解决这个问题? Clipper.js 是一个很好的答案,或者还有其他库可以处理 googlemaps 多边形?

最佳答案

如果您在调用 AddPolygons 之前放大坐标并在联合操作之后缩小坐标,您的示例可能会起作用,例如。 1000000000000。当使用 float 时,需要缩放以保持精度,因为 Clipper 在内部使用整数。这有一个缺点,就是操作很慢,因为如果坐标被大幅放大,Clipper 使用大整数库。

为了克服缓慢(和精确)问题,有一个新的(尽管仍处于实验阶段)“ float ”Clipper: http://jsclipper.sourceforge.net/6.1.3.1_fpoint/clipper.js http://jsclipper.sourceforge.net/6.1.3.1_fpoint/clipper_unminified.js

Clipper 6 有一些变化,从 Clipper 5 迁移到 6 时必须考虑这些变化: https://sourceforge.net/p/jsclipper/wiki/migration5to6/

我为你做了一个改变: http://jsfiddle.net/uF6ec/2/

函数虚拟(){}

关于javascript - googlemaps 多边形与 clipper.js 的结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20147986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com