在lbs开发中,可能要碰到这样的问题,如何判断一个指定的经纬度点是否落在一个多边形区域内,比如我在地图上画了一个多边形区域,然后给出一个经纬度点,怎样判断这个点是否在这个多边形范围之内,由于我用的是android平台上的高德地图,官网找了很久都没有找到,貌似是没有这个方法,如果有哪位发现了,请给我留言。但是在百度地图的api上我发现了有这个方法来判断,http://wiki.lbsyun.baidu.com/cms/androidsdk/doc/v3_7_0/com/baidu/mapapi/utils/SpatialRelationUtil.html#isPolygonContainsPoint(java.util.List,%20com.baidu.mapapi.model.LatLng)这个isPolygonContainsPoint可以处理。没办法,我的app用的是高德地图,又不能换,只能另求他法,网上提供很多种方法来判断,很多都不准,有些可以,有些不可以,这个http://blog.csdn.net/mingojiang/article/details/8159618地址的方法是可以的,这个他是用C#写成的,我用高德的api重写下,给大家提供个参考:

// 功能:判断点是否在多边形内// 方法:求解通过该点的水平线与多边形各边的交点// 结论:单边交点为奇数,成立!//参数:// POINT p   指定的某个点// LPPOINT ptPolygon 多边形的各个顶点坐标(首末点可以不一致)public static boolean PtInPolygon(LatLng point, List<LatLng> 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提供的,代表经纬度,我用这个方法做了大量的临界测试,发现都很准,没有失误过,而且,我也在自己的项目中使用了,效果还好,亲测可用,希望对大家有帮助!!!

在Android里如何判断一个指定的经纬度点是否落在一个多边形区域内相关推荐

  1. android 经纬度的范围内,在Android里如何判断一个指定的经纬度点是否落在一个多边形区域内...

    在lbs开发中,可能要碰到这样的问题,如何判断一个指定的经纬度点是否落在一个多边形区域内,比如我在地图上画了一个多边形区域,然后给出一个经纬度点,怎样判断这个点是否在这个多边形范围之内,由于我用的是a ...

  2. Java判断gps点是否在中国,如何判断一个指定的位置点坐标(GPS上的经纬度)是否落在一个多边形区域内?...

    业务场景举例:快递选择收获区域.车辆电子围栏.运动轨迹路线.地理位置信息检测范围和地图等过滤等等. 比方说地图上有一块区域(抽象成多边形),然后里面每一个位置点(像素点)都有对应的GPS的经纬度坐标值 ...

  3. JAVA判断一个地理坐标是否在一个多边形区域内和是否在一个圆形区域内(经纬度)

    怎么样判断一个坐标点在一个多边形区域内?包括规则多边形,不规则多边形,还有圆... 1 判断一个坐标是否在圆形区域内? 多边形和圆分开写,首先简单的就是判断是否在圆里面,如何判断一个坐标是否在圆形区域 ...

  4. 微信小程序 - 判断一个经纬度是否在一个多边形区域内

    功能描述: 最近公司做了一个定位打卡的小程序,需要判断用户的经纬度是否在一个闭合的多边形区域内,在区域内允许打卡,否则提示"不再打卡范围".由于腾讯地图小程序SDK没有提供相关功能 ...

  5. java判断地图范围_百度地图java 判断当前位置是否在多边形区域内

    package com.haiyisoft.cAssistant.adapter.hessian; import java.awt.geom.Point2D; import java.util.Arr ...

  6. java 坐标系运算 判断一个地理坐标是否在电子围栏 圆、矩形、多边形区域内

    测试没问题,我用的是原始坐标:要注意的是坐标转换问题,要看当前是属于什么坐标系 经纬度与GCS(Geographic Coordinate System, 地理坐标系统) 平面坐标与PCS(Proje ...

  7. 判断一个点是否在多边形区域内--C算法

    /* 函数的输入: (1)当前点的坐标p (2)区域顶点数组pt[]: (3)顶点数nCount  输出: 在区域内返回TRUE,否则返回FALSE.    Point类型是一个结构:  struct ...

  8. 利用Matlab判断某些点是否在多边形区域内

    目录 1. 代码作用及实现效果 2. 技术分析: 3. 程序 1. 代码作用及实现效果 先给各位看看具体效果,如下所示,其中红色的点表示需要判断的点,是否在蓝色区域内,从图中可知,有两个点在蓝色区域内 ...

  9. 百度地图——判断一个点是否在一个区域内?

    由于目前的一个项目涉及离线地图,经过查找资料论证,最终还是决定采用百度地图.在项目过程中,遇到一个比较实际的问题:怎么判断地图上的一个点(经纬坐标下)在一个多边形区域内? 由于我采用的是百度地图Jav ...

最新文章

  1. 在CentOS 6.3 64bit上利用iptables开放指定端口的方法
  2. Python使用datetime中的timedelta模块实现时间增减:python计算100天后是哪年那月那日?
  3. 优艾智合机器人科技_在全球最大工业机器人消费市场,优艾智合如何助力产业智能化?...
  4. python练习题实例_Python 练习实例65
  5. ScrollView内嵌ListView或GridView的滑动处理
  6. 486. Predict the Winner | 486. 预测赢家(博弈论)
  7. 域控下发脚本_域环境下做到单用户登陆控制脚本
  8. 第二章《深入C#数据类型》项目经理评分
  9. python开发面向对象基础:封装
  10. Linux查看kvm安装路径,Linux系统KVM虚拟化自动部署
  11. java值类型和引用类型的区别
  12. android item list居中,RecyclerView选中item居中显示
  13. C语言函数 bzero
  14. 计算机操作系统学习笔记+思维导图——西安电子科技大学(第四版)
  15. LoadRunner教程(16)-LoadRunner SLA分析
  16. 仓库温度湿度控制措施_仓库温度的控制要求
  17. ipad编写python_ipad怎么写python
  18. 如何发布个人网站(入门全套,小白专用,Linux服务器)
  19. 为什么软件系统开发公司不会同意技术入股
  20. 华为Vo5G技术GC方式下引入G

热门文章

  1. CSDN快速升级,原力如何快速获取,综合贡献提升
  2. python矩阵乘法 点乘_转(matlab和numpy矩阵乘法异同)
  3. tigase遇到问题集锦
  4. 【转】记一次 ClickHouse 数据迁移
  5. Java软件架构师值得一试的“武功秘籍”
  6. 如何结交大佬 -- 舔狗是要技术的
  7. Spring refresh 方法分析之一
  8. appium使用 自动化测试
  9. 开题报告:基于java的新闻信息管理系统 毕业设计论文开题报告模板
  10. linux命令-mv命令