永发信息网

如何判断一个指定的经纬度点是否落在一个多边形区域内?

答案:2  悬赏:80  手机版
解决时间 2021-02-10 01:44
如何判断一个指定的经纬度点是否落在一个多边形区域内?
最佳答案
判断指定的经纬度坐标点是否落在指定的多边形区域内
@paramALon指定点的经度
@paramALat指定点的纬度
@paramAPoints指定多边形区域各个节点坐标
@returnTrue落在范围内False不在范围内
------------------------------------------------------------------------------*}functionIsPtInPoly(ALon,ALat:double;APoints:arrayofTMyPoint):Boolean;variSum,iCount,iIndex:Integer;
dLon1,dLon2,dLat1,dLat2,dLon:double;beginResult:=False;if(Length(APoints)<3)thenbeginResult:=False;Exit;end;iSum:=0;iCount:=Length(APoints);foriIndex:=0toiCount-1dobeginif(iIndex=iCount-1)thenbegindLon1:=APoints[iIndex].X;dLat1:=APoints[iIndex].Y;dLon2:=APoints[0
].X;dLat2:=APoints[0
].Y;endelsebegindLon1:=APoints[iIndex].X;dLat1:=APoints[iIndex].Y;dLon2:=APoints[iIndex+1
全部回答
在lbs开发中,可能要碰到这样的问题,如何判断一个指定的经纬度点是否落在一个多边形区域内,比如我在地图上画了一个多边形区域,然后给出一个经纬度点,怎样判断这个点是否在这个多边形范围之内,由于我用的是android平台上的高德地图,官网找了很久都没有找到,我用高德的api重写下,给大家提供个参考: [java] view plain copy // 功能:判断点是否在多边形内 // 方法:求解通过该点的水平线与多边形各边的交点 // 结论:单边交点为奇数,成立! //参数: // point p 指定的某个点 // lppoint ptpolygon 多边形的各个顶点坐标(首末点可以不一致) public static boolean ptinpolygon(latlng point, list apoints) { int ncross = 0; for (int i = 0; i < apoints.size(); i++) { latlng p1 = apoints.get(i); latlng p2 = apoints.get((i + 1) % apoints.size()); // 求解 y=p.y 与 p1p2 的交点 if ( p1.longitude == p2.longitude) // p1p2 与 y=p0.y平行 continue; if ( point.longitude < math.min(p1.longitude, p2.longitude)) // 交点在p1p2延长线上 continue; if ( point.longitude >= math.max(p1.longitude, p2.longitude)) // 交点在p1p2延长线上 continue; // 求交点的 x 坐标 -------------------------------------------------------------- double x = (double)(point.longitude - p1.longitude) * (double)(p2.latitude - p1.latitude) / (double)(p2.longitude - p1.longitude) + p1.latitude; if ( x > point.latitude ) ncross++; // 只统计单边交点 } // 单边交点为偶数,点在多边形之外 --- return (ncross % 2 == 1); } 注意,这个latlng类,是高德地图api提供的,代表经纬度,效果还好,亲测可用
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
dnf异界武器增幅一次要什么材料大概多少钱,
乐多多婴幼儿用品连锁曹溪店怎么去啊,有知道
iSpa(苏宁凯悦店)地址好找么,我有些事要过去
浙二医院微信号
我腿疼贴了一贴膏药但是现在它粘在我腿上了一
约JOCHEBED美睫美甲皮肤管理沙龙怎么去啊,我
全国有多少叫李旭尧的
hey,beautygirl地址在什么地方,想过去办事
南京哪里有卖STUSSY
都市厨房在什么地方啊,我要过去处理事情
微投资平台是怎样风控的
求助关于和利时DCS服务器的问题
圣经中诗篇82:6节怎么解释?
小米4图案解锁错误几个小时停止使用
领航网吧地址有知道的么?有点事想过去
推荐资讯
长江九号抗衰养生会所(长江国际花园店)怎么去
圣菲亚口腔怎么去啊,我要去那办事
持有a1驾驶证多久才能上岗就业
日夜洗车怎么去啊,我要去那办事
在北京奥运会前后,身穿速比涛公司生产的鲨鱼
鑫雅女子专业染烫店地址好找么,我有些事要过
色谷美发专业烫染机构地址有知道的么?有点事
国际航班托运行李可以托运两个加一起23公斤还
思达·大河春天B区(东南门)怎么去啊,有知道
现在深圳君达集团的总裁是
倍特电动车客户服务中心地址在什么地方,想过
好迪干洗地址在哪,我要去那里办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?