蓝点和精确度圆由地图自动管理,您无法对其进行更新或更改其符号系统。实际上,它是使用自己的LocationProvider自动管理的,因此可以获得最佳的位置解析度(您无需编写代码即可对其进行更新,只需使用即可启用它
mMap.setMyLocationEnabled(true);)。
如果要模拟它的行为,可以编写如下代码(您应该禁用我的location层
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;@Overrideprotected void onCreate(Bundle savedInstanceState) { // ... markerDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.yourmarkericon);}@Overridepublic 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);}


