有一个谷歌地图视图和投影圈区。如果用户继续在投影圈内移动,则应该弹出消息框,以便我需要侦听器和投影实现。
我不知道我必须使用哪个听众。如果你帮助我,我很感激。谢谢
有一个谷歌地图视图和投影圈区。如果用户继续在投影圈内移动,则应该弹出消息框,以便我需要侦听器和投影实现。
我不知道我必须使用哪个听众。如果你帮助我,我很感激。谢谢
试试我认为对你有用的距离:distanceBetween
你可以使用 Runnable 来实现你的监听器:
private Handler handler = new Handler();
public static final int circleCheckingDelay = 1000; // in ms
private Runnable circleChecker = new Runnable()
{
public void run()
{
float distance= getDistance(GeoPoint p1, GeoPoint p2);
if(distance < ...)
{
//do something
}
handler.removeCallbacks(circleChecker);
handler.postDelayed(circleChecker, circleCheckingDelay);
}
};
在您的 mapActivity 中添加以下函数:
简历:
handler.postDelayed(circleChecker, circleCheckingDelay);
暂停:
handler.removeCallbacks(circleChecker);
也检查这个链接: 如何找到两个地理点之间的距离?
例如获取距离的函数:
public float getDistance(GeoPoint p1, GeoPoint p2) {
double lat1 = ((double)p1.getLatitudeE6()) / 1e6;
double lng1 = ((double)p1.getLongitudeE6()) / 1e6;
double lat2 = ((double)p2.getLatitudeE6()) / 1e6;
double lng2 = ((double)p2.getLongitudeE6()) / 1e6;
float [] dist = new float[1];
Location.distanceBetween(lat1, lng1, lat2, lng2, dist);
return dist[0];
}