Laboratorul 06. ArcGIS Maps SDK for Java

Obiective laborator

  • Familiarizare cu ArcGIS Maps SDK for Java
  • Înțelegerea modului de integrare a funcționalităților de bază
    • Hărți și vizualizări
    • Layere și date
    • Interogări și filtrări
  • Înțelegerea modului de realizare a unei aplicații desktop Java
    • Accesarea layer-elor create în ArcGIS online
    • Adăugarea layer-elor în aplicație

Java

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 cei care au nevoie de o introducere în Java, găsiți tutoriale la următoarele adrese:

Pentru a scrie o aplicație în Java cu ArcGIS Maps SDK sunt necesare:

Setup

Î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

Instalare

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

Proiectul are la bază JavaFX. Acest framework permite realizarea aplicațiilor Java portabile, cu interfață grafică accelerată hardware. Mai multe informații despre JavaFX găsiți la următoarele adrese:

Configurare

Configurați IntelliJ să folosească Java 17

File > Settings > Build, Execution, Deployment > Build Tools > Gradle

Proiectul este configurat prin Gradle. Acesta va descărca și instala automat dependențele proiectului specificate în fișierul 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

Pentru mai multe exemple, puteți descărca repo-ul de aici: https://github.com/Esri/arcgis-runtime-samples-java/tree/main

  • Atenție: Este foarte mare - nu se recomandă descărcarea în timpul orei de laborator
  • În repository este de fapt o colecție de proiecte.
  • Deschideți proiectul /map/display-map din IntelliJ (File > Open)

Compilare și rulare

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);

Setup finalizat

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.

Task

Task 1. Map Viewer

Urmăriți tutorialul ArcGIS Maps SDK for Java.

Creați o aplicație Java care să includă următoarele funcționalități:

[Lab 7] Task 2. Scene Viewer

[Lab 7] Task 3. Funcționalități adiționale

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();
        }
    });
}

Resurse

isi/laboratoare/06.txt · Last modified: 2023/11/12 22:30 by alexandru.predescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0