Exemplos do Location Service Places usando o SDK para Java 2.x
Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando o AWS SDK for Java 2.x com o Location Service Places.
Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar perfis de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.
Cada exemplo inclui um link para o código-fonte completo, em que você pode encontrar instruções sobre como configurar e executar o código.
Tópicos
Ações
O código de exemplo a seguir mostra como usar ReverseGeocode.
- SDK para Java 2.x
-
nota
Há mais no GitHub. Encontre o exemplo completo e saiba como configurar e executar no AWSCode Examples Repository
. /** * Performs reverse geocoding using the AWS Geo Places API. * Reverse geocoding is the process of converting geographic coordinates (latitude and longitude) to a human-readable address. * This method uses the latitude and longitude of San Francisco as the input, and prints the resulting address. */ public CompletableFuture<ReverseGeocodeResponse> reverseGeocode() { double latitude = 37.7749; // San Francisco double longitude = -122.4194; logger.info("Use latitude 37.7749 and longitude -122.4194"); // AWS expects [longitude, latitude]. List<Double> queryPosition = List.of(longitude, latitude); ReverseGeocodeRequest request = ReverseGeocodeRequest.builder() .queryPosition(queryPosition) .build(); CompletableFuture<ReverseGeocodeResponse> futureResponse = getGeoPlacesClient().reverseGeocode(request); return futureResponse.whenComplete((response, exception) -> { if (exception != null) { Throwable cause = exception.getCause(); if (cause instanceof software.amazon.awssdk.services.geoplaces.model.ValidationException) { throw new CompletionException("A validation error occurred: " + cause.getMessage(), cause); } throw new CompletionException("Error performing reverse geocoding", exception); } response.resultItems().forEach(result -> logger.info("The address is: " + result.address().label()) ); }); }-
Consulte detalhes da API em ReverseGeocode na Referência de API do AWS SDK for Java 2.x.
-
O código de exemplo a seguir mostra como usar SearchNearby.
- SDK para Java 2.x
-
nota
Há mais no GitHub. Encontre o exemplo completo e saiba como configurar e executar no AWSCode Examples Repository
. /** * Performs a nearby places search based on the provided geographic coordinates (latitude and longitude). * The method sends an asynchronous request to search for places within a 1-kilometer radius of the specified location. * The results are processed and printed once the search completes successfully. */ public CompletableFuture<SearchNearbyResponse> searchNearBy() { double latitude = 37.7749; // San Francisco double longitude = -122.4194; List<Double> queryPosition = List.of(longitude, latitude); // Set up the request for searching nearby places. SearchNearbyRequest request = SearchNearbyRequest.builder() .queryPosition(queryPosition) // Set the position .queryRadius(1000L) // Radius in meters (1000 meters = 1 km). .build(); return getGeoPlacesClient().searchNearby(request) .whenComplete((response, exception) -> { if (exception != null) { Throwable cause = exception.getCause(); if (cause instanceof software.amazon.awssdk.services.geoplaces.model.ValidationException) { throw new CompletionException("A validation error occurred: " + cause.getMessage(), cause); } throw new CompletionException("Error performing place search", exception); } // Process the response and print the results. response.resultItems().forEach(result -> { logger.info("Place Name: " + result.placeType().name()); logger.info("Address: " + result.address().label()); logger.info("Distance: " + result.distance() + " meters"); logger.info("-------------------------"); }); }); }-
Consulte detalhes da API em SearchNearby na Referência de API do AWS SDK for Java 2.x.
-
O código de exemplo a seguir mostra como usar SearchText.
- SDK para Java 2.x
-
nota
Há mais no GitHub. Encontre o exemplo completo e saiba como configurar e executar no AWSCode Examples Repository
. /** * Searches for a place using the provided search query and prints the detailed information of the first result. * * @param searchQuery the search query to be used for the place search (ex, coffee shop) */ public CompletableFuture<Void> searchText(String searchQuery) { double latitude = 37.7749; // San Francisco double longitude = -122.4194; List<Double> queryPosition = List.of(longitude, latitude); SearchTextRequest request = SearchTextRequest.builder() .queryText(searchQuery) .biasPosition(queryPosition) .build(); return getGeoPlacesClient().searchText(request) .thenCompose(response -> { if (response.resultItems().isEmpty()) { logger.info("No places found."); return CompletableFuture.completedFuture(null); } // Get the first place ID String placeId = response.resultItems().get(0).placeId(); logger.info("Found Place with id: " + placeId); // Fetch detailed info using getPlace GetPlaceRequest getPlaceRequest = GetPlaceRequest.builder() .placeId(placeId) .build(); return getGeoPlacesClient().getPlace(getPlaceRequest) .thenAccept(placeResponse -> { logger.info("Detailed Place Information:"); logger.info("Name: " + placeResponse.placeType().name()); logger.info("Address: " + placeResponse.address().label()); if (placeResponse.foodTypes() != null && !placeResponse.foodTypes().isEmpty()) { logger.info("Food Types:"); placeResponse.foodTypes().forEach(foodType -> { logger.info(" - " + foodType); }); } else { logger.info("No food types available."); } logger.info("-------------------------"); }); }) .exceptionally(exception -> { Throwable cause = exception.getCause(); if (cause instanceof software.amazon.awssdk.services.geoplaces.model.ValidationException) { throw new CompletionException("A validation error occurred: " + cause.getMessage(), cause); } throw new CompletionException("Error performing place search", exception); }); }-
Consulte detalhes da API em SearchText na Referência de API do AWS SDK for Java 2.x.
-