您的位置:威尼斯官方网站 > 威尼斯正规官网 > 威尼斯官方网站判别二个经纬度是或不是在四个

威尼斯官方网站判别二个经纬度是或不是在四个

发布时间:2019-11-27 17:26编辑:威尼斯正规官网浏览(124)

            /// <summary>
            /// 判断经纬度是否在范围类
            /// </summary>
            /// <param name="longitudeCur">经度</param>
            /// <param name="latitudeCur">纬度</param>
            /// <param name="pathList"></param>
            /// <returns></returns>
            public static bool IsInRegion(double longitudeCur, double latitudeCur, IList<RegionPath> pathList)
            {
                if (pathList.Count < 3)//点小于3无法构成多边形
                {
                    return false;
                }
                int iSum = 0;
                int pathCount = pathList.Count;
                double longStart = 0, latiStart = 0, longEnd = 0, latiEnd = 0;
                double dLong = 0;
                for (int i = 0; i < pathCount; i++)
                {
                    int nextIndex = i + 1;
                    if (i == pathCount - 1)
                    {
                        nextIndex = 0;
                    }
                    longStart = pathList[i].Longitude;
                    latiStart = pathList[i].Latitude;
                    longEnd = pathList[nextIndex].Longitude;
                    latiEnd = pathList[nextIndex].Latitude;
    
                    //判断纬度即Y坐标是否在2点的Y坐标内,只有在其内水平线才会相交
                    if ((latitudeCur >= latiStart && latitudeCur < latiEnd) || 
                        (latitudeCur >= latiEnd && latitudeCur < latiStart)) 
                    {
                        if (Math.Abs(latiStart-latiEnd)>0)
                        {
                            dLong = longStart - ((longStart - longEnd) * (latiStart - latitudeCur)) / (latiStart - latiEnd);
                            if (dLong < longitudeCur)
                            {
                                iSum++;
                            }
                        }
                    }
                }
    
                if ((iSum % 2) != 0)
                {
                    return true;
                }
                return false;
            }
    

    威尼斯官方网站, 

    本文由威尼斯官方网站发布于威尼斯正规官网,转载请注明出处:威尼斯官方网站判别二个经纬度是或不是在四个

    关键词: