java判断图形相交,并获得相交区域

客户提出的需求:比如地图上有2个图形,图形任意,需要判断出图形的交点区域的图形。

这样做会遇到很多的难点:目前我们地图上提供可供客户绘制的图形有:

1.箭头(这个暂时不需要判断)

2.椭圆

3.曲线(这两个还没有实现判断的逻辑,但是原理其实是一样的)

4.矩形

5.多边形

6.圆

7.折线

这样的判断其实有一定的难度性,需要判断客户点击的图形是怎样的,根据不同的图形来判断。而且判断出来的公共区域可能是一个集合,也就是说可能有多个点。

下面是我实现的效果图:实现的简单过程是根据客户点击的图形传入到后台进行判断。地图上的判断会有一定的坑,比如绘制的圆形传参到后台的话需要进行坐标系的转换等,因为当前的地图是使用84坐标系,比如两圆包含的时候,需要返回一个圆形,但是返回的参数在地图上显示的时候竟然变成了椭圆形等等。最终的解决方案还是翻去国外找到的答案,凭借我的蹩脚猫级别的英语成功找到了答案,美滋滋。

实现的效果图如下:

1、圆和折线段相交:

2.圆和圆相交:有外接和包含

3.圆和矩形相交

4.圆和多边形相交效果图

5.矩形和多边形相交

6.矩形和矩形,矩形和线段,多边形和线段等等除开椭圆和曲线(这两个没时间实现了,其实只要在后台绘制出相关的参数便可以实现了)

效果图如上,但是经过我的测试,在地图上如果绘制的图形范围较大的话,图形的交点是会有一定的误差,大概在200米左右 。我估计可能是计算四舍五入坐标系的结果,和之前的交点的坐标有大概0.0001的差距

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值