地图中气泡避让的思路

需求

在地图上指定的位置点处扎个气泡,顶点个数最多三个。 保证气泡互不相交。

实现思路

产品给的需求,需要具体成一系列规则:
图1, 2D下每个位置点的物体坐标系下可以分为四个象限0、1、2、3,每个位置点气泡定义了四个样式: LEFT_TOP = 0,RIGHT_TOP = 1,LEFT_BOTTOM = 2,RIGHT_BOTTOM = 3。
图2,0象限的气泡箭头在右下角,1象限的气泡箭头在左下角,2象限的气泡箭头在右上角,3象限的气泡箭头在左上角。
平面上三个点,通过控制每个点的气泡样式,一定可以实现气泡互不遮挡。四个顶点就不一定了,图4中,0、1、2 点摆放了气泡以后,中间3th点怎么摆放都会跟其他点的气泡相交。这也与一个事实相符: 其他家地图(谷歌,苹果,百度,高德)中 多路线方案中结果都不超过三个。

气泡避让思路
图5,平面上三个点,通过求取包围盒思路,找到最左边的点AA,最右边的点BB,最后剩余一个顶点CC。
AA气泡样式设为 LEFT_TOP,BB样式设为RIGHT_TOP,CC样式设为LEFT_BOTTOM或者RIGHT_BOTTOM即可。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值