javascript - 如何使用google maps JS api从给定的经纬度坐标中找到半径(比如10米)的坐标(纬度和经度)
问题描述
我有一条折线,点击它我需要更改它的颜色并将周围(比如 10 米)折线的颜色更改为蓝色。单击其他折线时,我需要将其设置为绿色,并且需要将之前单击的折线恢复为红色。
我可以更改单击的折线的颜色并在单击其他时恢复为原始红色,但是如何找出半径为 10 米的选定折线的周围折线。
下面是我的代码:
let polylines = [];
var prev_path;
let poly = new google.maps.Polyline({
path: latlng_array,
geodesic: true,
strokeWeight: 3,
strokeColor: 'red',
object_id: feature.id
});
poly.setMap(map);
poly.addListener('click', function(event) {
this.setOptions({
strokeColor: 'green'
});
if (prev_path) {
prev_path.setOptions({
strokeColor: 'red'
});
}
prev_path = this;
polylines.push(poly);
解决方案
我认为你应该使用Helper 函数来检测交叉点
intersectsCircle
是检测polyline
和polyline
(与您的半径)之间的交叉点的辅助函数
编辑
下面摆弄你的代码,yellow
如果它在10m
半径内,它将设置所有行black
以下是当您单击半径 内Polyline
附近的检查时的逻辑。polyline
10m
var radius = 10;
polylines.forEach((poly) => {
if (poly.intersectsCircle(selectedpoly, radius)) {
color = '#FF0';
} else {
color = '#000';
}
poly.setOptions({
strokeColor: color
});
})
}
推荐阅读
- docker - 无法安装节点红色容器
- c# - VS Code在编译时添加空间
- arrays - VBA 数组/消息框等
- python - Python:具有跳过值对的运算符
- python - numpy.minimum 用于复数
- twilio - Twilio Studio:将 SMS 对话日志转发到电子邮件
- ios - 在类中声明 Alamofire.SessionManager 一次,以便在类内的各种实用程序函数中使用它
- javascript - Angular - 模型更改后电子视图不更新
- sql - SQL After trigger update 触发更新的值
- c# - C# Azure AD Graph 获取超过 20 个组的所有成员