我正在开发一个从Admin向客户端发送消息的应用。 流程非常简单 - 管理员键入消息,并且安装了此应用程序的每个客户端都会收到该消息。我正在使用池化(暂时不推送通知)。
发送/接收消息工作正常,现在我需要添加新功能: 管理员在地图上选择一个区域(谷歌地图api v2),客户端检查他的位置,只有当他在标记区域内时才显示该消息。
到目前为止,我只完成了在屏幕上选择区域的视觉部分:在管理员点击的位置周围有一个圆圈(管理员可以更改圆圈半径),现在我必须做一些棘手的部分 - 标记圆圈内的区域并将其发送到DB(带有消息),以便另一方(客户端)检查他的位置是否在圆圈内,并且他是否应该收到消息。
任何帮助?
我附上了相关的代码块和屏幕快照。
code:
private void drawCircle(LatLng center, int radius) {
CircleOptions circleOptions = new CircleOptions().center(center).radius(radius);
circleOptions.strokeColor(Color.BLUE);
circleOptions.strokeWidth(3);
gMap.addCircle(circleOptions);
Log.d(TAG, "center = " + center.latitude + " , " + center.longitude);
Log.d(TAG, "radius = " + radius);
gMap.addMarker(new MarkerOptions().position(center).icon(BitmapDescriptorFactory.fromResource(R.drawable.dot)) );
}
...谢谢
答案 0 :(得分:1)
我认为您需要做的最简单的事情是检查客户端与圆心之间的距离。如果它小于圆的半径 - >客户在里面。