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

  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. }

更多相关文章

  1. Android(OPhone) 学习笔记 - 地图(3)
  2. Android自定义气球Overlay的开发
  3. Android使用百度地图SDK
  4. Android通过手机GPS获取经纬度方法
  5. Android(安卓)调起百度地图和高德地图
  6. ANDROID 开发日志(2012-01-04)
  7. android和ios GoogleMap画导航线路图 路径规划(Directions)
  8. Android编程获取地理位置的经度和纬度实例
  9. android定时定位 - 利用百度定位API来实现定时定位功能

随机推荐

  1. 用JavaScript实现图片的自动浏览
  2. Java - 获取ClassPath的路径和资源
  3. 通过javascript动态显示界面控件
  4. 《算法导论的Java实现》 10 中位数和顺序
  5. Java并发面试题:三个线程轮流打印十次abc
  6. 使用Maven时,不要将JAR添加到Google Cloud
  7. Xstream把xml转换成java对象的异常:java.l
  8. RxJava学习模块之Schduler
  9. JAVA面向对象基础
  10. JAVA生成带LOGO的二维码