如何使用 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);

这是我的演示https://jsfiddle.net/hellraizer/2kt508yo/

我认为你应该使用 Helper function 来检测交集

intersectsCircle 是辅助函数,用于检测 polylinepolyline(使用您的半径)

之间的交点

编辑

在 fiddle 下方使用您的代码,如果它在 10m 半径内,它将设置所有带有 yellow 的行,否则 black

updated fiddle

以下是当您单击 Polyline 时在 10m 半径内检查 polyline 附近的逻辑。

var radius = 10;
  polylines.forEach((poly) => {

    if (poly.intersectsCircle(selectedpoly, radius)) {
      color = '#FF0';
    } else {
      color = '#000';
    }
    poly.setOptions({
      strokeColor: color
    });

  })

}