这个方法可以加入到工具类中去使用.

注意:在使用 此方法在判断 经纬度时,一定要与使用地图一样的经纬度.

附上 :https://api.map.baidu.com/lbsapi/getpoint/index.html

百度地图的拾取坐标系统

/**
     * 返回一个点是否在一个多边形区域内
     * @param mPoints 多边形坐标点列表
     * @param point   待判断点
     * @return true 多边形包含这个点,false 多边形未包含这个点。
     */
    public static boolean isPolygonContainsPoint(java.util.List<Point2D.Double> mPoints, Point2D.Double point) {
        int nCross = 0;
        for (int i = 0; i < mPoints.size(); i++) {
            Point2D.Double p1 = mPoints.get(i);
            Point2D.Double p2 = mPoints.get((i + 1) % mPoints.size());
            // 取多边形任意一个边,做点point的水平延长线,求解与当前边的交点个数
            // p1p2是水平线段,要么没有交点,要么有无限个交点
            if (p1.getX() == p2.getX())
                continue;
            // point 在p1p2 底部 --> 无交点
            if (point.getX() < Math.min(p1.getX(), p2.getX()))
                continue;
            // point 在p1p2 顶部 --> 无交点
            if (point.getX() >= Math.max(p1.getX(), p2.getX()))
                continue;
            // 求解 point点水平线与当前p1p2边的交点的 X 坐标
            double x = (point.getX() - p1.getX()) * (p2.getY() - p1.getY()) / (p2.getX() - p1.getX()) + p1.getY();
            if (x > point.getY()) // 当x=point.x时,说明point在p1p2线段上
                nCross++; // 只统计单边交点
        }
        // 单边交点为偶数,点在多边形之外 ---
        return (nCross % 2 == 1);
    }