Google地图:当前位置标记(GMaps的期间更新)

所以我已经能够通过开发者android页面定期更新我当前的位置,让你的应用程序位置清晰。 现在,每当我的位置发生变化时,我都可以获得该位置的纬度和经度。 但是,我是谁通过Google地图实现了这一点?

下面的这一行在我的地图上实现了一个按钮,它可以找到我当前的位置,并在其上放置一个蓝点/标记(不接收定期更新)

mMap.setMyLocationEnabled(真);

我应该在onLocationChanged()事件中添加什么才能使用新的 lat和long更新蓝点?

蓝点和精确圆由地图自动管理,您无法更新或更改其符号系统。 事实上,它使用自己的LocationProvider自动管理,因此它可以获得最佳的位置分辨率(您不需要编写代码来更新它,只需使用mMap.setMyLocationEnabled(true); )启用它。

如果你想模仿它的行为你可以写这样的东西(你应该禁用我的位置层做mMap.setMyLocationEnabled(false); ):

 private BitmapDescriptor markerDescriptor; private int accuracyStrokeColor = Color.argb(255, 130, 182, 228); private int accuracyFillColor = Color.argb(100, 130, 182, 228); private Marker positionMarker; private Circle accuracyCircle; @Override protected void onCreate(Bundle savedInstanceState) { // ... markerDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.yourmarkericon); } @Override public void onLocationChanged(Location location) { double latitude = location.getLatitude(); double longitude = location.getLongitude(); float accuracy = location.getAccuracy(); if (positionMarker != null) { positionMarker.remove(); } final MarkerOptions positionMarkerOptions = new MarkerOptions() .position(new LatLng(latitude, longitude)) .icon(markerDescriptor) .anchor(0.5f, 0.5f); positionMarker = mMap.addMarker(positionMarkerOptions); if (accuracyCircle != null) { accuracyCircle.remove(); } final CircleOptions accuracyCircleOptions = new CircleOptions() .center(new LatLng(latitude, longitude)) .radius(accuracy) .fillColor(accuracyFillColor) .strokeColor(accuracyStrokeColor) .strokeWidth(2.0f); accuracyCircle = mMap.addCircle(accuracyCircleOptions); }