工具步骤
点击矩形绘制工具,点击三个点完成矩形绘制。
应用场景
用于在地图上快速绘制任意方向的矩形。
示意图
算法原理
- 点第一个点确定矩形的一个角点P1,也作为平移后的坐标原点,生成平移矩阵。
- 点第二个点P2,确定矩形的一条边的方向,也作为新坐标系的x轴,生成旋转矩阵。
- 移动过程中,根据鼠标坐标,以及变换矩阵(先平移,再旋转),计算出第三个点在新坐标系中的坐标,然后投影到两个轴线上(x1,0)和(0,y1),得到矩形的另外两个点在新坐标系的坐标,再根据变换矩阵的逆矩阵,算出另外两个点在web墨卡托坐标系中的坐标,再根据投影坐标反算成经纬度坐标。
- 点第三个点P3,确定最终的矩形经纬度坐标。
注意点:
变换矩阵应该是两个二维平面坐标系之间的转换,所以不能直接用经纬度,需要把经纬度转为web墨卡托投影坐标。那么为什么不转为屏幕坐标呢?因为转为屏幕坐标,绘制过程中拖动地图,可能导致矩形的某个点从新坐标系转为屏幕坐标,会出现负值,负值无法根据屏幕坐标转为经纬度(cesium的方