v2023
Java este un limbaj folosit în dezvoltarea aplicațiilor desktop/web enterprise pe scară largă. Este și limbajul de bază în dezvoltarea aplicațiilor mobile Android.
Pentru a scrie o aplicație în Java cu ArcGIS Maps SDK sunt necesare:
În următoarele etape este prezentat modul de lucru și setup-ul necesar pentru dezvoltarea aplicațiilor Java folosind ArcGIS Maps SDK for Java. https://developers.arcgis.com/java/
Pentru un setup rapid, vom porni de la un proiect starter configurat cu Gradle: https://github.com/Esri/java-gradle-starter-project
Descărcați Java 17 (se poate face ulterior din IntelliJ)
https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html
Descărcați proiectul starter: https://github.com/Esri/java-gradle-starter-project
Configurați IntelliJ să folosească Java 17
File > Settings > Build, Execution, Deployment > Build Tools > Gradle
build.gradle
.
Configurați IntelliJ să folosească Java 17.
Urmăriți indicațiile pentru configurarea proiectului în IntelliJ din: https://github.com/Esri/java-gradle-starter-project
Deschideți proiectul starter.
Deschideți meniul Gradle: View > Tool Windows > Gradle
Rulați task-ul Gradle pentru compilarea și rularea aplicației:
Adăugați API key-ul din ArcGIS Developer pentru inițializarea aplicației:
String yourAPIKey = "my-api-key"; ArcGISRuntimeEnvironment.setApiKey(yourAPIKey);
Felicitări! Ați configurat mediul de dezvoltare pentru lucrul cu ArcGIS în Java. Acum este timpul pentru implementarea funcționalităților aplicației de laborator.
Urmăriți tutorialul ArcGIS Maps SDK for Java.
Creați o aplicație Java care să includă următoarele funcționalități:
if (routeStopsSize == 2) { // remove the mouse clicked event if two stops have been added mapView.setOnMouseClicked(null); routeParameters.setStops(routeStops); // get the route and display it ListenableFuture < RouteResult > routeResultFuture = routeTask.solveRouteAsync(routeParameters); routeResultFuture.addDoneListener(() - > { try { RouteResult result = routeResultFuture.get(); List < Route > routes = result.getRoutes(); if (!routes.isEmpty()) { Route route = routes.get(0); Geometry shape = route.getRouteGeometry(); routeGraphic = new Graphic(shape, new SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, 0xff0000ff, 2)); graphicsOverlay.getGraphics().add(routeGraphic); // get the direction text for each maneuver and display it as a list in the UI route.getDirectionManeuvers().forEach(step - > directionsList.getItems().add(step.getDirectionText())); // reset stops and re-enable mapview interactions once the route task has completed routeStops.clear(); addStopsOnMouseClicked(); } } catch (Exception ex) { ex.printStackTrace(); } }); }