Как видеть маркер, как по умолчанию значок места карты Google Android - PullRequest
0 голосов
/ 26 февраля 2019

Я хочу видеть маркер, как по умолчанию видимость значка мест на карте Google. На карте по умолчанию видимость значков изменялась в зависимости от уровня масштабирования камеры на карте и положения камеры .Этот конкретный значок области был виден другим, пока я менял положение камеры.Теперь я получил данные из базы данных SQLite для видимой области, но я удалил все маркеры с карты и добавил снова.Таким образом, маркер мерцает во время этого процесса (удалить и добавить снова).

Мой код:

@Override
public void onCameraIdle() {
    Log.i("TAG", "onCameraIdle");
    if (cameraMoveReason == REASON_GESTURE) {
        LatLngBounds bounds = mGoogleMap.getProjection().getVisibleRegion().latLngBounds;
        double minLat;
        double maxLat;
        double minLng;
        double maxLng;
        if (bounds.northeast.latitude > bounds.southwest.latitude) {
            minLat = bounds.southwest.latitude;
            maxLat = bounds.northeast.latitude;
        } else {
            minLat = bounds.northeast.latitude;
            maxLat = bounds.southwest.latitude;
        }

        if (bounds.northeast.longitude > bounds.southwest.longitude) {
            minLng = bounds.southwest.longitude;
            maxLng = bounds.northeast.longitude;
        } else {
            minLng = bounds.northeast.longitude;
            maxLng = bounds.southwest.longitude;
        }

        LocationDAO locationDAO = new LocationDAO(getActivity());
        //Fetching data from SQLite database with latlng bounds
        ArrayList<LocationDTO> locationDTOArrayList = locationDAO.getLocations(minLat, maxLat, minLng, maxLng);
        googleMap.clear();
        for (LocationDTO locationDTO : locationDTOArrayList) {
            LatLng latLng = new LatLng(locationDTO.getLatitude(), locationDTO.getLongitude());

            Bitmap sourceBitmap = BitmapFactory.decodeResource(activity.getResources(),
                    R.drawable.ic_location_white);
            Bitmap bitmapIcon = changeBitmapColor(sourceBitmap, Color.parseColor(locationDTO.getColor()));


            Marker marker = googleMap.addMarker(new MarkerOptions().position(latLng)
                    .icon(BitmapDescriptorFactory.fromBitmap(bitmapIcon)));
            marker.setSnippet(String.valueOf(locationDTOArrayList.indexOf(locationDTO)));
            marker.setTag(locationDTOArrayList.indexOf(locationDTO));
        }
        cameraMoveReason = -1;
    }
}

@Override
public void onCameraMoveCanceled() {
    Log.i("TAG", "onCameraMoveCanceled");
}

@Override
public void onCameraMoveStarted(int i) {
    cameraMoveReason = i;
    Log.i("TAG", "onCameraMoveStarted : " + i);
}

Пожалуйста, дайте несколько советов для достижения этой функции с плавной видимостью значка.

Проверьте видео дляпонять мое требование

...