没想过自己也会写博客,这要感谢起步,学习Wex5有几个月了,都是看别人的案例来做东西,基本都是差不多的,也自己根据百度地图做了一写小小的改动,在上大学的时候听别人说可以范围签到,当时羡慕的很,没想到现在自己做了一个感觉还可以的范围签到,也算是学了几个月的小成果吧,现在分享出来,大家参考参考。功能介绍:使用者需要在指定的范围(蓝色的圈圈)内签到,否者会签到失败。写完自后感觉超级好,这是我写的第一篇博客,我一直写下去的。
这个是做出来的效果图
前置条件:
1)、我们要成功调用百度地图
2)、获取手机的当前定位
(注:上图中绿颜色的圈圈是设置的签到范围,红颜色的是自己当前位置)
1、判断你的签到点是否在你定位的范围内,我设置了多个签到的地点,代码如下;
function isInsidePolygon(pt, poly) {
for (var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i)
((poly[i].lat <= pt.lat && pt.lat < poly[j].lat) || (poly[j].lat <= pt.lat && pt.lat < poly[i].lat))
&& (pt.lng < (poly[j].lng - poly[i].lng) * (pt.lat - poly[i].lat) / (poly[j].lat - poly[i].lat) + poly[i].lng) && (c = !c);
return c;
}
2、签到也要根据时间签到,如果当天签到了没有签退,第二天就签到不了的问题,我是这样解决的
var dateTime = new Date();
var newDateTime = justep.Date.increase(dateTime, 0, ‘d’);
var qiantime = cookie.getCookie(“qiantime”);
if (newDateTime = qiantime||newDateTime > qiantime) {
qian = 1
}
if (qiantime != null) {
var dateTime = new Date();
qiantime = justep.Date.increase(dateTime, 0, ‘d’);
} else {
var s = this.comp(“input1”).val()
var qiantime = justep.Date.fromString(s, ‘yyyy/MM/dd’);// 转换成日期
qiantime = justep.Date.increase(qiantime, 1, ‘d’);
cookie.addCookie(‘qiantime’, qiantime, “/”);// 判断签到签退
}
5、代码功能:根据定位的范围来进行签到。如果不在指定的地方签到会签到不了。整体代码如下;
define(function(require) {
var =require(“jquer