如何使用 google maps JS api 从给定的纬度和经度坐标中找到半径(比如 10 米)的坐标(纬度和经度)
How to find the coordinates (lat & long) in a radius (say like 10 meters) from a given lat & long coordinate using google maps JS api
我有一条折线,点击它我需要更改它的颜色并将周围(比如 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 function 来检测交集
intersectsCircle
是辅助函数,用于检测 polyline
和 polyline
(使用您的半径)
之间的交点
编辑
在 fiddle 下方使用您的代码,如果它在 10m
半径内,它将设置所有带有 yellow
的行,否则 black
以下是当您单击 Polyline
时在 10m
半径内检查 polyline
附近的逻辑。
var radius = 10;
polylines.forEach((poly) => {
if (poly.intersectsCircle(selectedpoly, radius)) {
color = '#FF0';
} else {
color = '#000';
}
poly.setOptions({
strokeColor: color
});
})
}
我有一条折线,点击它我需要更改它的颜色并将周围(比如 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 function 来检测交集
intersectsCircle
是辅助函数,用于检测 polyline
和 polyline
(使用您的半径)
编辑
在 fiddle 下方使用您的代码,如果它在 10m
半径内,它将设置所有带有 yellow
的行,否则 black
以下是当您单击 Polyline
时在 10m
半径内检查 polyline
附近的逻辑。
var radius = 10;
polylines.forEach((poly) => {
if (poly.intersectsCircle(selectedpoly, radius)) {
color = '#FF0';
} else {
color = '#000';
}
poly.setOptions({
strokeColor: color
});
})
}