java实现判断给定点是否在指定区域内的判断

这篇博客提供了一个Java方法,用于判断给定的经纬度点是否位于一个由多个点定义的不规则区域内。通过计算点与区域边界线的交点数量来确定点的位置关系。
摘要由CSDN通过智能技术生成

直接上代码

/*主要算法,判断给定坐标是否在指定区域内
     * 参数:入参经度列,纬度列,经度,纬度;出参true-false
     * step1:取4个最值,先判断点与最值的位置关系
     * step2:点与边界点位置关系
     * step3:核心算法,判断点所引的横向射线与不规则区域交点个数
     */
    public static boolean JudgeInOutFirst(double[] LngCollotions,double[] LatCollotions,double Lng,double Lat){
        //点在最值区域外
        if(Lng<GetMinLng(LngCollotions)||Lng>GetMaxLng(LngCollotions)||Lat<GetMinLat(LatCollotions)||Lat>GetMaxLat(LatCollotions)){
            return false;
        }else{
            int nvert =LngCollotions.length;//点数
            int i,j,c=0,k=0;
            //该点位与n个点所成n-1条线的判断
            for(i=0,j=nvert-1;i<nvert;j=i++){
                
                boolean LngTemp =(LngCollotions[i]==Lng);
                Boolean latTemp =

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值