一、问题描述
路径规划信息应该在对应线的中点附近, 如果地图上存在三个及以上的点,路径信息的最优展示位置是在多边形的区域外
二、解决思路
1. 根据给出的坐标点确定一个区域(三角形/多边形)
2. 根据起始点获取中点的位置,然后获取中点上下左右四个方位的点
3. 通过AMap.GeometryUtil.isPointInRing判断步骤2中获得的4个点中哪些点在三角形区域外,如果拿到的点数多于两个,则进入步骤4,否则直接进入步骤5
4. 通过AMap.GeometryUtil.distanceToLine计算出步骤3中获得的点距离当前直线的距离,取距离线最远的两个点,进入到步骤5
5. 根据以上步骤获取的点可以确定覆盖物的方位以及偏移方向
- 一个点
| 哪个方位的点 | label的方位 | label的偏移量 |
|---|---|---|
| 上 | 上 | x: 0; y: height |
| 下 | 下 | x: 0; y: -height |
| 左 | 左 | x: -height; y: 0 |
| 右 | 右 | x: height; y: 0 |
- 两个点
| 哪个方位的点 | label的方位 | label的偏移量 |
|---|---|---|
| 上,右 | 右 | x: height; y: -height |
| 下,右 | 右 | x: height; y: -height |
| 上,左 | 左 | x: -height; y: -height |
| 下,右 | 右 | x: height; y: height |
| 上,下 | 下 | x: 0; y: height |
| 左,右 | 右 | x: height; y: 0 |