gpt4 book ai didi

javascript - 使用 javascript 创建复杂的多边形

转载 作者:行者123 更新时间:2023-11-28 08:51:35 25 4
gpt4 key购买 nike

我想按路线方向创建一个多边形,如下所示:/image/A0HQE.png所以我这样写:

directionService.route(request, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsRenderer.setDirections(result);
var r = [];
var z = 0.5;
var bla = result.routes[0].overview_path;
for(var i=0 in result.routes[0].overview_path) {
r.push(new google.maps.LatLng(bla[i].lat()+z, bla[i].lng()-z));
}
bla.reverse();
for(var x=0 in bla) {
r.push(new google.maps.LatLng(bla[x].lat()-z, bla[x].lng()+z));
}

var prva = new google.maps.Polyline({
path: result.routes[0].overview_path,
strokeColor: "#00000",
strokeOpacity: 1.0,
strokeWeight: 2
});

prva.setMap(map);

druga = new google.maps.Polygon({
paths: r,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#FF0000",
fillOpacity: 0.35
});

druga.setMap(map);

} else {
alert("Directions query failed: " + status);
}
});

但在某些情况下很好,在某些情况下则不然,所以我的代码会产生以下结果:

   BAD case:

enter image description here 好的: enter image description here

那么我如何解决这个问题以通过路线方向获得漂亮的多边形???有人有想法吗?

如何将其实现到我的代码中:http://i.imm.io/1gMu5.png

除了这之外还有其他方法来创建我需要的东西......

最佳答案

如果我理解正确,您想要加粗折线(或在折线周围制作偏移多边形)。

对于抵消,您可以使用 Javascript Clipper Library 。如果您有以下折线(路线):

enter image description here

您可以使用 Clipper 在其下方创建一个偏移多边形:

enter image description here

这是代码的基本部分(在 JSBIN 中):

var paths = [[{"X":72,"Y":59.45},{"X":136,"Y":66},{"X":170,"Y":99},{"X":171,"Y":114},{"X":183,"Y":125},{"X":218,"Y":144},{"X":218,"Y":165},{"X":226,"Y":193},{"X":254,"Y":195},{"X":283,"Y":195},{"X":292,"Y":202},{"X":325,"Y":213},{"X":341,"Y":234},{"X":397,"Y":245},{"X":417,"Y":248}]]; var scale = 100;ClipperLib.JS.ScaleUpPaths(paths, scale);var solution = new ClipperLib.Paths();var co = new ClipperLib.ClipperOffset();co.AddPaths(paths, ClipperLib.JoinType.jtRound, ClipperLib.EndType.etOpenRound);co.Execute(solution, 25 * scale);

编辑:这是名为“偏移折线”问题的通用解决方案。我不知道 Google map 或任何其他 map 软件的 secret ,因此问题的确切解决方案掌握在您手中。

关于javascript - 使用 javascript 创建复杂的多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19080976/

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