<\/HEAD>
Ich habe diese App entwickelt, um einige der Möglichkeiten des kürzlich veröffentlichten ArcGIS Quartz Runtime 100.2.1 SDK für Android zu zeigen – insbesondere seine 3D-Fähigkeiten<\/A>. Die 3D- und Runtime-Teams haben viel Arbeit investiert, um 3D-Daten und Analysen auf den neuesten mobilen Geräten flüssig laufen zu lassen.<\/P><\/P>
Viewshed<\/H2>Die Viewshed-Analyse leistet etwas mehr als das SDK bereitstellt. Zuerst ist jede Analyse auf einen 120°-Bogen begrenzt; jeder Tipp löst drei Analysen für eine vollständige 360°-Abdeckung aus. Außerdem wollte ich den Benutzer direkt in die Mitte der Analyse setzen, als stünde er auf dem Boden – genau das macht die Zoom-Schwebeschaltfläche.
Sobald sich die Kamera in die Szene absenkt, wird die Schwebeschaltfläche zu einer Rückkehr-Schaltfläche, mit der die Kamera zum ursprünglichen Punkt im Raum zurückkehrt.
Unten links auf dem Bildschirm befindet sich außerdem ein Schieberegler, mit dem Sie interaktiv die Viewshed-Distanz ändern können. Damit können Sie verschiedene Sichtbarkeitsszenarien in unterschiedlichen Szenen erkunden; für dichte urbane Gebiete empfiehlt sich ein kleinerer Wert, für ungehinderte ländliche Landschaften ein deutlich größerer.<\/P>
<\/P>Ich wollte das Analyseerlebnis interaktiver gestalten, indem man beobachten kann, wie sich die Analyse bewegt, während man den Finger über den Bildschirm zieht. Das kann eine interessante Übung sein, verwendet aber dieselbe Geste wie das normale Schwenken der Ansicht. Möglicherweise möchten Sie irgendwann schwenken, ohne zuerst in den Standardnavigationsmodus zurückzukehren. Wenn Sie lange drücken – also den Finger etwa eine Sekunde lang ohne Bewegung auf dem Bildschirm halten – sollte unter dem Kompass ein Vier-Pfeile-Symbol erscheinen. Das bedeutet, dass sich die Ansicht jetzt im Schwenkmodus befindet und sich beim Bewegen des Fingers schwenkt (anstatt die Viewshed neu zu berechnen), bis Sie den Finger heben.<\/P><\/P>Sensor-Navigationsmodus<\/H2>Sobald ich mich als Beobachter mitten in einem Viewshed fühlte, dachte ich, es wäre spannend, wenn ich das Gerät selbst kippen und drehen könnte, um die Ansicht zu bewegen – sozusagen ein physisches Sichtfenster in eine virtuelle Szene. Genau das macht der Sensor Navigation-Modus. Er hört auf die gyroskopischen Sensoren des Geräts, erkennt Bewegungen und bewegt entsprechend die Szene. Der Nachteil dieses Modus ist jedoch, dass er so viele Szenendaten anfordern kann, dass Gerät, Netzwerkverbindung oder Szenendienst möglicherweise nicht mithalten können.<\/P><\/>\nPivot Lock<\/>\nWenn Sie ein Gebäude oder anderes besonderes Objekt sehen, können Sie mit Pivot Lock<\/> den Fokus darauf legen und um diesen Punkt rotieren. Aktivieren Sie das Werkzeug, tippen oder ziehen Sie einen Punkt an, und die Ansicht beginnt sich darum zu drehen. Kehren Sie zur Standardnavigation zurück, indem Sie auf die schwebende Aktionstaste tippen.
Durch Tippen irgendwo auf dem Display stoppen Sie die Rotation; dann können Sie erneut tippen oder ziehen, um neu zu starten. Dieses Werkzeug verwendet den SDK-OrbitCameraController<\/> , um diese Funktionalität ohne viel eigenen Code bereitzustellen.<\/>\n
Technische Hinweise
Alle Werkzeuge erweitern die Klasse https:\/\\/developers.arcgis.com\\/android\\/latest\\/api-reference\\/reference\\/com\\/esri\\/arcgisruntime\\/mapping\\/view\\/DefaultSceneViewOnTouchListener.html. Wenn eines ausgewählt wird, reicht eine einzige Codezeile aus, um den neuen Touch Listener auf dem Scene View zu setzen und ihm alle Touch-Gesten zu überlassen bis ein neues Werkzeug gewählt wird.
Während das Manifest OpenGL ES 3.0 oder höher verlangt, ist dies keine strikte Voraussetzung des Runtime SDK (könnte aber in einer zukünftigen Version erforderlich werden). Diese App läuft auch auf Geräten mit OpenGL ES 2, aber solche Geräte sind meist älter und verfügen nicht über GPU-, Speicher- oder Prozessorleistung für flüssige 3D-Anwendungen.
Ich habe einige Open-Source-Bibliotheken verwendet, die unter Apache 2.0 lizenziert sind.
Verfügbarkeit
Der Quellcode dieser App ist in einem öffentlichen Github-Repository verfügbar; finden Sie ihn unter https://github.com/markdeaton/esri-3d-android
Zögern Sie nicht, das Repository zu klonen oder zu forken und nach Belieben zu verwenden. Außerdem werde ich wahrscheinlich ein einmaliges größeres Update für die nächste Version des Esri SDK machen, da diese Version wahrscheinlich einen Großteil des benutzerdefinierten Webszene-Parsings im Code obsolet machen wird.