登录  /  注册
博主信息
博文 176
粉丝 1
评论 0
访问量 432100
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
php中判断坐标点是否在一个区域中
dxp2tq的博客
原创
1794人浏览过

在做有关地图的坐标计算的时候有时候会遇到判断坐标点是否在某一个区域中,这时候就用到了判断点在面上的方法。

  1. /**
  2. * @param $aLon 经度或者纬度
  3. * @param $aLat 纬度或者经度
  4. * @param $pointList 区域地点多边形点的顺序需根据顺时针或逆时针,不能乱
  5. * @return bool|int
  6. */
  7. function is_ptin_poly($aLon, $aLat, $pointList = array())
  8. {
  9. $iSum = 0;
  10. $iCount = count($pointList);
  11. if ($iCount < 3) {
  12. return false;
  13. }
  14. foreach ($pointList as $key => $row) {
  15. $pLon1 = $row[0];
  16. $pLat1 = $row[1];
  17. if ($key === $iCount - 1) {
  18. $pLon2 = $pointList[0][0];
  19. $pLat2 = $pointList[0][1];
  20. } else {
  21. $pLon2 = $pointList[$key + 1][0];
  22. $pLat2 = $pointList[$key + 1][1];
  23. }
  24. if ((($aLat >= $pLat1) && ($aLat < $pLat2)) || (($aLat >= $pLat2) && ($aLat < $pLat1))) {
  25. if (abs($pLat1 - $pLat2) > 0) {
  26. $pLon = $pLon1 - (($pLon1 - $pLon2) * ($pLat1 - $aLat)) / ($pLat1 - $pLat2);
  27. if ($pLon < $aLon) {
  28. $iSum += 1;
  29. }
  30. }
  31. }
  32. }
  33. if ($iSum % 2 != 0) {
  34. return true;
  35. } else {
  36. return false;
  37. }
  38. }
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学