【发布时间】:2016-02-06 10:36:50
【问题描述】:
我正在尝试在 android 应用程序中实现地理围栏。我遵循了本教程http://developer.android.com/training/location/geofencing.html。和
在此处输入代码
mapFragment = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map));
googleMap = mapFragment.getMap();
// set OnMarkerDrag Listener
googleMap.setOnMarkerDragListener(this);
// radius distance for geofencing boundary
distance = 1;
// move camera at specific location.
// current location latitude and longitude can be provided here
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(Mylatitude, Mylongitude), 1));
// createGeofence location latitude and longitude and shape
createGeofence(latitudeGeofence, longitudeGeofence, distance, "CIRCLE", "MyOffice");
}
private void createGeofence(double latitude, double longitude, int radius, String geofenceType, String title){
Marker marker = googleMap.addMarker(new MarkerOptions().draggable(true).position(new LatLng(latitude, longitude)).title(title).draggable(true).icon(BitmapDescriptorFactory.fromResource(R.drawable.lock)));
//marker.setAnchor(10,10);
googleMap.addCircle(new CircleOptions().center(new LatLng(latitude, longitude)).radius(radius).strokeColor(Color.parseColor("#ffff00")).fillColor(Color.parseColor("#B2A9F6")));
}
public void onMarkerDrag(Marker marker){}
public void onMarkerDragEnd(Marker marker){
LatLng dragPosition = marker.getPosition();
double dragLat = dragPosition.latitude;
double dragLong = dragPosition.longitude;
googleMap.clear();
createGeofence(dragLat, dragLong, distance, "CIRCLE", "GEOFENCE");
}
public void onMarkerDragStart(Marker marker){}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_fencing, menu);
return true;
}
但它不起作用,它没有收到任何关于在 android 应用程序中进入和退出的通知。请帮助我如何开发地理围栏以及如何在应用程序中获取通知。 提前谢谢。
【问题讨论】:
-
你列出的代码只是在谷歌地图上画了一个圆圈。这不是创建地理围栏。
-
感谢您的回复。请帮助我如何在应用程序中进行地理围栏。提前致谢。
标签: android geofencing android-geofence