老规矩,先上个图吧,虽然没啥卵用。。。
其实对于熟悉高德API的人来说,这个功能估计五分钟就做出来了,真的很简单。但是如果你不熟悉API,那么可能我能给你点思路。
接下来就是正题,要实现打开功能,需要满足两个要素。
- 打卡时间,这个呢由后台给你制定,你不用管;
- 打卡范围,也就是说,在规定的范围内才能进行打卡操作;
回到高德地图,我们需要做的就是确定一个打卡的范围,然后判定某个手持端是否在这个空间范围内就可以了,这里我们直接用到LatLngBounds
这个类,看看API的解释:
代表了经纬度划分的一个矩形区域。
LatLngBounds(LatLng southwest, LatLng northeast)
使用传入的西南角坐标和东北角坐标创建一个矩形区域。
也就是说传入一个矩形的对角线的两个点就行了,这样就生成了矩形区域用来判定打开范围,判定就很简单了,接着看API:
contains(LatLng point)
判断矩形区域是否包含传入的经纬度点。
也就是说现在你传入一个LatLng
就可以完成这个打卡的逻辑了,so easy!打卡成功,下班咯!