带有JavaScript或jquery的Geometry(CONVOLUTION)函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了带有JavaScript或jquery的Geometry(CONVOLUTION)函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1897字,纯文字阅读大概需要3分钟。
内容图文
我尝试这样做3个月-我需要按如下所示的路线方向创建多边形:
所以我这样写:
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);
}
});
但是在某些情况下在某些情况下不是很好,所以我的代码会产生以下结果:
坏情况:
好案例:
那么我该如何解决此问题以通过路线方向获得漂亮的多边形呢?有什么想法吗?
如何将其实现到我的代码中:
卷积算法
我的问题有解决方案吗?
除此之外,还有其他方法可以创建我需要的吗?
解决方法:
产生第二张图像的算法在几何上非常简单.假设您有一个x,y数组,我将为您编写一些伪代码:
coordinates = [[x1,y1],[x2,y2] ... [xn,yn]]
leftcoords = []
rightcoords = []
projectionwidth = 1 # How wide the path is
for each coordinate in coordinates:
pathvector = coordinate(index + 1) - coordinate(index - 1)
normpathvector = pathvector/(length(pathvector))
perpvector = projectionwidth*[-normpathvector[1],normpathvector[0]]
leftcoords.append(coordinate + perpvector)
rightcoords.append(coordinate - perpvector)
您只需要在路径的末尾注意,只选择前面或后面的坐标,就可以了.您最终得到了三组坐标轨迹.如果您想平滑路径,可以将其设置为平均几个点.
好的,这是可以工作的代码,但是您必须做一些工作以使其平滑以解决路径中的抖动.我的建议是将之前的几个点取平均值,或者将几个点取回.
内容总结
以上是互联网集市为您收集整理的带有JavaScript或jquery的Geometry(CONVOLUTION)函数全部内容,希望文章能够帮你解决带有JavaScript或jquery的Geometry(CONVOLUTION)函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。