Не показывать карту и маркеры на карте - PullRequest
0 голосов
/ 26 июня 2018

Android Studio 3.0, Gradle 4.4, Java 1.8, Android 6.0 Я пытаюсь показать карту Google с маркерами на нем. Так. В файле манифеста:

<meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_maps_key" />

Вот мой код во фрагменте:

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) {
        switch (requestCode) {
            case 1: {
                if (grantResults.length > 0) {
                    if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                        Debug.d(TAG, "onRequestPermissionsResult: GRANTED ---> moveMyLocation()");
                        myLastLocation = getMyLastLocation();
                        MyApplication.setMyLocation(myLastLocation);
                        moveMyLastLocation();
                        updateMarkers();
                    } else {
                        Debug.w(TAG, "onRequestPermissionsResult: NOT_GRANTED");
                    }
                } else {
                    Debug.w(TAG, "onRequestPermissionsResult: NOT GRANEED");
                }
            }
            default:
                super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }

  private void updateMarkers() {
        for (Marker marker : markersList) {
            marker.remove();
        }
        RealmResults<Merchant> merchantsRealmResults = MerchantService.getMerchants(realm, filter, null);
        for (Merchant merchant : merchantsRealmResults) {
            RealmList<PointOfSale> pointOfSaleRealmList = merchant.getPointsOfSale();
            for (PointOfSale pointOfSale : pointOfSaleRealmList) {
                Coordinates coordinates = pointOfSale.getCoordinates();
                LatLng latLng = new LatLng(coordinates.getLatitude(), coordinates.getLongitude());
                Marker marker = googleMap.addMarker(new MarkerOptions().position(latLng));
                marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.ic_map_info_marker));
                marker.setTag(pointOfSale);
                markersList.add(marker);
            }
        }
        Debug.d(TAG, "updateMarkers: markersList.size = " + markersList.size());
    }

как результат (logcat):

 onMapReady: 
 onMapReady: ---> permission is already granted
 onConnected: 
 onConnected: ---> permission is already granted ---> updateMarkers() and moveMyLocation()
 updateMarkers: filter = 
 BUNDLE(0):

 getMerchants: sortByFieldName = null, filter = 
 BUNDLE(0):

 updateMarkers: current pointOfSale = 
 id = 238, coordinates = Coordinates{latitude = 35.3237104, longitude = 33.3149413}}
 updateMarkers: current pointOfSale = 
 id = 227, coordinates = Coordinates{latitude = 35.126413, longitude = 33.429859}}
updateMarkers: markersList.size = 2

как вы можете видеть, я успешно добавляю все маркеры в markersList, но карта пуста.

При первом запуске он спросит моего разрешения. Я выбираю " Разрешить " enter image description here

Но карта не показывается. Также не показывать маркеры на карте.

enter image description here

также в logcat:

E/Google Maps Android API(21307): Authorization failure.  Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map.
E/Google Maps Android API(21307): In the Google Developer Console 

(https://console.developers.google.com)
E/Google Maps Android API(21307): Ensure that the "Google Maps Android API v2" is enabled.
E/Google Maps Android API(21307): Ensure that the following Android Key exists:
E/Google Maps Android API(21307):   API Key: AIzaSyxxxx1BRHy1GhlvJvj7dcAmAc-Is
E/Google Maps Android API(21307):   Android Application (<cert_fingerprint>;<package_name>): xxxxxB:1A:0D:B9;com.my.projectandroid.customer.debug

Почему бы не показать карту и маркеры на ней?

1 Ответ

0 голосов
/ 26 июня 2018

LogCat говорит, что вам нужно настроить API карт Google и получить действительный ключ API, и именно поэтому фрагмент карты отображает этот пустой экран. Чтобы получить ключ API Google Maps, вам нужно перейти на Google Api и добавить свой проект в Google Maps Android Android API.

Logcat предоставляет ссылки для решения вашей проблемы первая ссылка - шаг 4 и вторая ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...