zoukankan      html  css  js  c++  java
  • 判断一个经纬度是不是在一个范围内

            /// <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;
            }
  • 相关阅读:
    如何重写Java中的equals方法
    如何阅读论文
    新的开始
    react父组件调用子组件方法
    关于 webpack 的研究
    浅析HTTP代理原理
    Maven POM详解
    项目实战
    项目实战-Gulp使用
    AngularJS 项目开发实战
  • 原文地址:https://www.cnblogs.com/tangchun/p/9467985.html
Copyright © 2011-2022 走看看