j9九游会登录入口首页用App Inventor实现电子围栏功能在行空板《家庭安全相册》项目中,第四部分是手机APP监护人部分。这部分需要完成手机获取家庭成员传送回来的位置后,计算是否在安全的电子围栏范围内。因为电子围栏是相对复杂的部分,因此独立一章详细说明。
App Inventor自带地图组件,可以方便的实现电子围栏(地理围栏,Geofence)功能。
实现电子围栏需要用到地图Map容器,需要用到的组件有Map,类似画面,用于放置其他地图特征组件。根据围栏的形状可以用的组件有Circle(圆形),Polygon(多边形),Rectangle(矩形)。我这里用了Circle和Polygon。
设置显示在手机屏幕上的地图中心的坐标。值是一对由逗号分隔的十进制坐标j9九游会登录入口首页,如42.359144, -71.093612,注意纬度在前j9九游会登录入口首页,经度在后。
显示/隐藏地图上当前位置的用户图标。这个功能和位置精度取决于用户是否允许开启位置服务以及可能的位置服务商是谁。
指定地图的缩放级别。 ZoomLevel 的有效值取决于图块提供者以及地图的纬度和经度。 例如,海洋的缩放级别比密集的城市中心更受限制,以节省存储图块的空间,因此海洋的 ZoomLevel有效值可能是 1-7,城市的ZoomLevel有效值 为 1-20j9九游会登录入口首页。 如果缩放级别太大而服务器无法支持,则图块提供者可能会发送警告或显示错误的图块。
PointsFromString:这是一个列表的列表,列表中是一组多边形顶点的坐标(经纬度)。可以直接在这个属性框中设置,也可以在工作面板中拖动多边形的各个顶点来调整多边形的形状。
1. 先在工作面板中移动地图,找到自己需要定义电子围栏的地方(如动图中的深圳市第三高级中学)。
FillOpacity:填充透明度。0完全不透明,1完全透明。此处使用自定义颜色里已经设置了透明度,这个参数不起作用。
纬度和经度:圆形的圆心坐标。将圆形移动到学校的位置,再微调圆心和半径。可以拖动工作面板中圆形上的两个白色方块来手动调整圆形的圆心和半径。
半径:单位米。标尺单位是在Map1组件中设置的。圆的半径越大,围栏也越大。如果半径太小,有可能无法正确判断是否在围栏内外。
这里的过程“圆形三高围栏”和“多边形三高围栏”是设置圆形和多边形。这两个围栏我们在组件设计里其实已经完成,这里展示用程序设计来实现的方法。
显示圆形围栏,隐藏多边形围栏,调用过程圆形电子围栏判断,判断当前是否在电子围栏内,并显示当前经纬度坐标。
显示多边形围栏,隐藏圆形围栏,调用过程多边形电子围栏判断,判断当前是否在电子围栏内,并显示当前经纬度坐标。