Проблема с API направления Google Map после последнего обновления от Google - PullRequest
0 голосов
/ 04 октября 2018

Мне нужно построить направление в моем приложении для Android, чтобы: 1 - я получил новый ключ из google api console 2 - я сделал оплату и получил бесплатную пробную версию 3 - я следую инструкциям разработчиков Google, но у меня есть проблема Неверный ключ Api Я отмечаю, что в моей работе отсутствует часть, которая является вторым шагом в руководстве по Google Шаг 2. Добавление ключа API в ваше приложение. При загрузке API направлений укажите YOUR_API_KEY в приведенном ниже коде.с ключом API, который вы получили на предыдущем шаге https://maps.googleapis.com/maps/api/directions/json?origin=Toronto&destination=Montreal&key=YOUR_API_KEY, но я не знаю, куда поместить этот код?и, наконец, это весь мой код:

    DateTime now = new DateTime();
        try {
            DirectionsResult result = DirectionsApi.newRequest(getGeoContext())
                    .mode(TravelMode.DRIVING).origin(String.valueOf(userLocation))
                    .destination(String.valueOf(sydney)).departureTime(now)
                    .await();
            addMarkersToMap(result,mMap);
            addPolyline(result,mMap);


        } catch (ApiException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
  private GeoApiContext getGeoContext() {
    GeoApiContext geoApiContext = new GeoApiContext();
    return geoApiContext.setQueryRateLimit(3)
            .setApiKey("@string/google_maps_key")
            .setConnectTimeout(1, TimeUnit.SECONDS)
            .setReadTimeout(1, TimeUnit.SECONDS)
            .setWriteTimeout(1, TimeUnit.SECONDS);
}
private void addMarkersToMap(DirectionsResult results, GoogleMap mMap) {
    mMap.addMarker(new MarkerOptions().position(new LatLng(results.routes[0].legs[0].startLocation.lat,results.routes[0].legs[0].startLocation.lng)).title(results.routes[0].legs[0].startAddress));
    mMap.addMarker(new MarkerOptions().position(new LatLng(results.routes[0].legs[0].endLocation.lat,results.routes[0].legs[0].endLocation.lng)).title(results.routes[0].legs[0].startAddress)
            .snippet(getEndLocationTitle(results)));
}
private void addPolyline(DirectionsResult results, GoogleMap mMap) {
    List<LatLng> decodedPath = PolyUtil.decode(results.routes[0].overviewPolyline.getEncodedPath());
    mMap.addPolyline(new PolylineOptions().addAll(decodedPath));
}
private String getEndLocationTitle(DirectionsResult results){
    return  "Time :"+ results.routes[0].legs[0].duration.humanReadable + " Distance :" + results.routes[0].legs[0].distance.humanReadable;    }

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

[решено] это было причиной

            .setApiKey("@string/google_maps_key")

это воспринимается как строка, а не как ключ API Google, поэтому t

0 голосов
/ 04 октября 2018

Вы связываете Javascript API Google Directions с используемым вами SDK Map для Android.

Проверьте документ здесь: https://developers.google.com/maps/documentation/android-sdk/signup

В AndroidManifest.xml, добавьте следующий элемент в качестве дочернего элемента, вставив его непосредственно перед закрывающим тегом:

<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="YOUR_API_KEY"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...