android 如何判断点是否在多边形内

这篇博客介绍了如何在Android中判断一个点是否位于一个多边形内部,通过自定义工具类`SpatialRelationUtil`,提供`isPolygonContainsPoint`方法来实现,无需依赖百度地图API。
摘要由CSDN通过智能技术生成

在开发中我们经常会遇到需要监听手势动作的需求,往往这些需求会与界面的某个区域绑定。但是当该区域是一个不规则的多边形时,这就给我们的判断添加了相当大的难度。

其实在百度地图中就有判断点是否在指定区域内的功能,API中提供了相关的方法。但我们不可能在不使用地图功能的时候去特地导入BaiDuMap来实现这一功能,所以在这里我将改功能的实现提取出自定义一个工具类。

首先定义一个类Point,表示点

public class Point {
    double x;//X坐标
    double y;//y坐标
}

之后就是重头戏
/**
 * 参照百度地图的SpatialRelationUtil工具类
 */
 
public class SpatialRelationUtil {
    private SpatialRelationUtil() {
    }
 
    /**
     * 返回一个点是否在一个多边形区域内
     *
     * @param mPoints 多边形坐标点列表
     * @param point   待判断点
     * @return true 多边形包含这个点,false 多边形未包含这个点。
     */
    public static boolean isPolygonContainsPoint(List<Point> mPoints, Point point) {
        int nCross = 0;
        for (int i = 0; i < mPoints.size(); i++) {
            Point p1 &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值