背景
我有一个Google地图应用程序,其中一个人在尽可能少的点击中绘制一个矩形,解决方案是在中心绘制一条线并通过单击并拖动边缘向外展开。
问题
我知道地图上两个纬度/长度之间的角度,形成我上面提到的线,所以我可以在该线周围绘制一个矩形,很容易。知道原始线的角度我需要限制平行于原始线的线拖动到相同的角度,但我不知道从哪里开始,我如何限制这两条线的拖动,以便它们保持在任何时候都是平行的?
答案 0 :(得分:0)
我忘记了简单的几何/代数..这样做的方法是在构成直线的两个顶点上使用标准距离公式D = SQRT((x1 - x2)² + (y1 - y2)²)
,然后通过下面orthogonal matrix转换这些坐标
| 0 -1 | -> x axis
| 1 0 | -> y axis
您还需要使用标准距离公式来获取鼠标与旧行之间的距离,以计算OFFSET
可能相等的内容。
值得注意的是,您需要使用Google地图几何库进行此操作,并在计算之前将每个LatLng
对转换为Point
,然后转换回LatLng
当你准备画线时。
from.x = x1 + OFFSET * (y2 - y1) / D
from.y = y1 + OFFSET * (x1 - x2) / D
to.x = x2 + OFFSET * (y2 - y1) / D
to.y = y2 + OFFSET * (x1 - x2) / D