D’autres exemples de kits AWS SDK sont disponibles dans le référentiel GitHub AWS Doc SDK Examples.
Exemples de code pour Amazon Location utilisant des kits AWS SDK
Les exemples de code suivants montrent comment utiliser Amazon Location Service avec un kit de développement logiciel (SDK) AWS.
Les principes de base sont des exemples de code qui vous montrent comment effectuer les opérations essentielles au sein d’un service.
Les actions sont des extraits de code de programmes plus larges et elles doivent être exécutées dans leur contexte. Alors que les actions vous indiquent comment appeler des fonctions de service individuelles, vous pouvez les voir en contexte dans leurs scénarios associés.
Ressources supplémentaires
Mise en route
Les exemples de code suivants montrent comment démarrer avec Amazon Location Service.
- Java
-
- SDK pour Java 2.x
-
/**
* Before running this Java V2 code example, set up your development
* environment, including your credentials.
*
* For more information, see the following documentation topic:
*
* https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
*
* In addition, you need to create a collection using the AWS Management
* console. For information, see the following documentation.
*
* https://docs.aws.amazon.com/location/latest/developerguide/geofence-gs.html
*/
public class HelloLocation {
private static LocationAsyncClient locationAsyncClient;
private static final Logger logger = LoggerFactory.getLogger(HelloLocation.class);
// This Singleton pattern ensures that only one `LocationClient`
// instance.
private static LocationAsyncClient getClient() {
if (locationAsyncClient == null) {
SdkAsyncHttpClient httpClient = NettyNioAsyncHttpClient.builder()
.maxConcurrency(100)
.connectionTimeout(Duration.ofSeconds(60))
.readTimeout(Duration.ofSeconds(60))
.writeTimeout(Duration.ofSeconds(60))
.build();
ClientOverrideConfiguration overrideConfig = ClientOverrideConfiguration.builder()
.apiCallTimeout(Duration.ofMinutes(2))
.apiCallAttemptTimeout(Duration.ofSeconds(90))
.retryStrategy(RetryMode.STANDARD)
.build();
locationAsyncClient = LocationAsyncClient.builder()
.httpClient(httpClient)
.overrideConfiguration(overrideConfig)
.build();
}
return locationAsyncClient;
}
public static void main(String[] args) {
final String usage = """
Usage:
<collectionName>
Where:
collectionName - The Amazon location collection name.
""";
if (args.length != 1) {
System.out.println(usage);
System.exit(1);
}
String collectionName = args[0];
listGeofences(collectionName);
}
/**
* Lists geofences from a specified geofence collection asynchronously.
*
* @param collectionName The name of the geofence collection to list geofences from.
* @return A {@link CompletableFuture} representing the result of the asynchronous operation.
* The future completes when all geofences have been processed and logged.
*/
public static CompletableFuture<Void> listGeofences(String collectionName) {
ListGeofencesRequest geofencesRequest = ListGeofencesRequest.builder()
.collectionName(collectionName)
.build();
ListGeofencesPublisher paginator = getClient().listGeofencesPaginator(geofencesRequest);
CompletableFuture<Void> future = paginator.subscribe(response -> {
if (response.entries().isEmpty()) {
logger.info("No Geofences were found in the collection.");
} else {
response.entries().forEach(geofence ->
logger.info("Geofence ID: " + geofence.geofenceId())
);
}
});
return future;
}
}
- JavaScript
-
- Kit SDK pour JavaScript (v3)
-
import { fileURLToPath } from "node:url";
import {
LocationClient,
ListGeofenceCollectionsCommand,
} from "@aws-sdk/client-location";
/**
* Lists geofences from a specified geofence collection asynchronously.
*/
export const main = async () => {
const region = "eu-west-1";
const locationClient = new LocationClient({ region: region });
const listGeofenceCollParams = {
MaxResults: 100,
};
try {
const command = new ListGeofenceCollectionsCommand(listGeofenceCollParams);
const response = await locationClient.send(command);
const geofenceEntries = response.Entries;
if (geofenceEntries.length === 0) {
console.log("No Geofences were found in the collection.");
} else {
for (const geofenceEntry of geofenceEntries) {
console.log(`Geofence ID: ${geofenceEntry.CollectionName}`);
}
}
} catch (error) {
console.error(
`A validation error occurred while creating geofence: ${error} \n Exiting program.`,
);
return;
}
};
- Kotlin
-
- SDK pour Kotlin
-
/**
Before running this Kotlin code example, set up your development environment,
including your credentials.
For more information, see the following documentation topic:
https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/setup.html
In addition, you need to create a collection using the AWS Management
console. For information, see the following documentation.
https://docs.aws.amazon.com/location/latest/developerguide/geofence-gs.html
*/
suspend fun main(args: Array<String>) {
val usage = """
Usage:
<colletionName>
Where:
colletionName - The Amazon location collection name.
"""
if (args.size != 1) {
println(usage)
exitProcess(0)
}
val colletionName = args[0]
listGeofences(colletionName)
}
/**
* Lists the geofences for the specified collection name.
*
* @param collectionName the name of the geofence collection
*/
suspend fun listGeofences(collectionName: String) {
val request = ListGeofencesRequest {
this.collectionName = collectionName
}
LocationClient.fromEnvironment { region = "us-east-1" }.use { client ->
val response = client.listGeofences(request)
val geofences = response.entries
if (geofences.isNullOrEmpty()) {
println("No Geofences found")
} else {
geofences.forEach { geofence ->
println("Geofence ID: ${geofence.geofenceId}")
}
}
}
}