title: 范围监听
创建监听范围
CircleQuery.on() 根据位置与半径创建监听范围。
CircleQuery.on();
开始监听
circleQuery 创建监听范围之后可以开始监听范围内的设备。
例如,监听范围内的设备,如果有新设备进入将会不断更新。
var circleQuery = wildLocation.circleQuery({center:position, radius:500});circleQuery.on('key_entered', function (key, position, distance) {console.log('key 为', key, '的地理单位进入范围内!');console.log(key, '距离的查询范围圆心的距离为: ', distance);});
获取新进入范围或者离开范围的设备,可以参考 API 文档。
监听范围事件
CircleQuery 每当设备进入或者离开监听范围的时候,都可以设置触发。
key_exited 在设备离开范围时触发
var exitCb = circleQuery.on('key_exited', function (key, position, distance) {console.log('key 为', key, '的地理单位离开查询范围内!');});
key_entered 在设备进入范围时触发
var enterCb = circleQuery.on('key_entered', function (key, position, distance) {console.log('key 为', key, '的地理单位进入范围内!');});
取消监听
CallbackRegistration.cancel() 用于取消指定范围的监听
enterCb();exitCb();
circleQuery.cancel() 用于取消所有的范围监听。
circleQuery.cancel();
实时变更监听范围
updateCriteria() 范围监听过程中,可以随时变更监听的位置与半径。每次变更都将会同步一次最新数据。
var newQueryCriteria = {center: newPosition,radius: newRadius};circleQuery.updateCriteria(newQueryCriteria);
例如,根据设备的实时位置不断更新监听范围。
wildLocation.onPosition(myPositionKey, function (position) {circleQuery.updateCriteria({center: position,});})
