设置电子围栏 高德地图_地理围栏-辅助功能-开发指南-Android 定位SDK | 高德地图API...

以下内容自定位 SDK V3.2.0 版本后支持。

第一步,创建地理围栏

地理围栏没有最大个数限制,您可以无限制的创建围栏。但请您根据业务需求合理的创建围栏,控制围栏个数可以有效的保证程序执行效率。定位 SDK 提供根据高德POI、行政区划,自定义圆形、多边形四种方式创建地理围栏。

1、创建地理围栏对象

这里还包括设置一些基本参数:

//实例化地理围栏客户端

GeoFenceClient mGeoFenceClient = new GeoFenceClient(getApplicationContext());

//设置希望侦测的围栏触发行为,默认只侦测用户进入围栏的行为

//public static final int GEOFENCE_IN 进入地理围栏

//public static final int GEOFENCE_OUT 退出地理围栏

//public static final int GEOFENCE_STAYED 停留在地理围栏内10分钟

mGeoFenceClient.setActivateAction(GEOFENCE_IN|GEOFENCE_OUT|GEOFENCE_STAYED);

2、创建高德POI地理围栏

提供两个创建高德POI围栏的接口,一个是根据关键字创建POI围栏,另一个是根据经纬度进行周边搜索创建POI围栏。

根据关键字创建围栏

通过以下方法执行POI关键字搜索并创建高德POI地理围栏。

mGeoFenceClient.addGeoFence(String keyword, String poiType, String city, int size,String customId);

参数说明

参数说明示例

keywordPOI关键字例如:首开广场

poiTypePOI类型例如:写字楼

cityPOI所在的城市名称例如:北京

customId与围栏关联的自有业务Id

示例代码

mGeoFenceClient.addGeoFence("首开广场","写字楼","北京",1,"000FATE23(考勤打卡)");

根据周边POI创建围栏

通过以下方法执行POI周边搜索并创建高德POI地理围栏。

mGeoFenceClient.addGeoFence(String keyword, String poiType, DPoint point, float aroundRadius, int size,String customId);

参数说明

参数说明示例

keywordPOI关键字例如:首开广场

poiTypePOI类型例如:写字楼

point周边区域中心点的经纬度,以此中心点建立周边地理围栏例如:北京

aroundRadius周边半径,0-50000米,默认3000米

customId与围栏关联的自有业务Id

示例代码

//创建一个中心点坐标

DPoint centerPoint = new DPoint();

//设置中心点纬度

centerPoint.setLatitude(39.123D);

//设置中心点经度

centerPoint.setLongitude(116.123D);

//执行添加围栏的操作

mGeoFenceClient.addGeoFence("肯德基","餐饮",centerPoint,1000F,10,"自有ID");

3、创建行政区划围栏

可根据行政区划关键字创建行政区划围栏。

根据关键字创建围栏

mGeoFenceClient.addGeoFence(String keyword, String customId);

参数说明

参数说明示例

keyword行政区划关键字例如:朝阳区

customId与围栏关联的自有业务Id

示例代码

mGeoFenceClient.addGeoFence("海淀区","00FDTW103(在北京海淀的化妆品促销活动)");

4、创建自定义围栏

自定义围栏包含圆形围栏、多边形围栏两种,自定义围栏一次接口调用只可以创建一个围栏,创建多个自定义围栏需要多次调用创建接口。

圆形围栏

圆形围栏需要提供中心点,以及半径。

mGeoFenceClient.addGeoFence(Point point,float radius, String customId);

参数说明

参数说明示例

point围栏中心点

radius要创建的围栏半径 ,半径无限制,单位米

customId与围栏关联的自有业务Id

示例代码

/创建一个中心点坐标

DPoint centerPoint = new DPoint();

//设置中心点纬度

centerPoint.setLatitude(39.123D);

//设置中心点经度

centerPoint.setLongitude(116.123D);

mGeoFenceClient.addGeoFence (centerPoint,500F,"自有业务Id");

多边形围栏

mGeoFenceClient.addGeoFence(List points, String customId);

参数说明

参数说明示例

points多边形的边界坐标点,最少传3个

customId与围栏关联的自有业务Id

示例代码

List points = new ArrayList();

points.add(new DPoint(39.992702, 116.470470));

points.add(new DPoint(39.994387, 116.472498));

points.add(new DPoint(39.994478, 116.474161));

points.add(new DPoint(39.993163, 116.474504));

points.add(new DPoint(39.991363, 116.472605));

mGeoFenceClient.addGeoFence(points,"自有业务ID");

第二步,开始定位

当围栏创建完毕,且围栏创建成功时会启动定位,这部分无需您来设置,SDK内部执行。

启动的定位机制:通过“远离围栏时的超低频定位策略”来降低电量消耗,“离近围栏会逐渐提高定位频率”,保证有足够的定位精度来完成围栏位置检测。

需要注意,如果您希望程序在后台持续检测围栏触发行为,您务必要在应用本地服务中启动 GeoFenceClient,且确保这个本地服务一直存活。

下面介绍如何知道创建围栏是成功还是失败。

第三步,接收围栏创建后的回调

围栏创建完毕的信息会通过 GeoFenceListener 进行回调。可以在回调中知道创建围栏成功与否,以及查看所创建围栏的具体内容。

//创建回调监听

GeoFenceListener fenceListenter = new GeoFenceListener() {

@Override

public void onGeoFenceCreateFinished(List geoFenceList,

int errorCode) {

if(errorCode == GeoFence.ADDGEOFENCE_SUCCESS){//判断围栏是否创建成功

tvReult.setText("添加围栏成功!!");

//geoFenceList是已经添加的围栏列表,可据此查看创建的围栏

} else {

tvReult.setText("添加围栏失败!!");

}

}

};

mGeoFenceClient.setGeoFenceListener(fenceListenter);//设置回调监听

第四步,接收围栏触发行为广播

用户与围栏位置发生变化的行为称为围栏触发行为,围栏触发行为也是用户进入围栏、退出围栏、在围栏内停留这三种行为的统称,行为的触发是通过Android 的广播进行发送的。

围栏触发行为的广播内容是可选性的,在第一步“创建地理围栏对象”中讲到可以应用 setActiveAction(int[] actions) 方法设置希望侦测到的围栏触发行为。

当定位启动后会马上得到符合希望的所有围栏的状态检测广播,这些广播会告诉上层逻辑每个围栏和当前用户位置的初始状态究竟是IN(定位点在围栏里)还是OUT(定位点在围栏外),这种广播不是围栏触发行为广播,是每个围栏的初始状态广播,不会经常收到,在有新的围栏被创建,或者希望侦测的Action改变时会收到。接下来的每次广播都是围栏触发行为广播(当然,触发前提是位置和围栏的关系发生了改变)。

1、创建并设置PendingIntent

//定义接收广播的action字符串

public static final String GEOFENCE_BROADCAST_ACTION = "com.location.apis.geofencedemo.broadcast";

//创建并设置PendingIntent

mGeoFenceClient.createPendingIntent(GEOFENCE_BROADCAST_ACTION);

2、创建广播监听

private BroadcastReceiver mGeoFenceReceiver = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

if (intent.getAction().equals(GEOFENCE_BROADCAST_ACTION)) {

//解析广播内容

}

}

};

3、注册广播

IntentFilter filter = new IntentFilter(

ConnectivityManager.CONNECTIVITY_ACTION);

filter.addAction(GEOFENCE_BROADCAST_ACTION);

registerReceiver(mGeoFenceReceiver, filter);

4、解析广播内容

当上一步完成之后,可以在第2步创建的监听器中在 onReceive 方法中对广播内容进行解析。广播内容是通过 Bundle 进行传递的。

//获取Bundle

Bundle bundle = intent.getExtras();

//获取围栏行为:

int status = bundle.getInt(GeoFence.BUNDLE_KEY_FENCESTATUS);

//获取自定义的围栏标识:

String customId = bundle.getString(GeoFence.BUNDLE_KEY_CUSTOMID);

//获取围栏ID:

String fenceId = bundle.getString(GeoFence.BUNDLE_KEY_FENCEID);

//获取当前有触发的围栏对象:

GeoFence fence = bundle.getParcelable(GeoFence.BUNDLE_KEY_FENCE);

最后,清除所有围栏

当不再需要使用围栏时,可以调用以下代码对已经设定的围栏进行清除操作。

//会清除所有围栏

mGeoFenceClient.removeGeoFence();

高德定位电子围栏Kotlin实现 要在 Kotlin 中使用高德地图实现定位电子围栏地理围栏),你需要集成高德定位 SDK,并通过其提供的 `Geofence` 和 `GeofenceClient` API 来创建和管理围栏。以下是一个完整的实现指南,包含必要的代码示例。 阅读详情

相关推荐

高德Web服务API V3/V5 对比:地理编码、搜索与电子围栏的3种集成方案

本文详细对比了高德地图Web服务API V3与V5版本的核心功能差异,包括地理编码、搜索精度和电子围栏等关键特性,并提供了三种集成方案。针对不同业务场景,给出了版本选型建议和配额优化策略,帮助开发者高效构建地理围栏应用。

GOBY 栏目 399

百度地图绘制电子围栏,圆形、矩形、多边形、行政区域 ( 方式2)

百度地图绘制电子围栏,圆形、矩形、多边形、行政区域 ( 方式2)

高德、百度、腾讯地图坐标对不上?一文讲清国内主流地图坐标系差异与选型避坑指南

本文深入解析国内主流地图坐标系(WGS84、GCJ-02、BD-09)的差异与转换策略,帮助开发者解决高德、百度、腾讯地图坐标不统一的问题。通过实战案例和选型建议,提供LBS应用开发中的坐标系转换与避坑指南,提升地理定位精度和业务适配性。

weixin_42530458的博客 580

android之基于高德地图的移动轨迹的可视化

地图跟踪 http://blog.csdn.net/i_do_can/article/details/50571657

计算广告第二版电子版_88J9-1图集:室外工程-围墙、围栏(第二版),电子版带走...

88J9-1图集:室外工程-围墙、围栏(第二版),电子版带走本图集为88J9-1:室外工程-围墙、围栏(第二版)。分围墙和钢围栏两大部分,围墙又分砖围墙(代号O)和花格围墙(代号H)。钢围栏(代号G)。绿篱围栏(代号R)。本图集一共104页,为高清电子版,可直接打印使用。是室外工程必备的图集之一,为广大工程人提供参考依据。【文末免费领!】88J9-1图集:室外工程-围墙、围栏(第二版),电子版带走...

weixin_39522423的博客 736

Android 基于高德地图路径规划

Android 基于高德地图路径规划现在市面上很火的健身app、运动app等都会涉及到基于高德或者百度的路径规划等相关的实现,今天来和大家介绍一下Android 基于高德地图路径规划。首先说一下具体用到的jar及具体实现思路:我用的高德jar(AMap3DMap_3.3.2_AMapNavi_1.8.0_AMapSearch_3.3.0_AMapLocation_2.6.0_20160628),

madreain的博客 5827

php 开发高德地图地理围栏,地理围栏-辅助功能-开发指南-Android 定位SDK | 高德地图API...

以下内容自定位 SDK V3.2.0 版本后支持。第一步,创建地理围栏地理围栏没有最大个数限制,您可以无限制的创建围栏。但请您根据业务需求合理的创建围栏,控制围栏个数可以有效的保证程序执行效率。定位 SDK 提供根据高德POI、行政区划,自定义圆形、多边形四种方式创建地理围栏。1、创建地理围栏对象这里还包括设置一些基本参数://实例化地理围栏客户端GeoFenceClient mGeoFenceC...

weixin_42659194的博客 458

Android外勤人员定位轨迹管理源码(Java开发,含电子围栏与离线同步)

一套可直接编译运行的Android外勤定位管理工具源码,用Java编写,适配Android 4.0及以上系统。支持实时获取GPS或网络定位数据,自动记录人员移动轨迹,后台地图可视化展示位置,回放历史路径,设置电子围栏并触发越界提醒。具备离线环境下位置采集与网络恢复后自动同步能力。工程结构规范,包含完整Android标准目录(src、res、libs、AndroidManifest.xml等),已集成主流LBS依赖库。附带README.md说明环境配置和启动步骤,project.properties与defa

water的专栏 178

uni-app微信小程序腾讯地图电子围栏实现方案(含多边形点位判定与SVG图标资源)

一套可直接运行的微信小程序电子围栏功能源码,基于uni-app开发,集成腾讯地图JavaScript SDK(qqmap-wx-jssdk.min.js),支持在小程序中绘制自定义多边形服务区域,并实时判断用户当前位置是否落在该区域内。核心采用射线法算法,由PointInPoly.js和isPointInPolygon.js两个脚本完成高精度点在多边形内判定,逻辑独立、调用简单。项目结构规范,包含index.vue主页面、content.vue业务展示页,配套SVG图标(atten.svg、markers.

u5v6w7的博客 186

二十八套经典围棋棋谱.rar

棋类,围棋,学习

app-release_1015_jiagu_sign.apk

航线规划 Android端基于高德地图 地图打点,画多边形,正射,植保

智能红绿灯预警App开发:从数据融合到车路协同的实战指南

实时交通数据处理与智能算法是智慧交通系统的核心技术基础。其原理在于通过多源数据融合(如GPS轨迹、传感器信息与云端交通流数据),构建动态预测模型,从而实现对路口通行状态的精准感知与预判。这项技术的核心价值在于提升单个车辆的通行效率与驾驶体验,并通过速度引导优化整体车流,减少拥堵与能耗。典型的应用场景包括通勤导航、物流车队管理及网约车服务,旨在实现从被动“看灯”到主动“算灯”的范式转变。本文以开发一款智能红绿灯预警App为例,深入探讨了如何整合高德地图等众包数据与V2X车联网信息,设计核心预警算法,并解决定位

weixin_34326558的博客 347

2021年十大可落地的地理位置应用创意

地理位置服务(LBS)是移动互联网的核心感知能力之一,其本质是将用户实时空间坐标转化为上下文感知的决策依据。随着GPS精度提升、操作系统权限细化及地图SDK能力开放,LBS已从辅助功能升级为刚性服务基础设施。尤其在本地生活、应急响应、社区治理等场景中,位置数据需与时间戳、设备状态、环境特征深度耦合,才能支撑低延迟、高可信的服务闭环。本文聚焦2021年技术水位与合规边界下的真实可行方案,涵盖应急互助地图、施工路段预警、AR历史复原等10个通过空间决策刚性、地理粒度匹配、时空强绑定三重校验的创意,兼顾隐私脱敏设

weixin_33850890的博客 481

围棋棋谱大全 打谱图_爱棋道,不仅仅是“围棋网课”!

大家好,最近爱棋道公众号和家长交流群里又来了好多新朋友,对爱棋道还不是很了解,道道也收到了大家常常咨询的一系列问题,比如:“孩子在爱棋道是怎么上课的?”“孩子平时做题怎么安排,遇到不懂的题目怎么办?”“孩子们在哪里下棋?”“爱棋道是如何保证孩子在线上学棋有很好的学习效果的?”......以上这些问题,答案其实都是同一个——LPE训练法。LPE训练法俗称“一学二练三做题”,是爱棋道经过老师们多年的实...

weixin_39840153的博客 3424

围棋棋谱大全 打谱_如何提高围棋水平(推荐)

影响围棋水平的因素有很多,比如个人智力,努力程度,学棋时间长短,学习效率,老师的教学水平等等。有些因素是难以改变的,但是有一个好的学习方法,对提高大家的棋力来说,肯定是事半功倍的! 那么,提高棋力都有哪些方法呢?1,上课(大课和小课,网课)2,下棋(面棋,网棋,参赛等,最好能复盘)3,做题(书本或者软件)4,自学(打谱,书本或视频,)5,提高个人修养,性格的培养也很关...

weixin_40004212的博客 4755

大疆精灵4RTK自定义三维航线规划(开源)

大疆精灵4rtk是无人机摄影测量行业的一款里程碑式的产品,极大地拓展了无人机摄影测量的应用领域。然而,大疆官方只提供了有限的航线规划功能,如带状航线、井字航线,5向飞行,仿地飞行等等。然而,在很多场合下这些功能并不能满足我们的要求。比如,有时候我们需要对某些目标进行精细三维重建,那么大疆提供的航线规划功能就远远不能满足了。 对于这种比较复杂的航线规划任务,武汉大学张祖勋院士团队提出了”贴近摄影测量“的概念,并和大疆合作提出了基于云平台的解决方案,与此类似的,Metashape软件(也就是photoscan

qq_41475842的博客 1万+

围棋棋谱大全 打谱图_万万没想到,围棋也能这样学!

原标题:万万没想到,围棋也能这样学!期待你的分享点赞在看——听说学围棋的孩子智商高、成绩好、坐得住,聪明的孩子都在学!这是真的吗?——那当然,围棋是最简单有效的益智游戏, 我强烈推荐学围棋!大家好,我是爱下围棋的人工智能点点狗。学围棋有很多好处,小朋友快来试试吧!汪!01 孩子为什么学围棋?4-8岁的孩子,正是大脑快速开发的黄金年龄,有远见的家长都会选择在这个时候给孩子做开发智力的训练, 而围棋则...

weixin_39746552的博客 6485

百度、高德地图功能进一步探索之—电子围栏绘制(三)

开始最前提到对地图覆盖物的使用,到目前为止只剩  Polygon(多边形)  Circle(圆形)这两个还没有进一步说明,那么今天我们所要讲解的电子围栏功能会用到这两个覆盖物,当然也会用到Marker覆盖物 Polyline(折线)一起来实现: 实现思路(多边形实现): 用户触发添加按钮,打开添加电子围栏模式(当然通过布尔变量来决定是否可以绘制) 当用户打开电子围栏绘制是,点击第一个顶点是可...

qq_33494480的博客 1万+
上一篇: 利用python 对比相似度_头条、油条商标有多像?Python检测发现相似度高达98.4%
下一篇: tps协议和onvif协议_做监控的你,应该了解的ONVIF协议!
weixin_39667801
博客等级 码龄9年 39粉丝 167原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值