我正在开发android中的小应用程序来学习和作为我去年的项目。
在我找到的用户位置并在谷歌地图中放置一个标记。
但现在我无法删除它。
我已经尝试过Clear()方法和remove()方法。
这是我的代码。
getUserLocation();
Toast.makeText(this, "Latitude:" + lat + " Longitude:" + lang,
Toast.LENGTH_LONG).show();
getAddress(lat, lang);
drawMarker(lat, lang);
这是我在oncreate()方法中编写的代码。
现在这是功能代码。
private void getUserLocation() {
location_manager = (LocationManager) getSystemService(LOCATION_SERVICE);
if (location_manager != null) {
provider = location_manager.getBestProvider(criteria, true);
location = location_manager.getLastKnownLocation(provider);
location_manager.requestLocationUpdates(provider,
Map.MIN_TIME_BW_UPDATES,
Map.MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
if (location != null) {
lat = location.getLatitude();
lang = location.getLongitude();
} else {
Toast.makeText(Map.this, "Unable to idntify location",
Toast.LENGTH_LONG).show();
lat = -22.00000;
lang = -33.0000;
}
}
}
@Override
public void onLocationChanged(Location location) {
mlocationMarker.remove();
google_map.clear();
drawMarker(lat, lang);
}
private void drawMarker(double lattitude, double longitude) {
google_map.setMyLocationEnabled(true);
LatLng latlng = new LatLng(lattitude, longitude);
google_map.moveCamera(CameraUpdateFactory.newLatLng(latlng));
google_map.animateCamera(CameraUpdateFactory.zoomTo(15));
LatLng currentPosition = new LatLng(lattitude, longitude);
mlocation = new MarkerOptions();
mlocation.position(currentPosition);
mlocation.snippet("Address:" + addresses.get(0).getAddressLine(0)
+ "City:" + addresses.get(0).getAddressLine(1) + "Country:"
+ addresses.get(0).getAddressLine(2));
mlocation.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));
mlocation.title("ME");
mlocationMarker = google_map.addMarker(mlocation);
}
在这里我能够找到位置并放置标记,但在onlocationChanged()中它不起作用我不知道如何解决它。
这是我的更新行请求。
location_manager.requestLocationUpdates(provider,
Map.MIN_TIME_BW_UPDATES,
Map.MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
答案 0 :(得分:0)
在我看来,你的代码应该可行。我会尝试添加一些日志记录来验证onLocationChanged是否实际被调用。
另外,您可以考虑更新标记的位置,而不是删除标记并添加新标记。有关详细信息,请参阅the docs。