在谷歌地图中画一条垂直于两点的线

sud*_*ity 6 javascript polyline google-maps-api-3

我有两个坐标,我想绘制一条相等长度的垂直线.是否有一个简单的谷歌地图偏移为此或一个干净的JavaScript方法,我可以实现这一点?那会是什么?

这是我到目前为止所拥有的.如您所见,我将两个点绘制为标记,然后尝试在它们之间绘制一条线,除了我需要使该线垂直于两个坐标之间的线.

var locations = [
    ['', position.coords.latitude, position.coords.longitude, 1],
    ['', llat, llng, 2]
];

  var marker, i;

  for ( var i = 0; i < locations.length; i++ )
  {
      marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[i][1], locations[i][2]),
        map: map
      });
  }

    var borderPlanCoordinates = [
        new google.maps.LatLng(llat, position.coords.longitude),
        new google.maps.LatLng(position.coords.latitude,llng)
    ];

    var borderPath = new google.maps.Polyline({
      path: borderPlanCoordinates,
      strokeColor: "#FF0000",
      strokeOpacity: 1.0,
      strokeWeight: 10,
      map: map
    });

   borderPath.setMap(map);
Run Code Online (Sandbox Code Playgroud)

Bor*_*sky 5

所以,你有两个点的坐标(x1,y1),并(x2, y2)和你想画线段的长度是它们之间的距离,这是连接它们的线段的垂直平分线,以及由所述段一分为二?

也许最简单的方法是设置cx = (x1 + x2)/2,cy = (y1+y2)/2),dx = (x2-x1)/2,dy = (y2-y1)/2然后从画一条线(cx-dy, cy+dx)(cx+dy, cy-dx).

这是因为(cx, cy)是你想要的段的中点,然后你只是从该中点获取矢量(x2,y2)并将其旋转正负90度以找到你想要绘制的段的端点.