Проблема с API направления Google Map после последнего обновления от Google
Мне нужно построить направление в моем приложении для Android, чтобы: 1- я получил новый ключ из консоли google api 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 ответа
[Решено] это было причиной
.setApiKey("@string/google_maps_key")
он принимает это как строку, а не ключ API Google так т
Вы связываете Javascript API Google Directions с Map SDK для 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"/>