Tutorial: Sitzungs- und geräteübergreifendes Freigeben von RaumankernTutorial: Share spatial anchors across sessions and devices

Azure Spatial Anchors ist ein plattformübergreifender Entwicklerdienst, mit dem Sie Mixed Reality-Umgebungen mit Objekten erstellen können, die ihre Position im Zeitverlauf geräteübergreifend beibehalten.Azure Spatial Anchors is a cross-platform developer service with which you can create mixed-reality experiences by using objects that persist their location across devices over time.

In diesem Tutorial verwenden Sie Azure Spatial Anchors, um im Rahmen einer Sitzung Anker zu erstellen und diese anschließend auf dem gleichen oder auf einem anderen Gerät zu finden.In this tutorial, you use Azure Spatial Anchors to create anchors during one session and then locate them on the same device or a different one. Die gleichen Anker können auch von mehreren Geräten am gleichen Ort und zur gleichen Zeit gefunden werden.The same anchors can also be located by multiple devices in the same place and at the same time.

Animation, die mit einem mobilen Gerät erstellte Raumanker zeigt, die im Laufe der Tage mit einem anderen Gerät verwendet werden.

In diesem Tutorial lernen Sie Folgendes:In this tutorial, you'll learn how to:

  • Bereitstellen einer ASP.NET Core-Web-App in Azure, mit der Sie Anker freigeben können, und Speichern der Anker im Speicher für einen bestimmten ZeitraumDeploy an ASP.NET Core web app in Azure that you can use to share anchors, and store the anchors in memory for a specified period of time.
  • Konfigurieren der AzureSpatialAnchorsLocalSharedDemo-Szene im Unity-Beispiel aus den Schnellstartanleitungen, um die Web-App für die Freigabe von Ankern (Sharing Anchors-Web-App) zu nutzenConfigure the AzureSpatialAnchorsLocalSharedDemo scene within the Unity sample from our quickstarts to take advantage of the Sharing Anchors web app.
  • Bereitstellen und Ausführen der Anker auf einem oder mehreren GerätenDeploy and run the anchors to one or more devices.

Wenn Sie kein Azure-Abonnement besitzen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

VoraussetzungenPrerequisites

Stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind, bevor Sie mit diesem Tutorial beginnen:Before you begin this tutorial, be sure you've met the following prerequisites:

  • Sie haben die Informationen unter Azure Spatial Anchors-Übersicht gelesen.Read the Azure Spatial Anchors overview.
  • Sie haben eine der fünfminütigen Schnellstartanleitungen absolviert.Complete one of the 5-minute quickstarts.

    Hinweis

    In den Schnellstartanleitungen zu Android/NDK und iOS/Swift werden die in diesem Tutorial erläuterten Funktionen derzeit nicht vorgestellt.Android/NDK and iOS/Swift quickstarts don't currently showcase the capabilities explained in this tutorial.

  • Sie besitzen die folgenden Grundkenntnisse:A basic knowledge of either:
    • ARCore, wenn Sie Android verwendenARCore if you're using Android.
    • ARKit, wenn Sie iOS verwendenARKit if you're using iOS.
  • Sie besitzen einen Windows-Computer mit Visual Studio 2019 oder höher und der Workload für ASP.NET und Webentwicklung.A Windows computer with Visual Studio 2019 or later, and the ASP.NET and web development workload.
  • Das .NET Core 3.1 SDKThe .NET Core 3.1 SDK.
  • Sie haben mindestens ein Gerät (iOS oder Android) zum Bereitstellen und Ausführen einer App: HoloLens, HoloLens 2, iOS oder Android.One or more of the following devices on which to deploy and run an app: HoloLens, HoloLens 2, iOS, or Android.

Hinweis

Sie verwenden in diesem Tutorial zwar Unity und eine ASP.NET Core-Web-App, aber dieser Ansatz dient nur als Beispiel für die geräteübergreifende Freigabe von Azure Spatial Anchors-Bezeichnern.You'll be using Unity and an ASP.NET Core web app in this tutorial, but the approach here is only to provide an example of how to share Azure Spatial Anchors identifiers across other devices. Sie können auch andere Sprachen und Back-End-Technologien verwenden, um dieses Ziel zu erreichen.You can use other languages and back-end technologies to achieve the same goal.

Erstellen einer Spatial Anchors-RessourceCreate a Spatial Anchors resource

Öffnen Sie das Azure-Portal.Go to the Azure portal.

Wählen Sie im linken Bereich Ressource erstellen aus.On the left pane, select Create a resource.

Suchen Sie über das Suchfeld nach Spatial Anchors.Use the search box to search for Spatial Anchors.

Screenshot: Ergebnisse einer Suche nach Spatial Anchors

Wählen Sie Spatial Anchors und dann Erstellen aus.Select Spatial Anchors, and then select Create.

Führen Sie im Bereich Spatial Anchors-Konto die folgenden Schritte aus:On the Spatial Anchors Account pane, do the following:

  • Geben Sie einen eindeutigen Ressourcennamen in regulären alphanumerischen Zeichen ein.Enter a unique resource name by using regular alphanumeric characters.

  • Wählen Sie das Abonnement aus, an das die Ressource angefügt werden soll.Select the subscription that you want to attach the resource to.

  • Erstellen Sie eine Ressourcengruppe durch Auswählen von Neu erstellen.Create a resource group by selecting Create new. Nennen Sie sie myResourceGroup, und wählen Sie OK aus.Name it myResourceGroup, and then select OK.

    Eine Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen wie Web-Apps, Datenbanken und Speicherkonten bereitgestellt und verwaltet werden.A resource group is a logical container into which Azure resources, such as web apps, databases, and storage accounts, are deployed and managed. Sie können z.B. die gesamte Ressourcengruppe später in einem einfachen Schritt löschen.For example, you can choose to delete the entire resource group in one simple step later.

  • Wählen Sie einen Standort (Region) für die Ressource aus.Select a location (region) in which to place the resource.

  • Wählen Sie Neu aus, um mit der Ressourcenerstellung zu beginnen.Select New to begin creating the resource.

Screenshot: Spatial Anchors-Bereich zum Erstellen einer Ressource

Nachdem die Ressource erstellt wurde, zeigt das Azure-Portal an, dass die Bereitstellung abgeschlossen ist.After the resource is created, the Azure portal shows that your deployment is complete.

Screenshot: Abgeschlossene Ressourcenbereitstellung

Wählen Sie Zu Ressource wechseln aus.Select Go to resource. Nun können Sie die Ressourceneigenschaften anzeigen.You can now view the resource properties.

Kopieren Sie den Wert für Konto-ID der Ressource zur späteren Verwendung in einen Text-Editor.Copy the resource's Account ID value into a text editor for later use.

Screenshot des Bereichs „Ressourceneigenschaften“

Kopieren Sie außerdem den Wert für Kontodomäne der Ressource zur späteren Verwendung in einen Text-Editor.Also copy the resource's Account Domain value into a text editor for later use.

Screenshot: Wert für „Kontodomäne“ der Ressource

Wählen Sie unter Einstellungen die Option Schlüssel aus.Under Settings, select Key. Kopieren Sie die Werte für Primärschlüssel und Kontoschlüssel zur späteren Verwendung in einen Text-Editor.Copy the Primary key value, Account Key, into a text editor for later use.

Screenshot: Bereich „Schlüssel“ für das Konto

Herunterladen des BeispielprojektsDownload the sample project

Klonen Sie das Beispielrepository, indem Sie die folgenden Befehle ausführen:Clone the samples repository by running the following commands:

git clone https://github.com/Azure/azure-spatial-anchors-samples.git
cd ./azure-spatial-anchors-samples

Bereitstellen des Diensts für die Freigabe von Ankern (Sharing Anchors)Deploy the Sharing Anchors service

Öffnen Sie Visual Studio und dann das Projekt im Ordner Sharing\SharingServiceSample.Open Visual Studio, and then open the project in the Sharing\SharingServiceSample folder.

Öffnen des Veröffentlichungs-AssistentenOpen the publish wizard

Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt SharingService, und wählen Sie dann Veröffentlichen aus.In Solution Explorer, right-click the SharingService project, and then select Publish.

Der Veröffentlichungs-Assistent wird gestartet.The Publish Wizard starts.

Wählen Sie App Service > Veröffentlichen aus, um den Bereich App Service erstellen zu öffnen.Select App Service > Publish to open the Create App Service pane.

Anmelden bei AzureSign in to Azure

Melden Sie sich beim Azure-Portal an.Sign in to the Azure portal.

Wählen Sie im Bereich App Service erstellen die Option Konto hinzufügen aus, und melden Sie sich bei Ihrem Azure-Abonnement an.On the Create App Service pane, select Add an account, and then sign in to your Azure subscription. Wenn Sie bereits angemeldet sind, wählen Sie in der Dropdownliste das gewünschte Konto aus.If you're already signed in, select the account you want from the drop-down list.

Hinweis

Wenn Sie bereits angemeldet sind, wählen Sie noch nicht Erstellen aus.If you're already signed in, don't select Create yet.

Erstellen einer RessourcengruppeCreate a resource group

Eine Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen wie Web-Apps, Datenbanken und Speicherkonten bereitgestellt und verwaltet werden.A resource group is a logical container into which Azure resources, such as web apps, databases, and storage accounts, are deployed and managed. Sie können z.B. die gesamte Ressourcengruppe später in einem einfachen Schritt löschen.For example, you can choose to delete the entire resource group in one simple step later.

Wählen Sie neben Ressourcengruppe die Option Neu aus.Next to Resource Group, select New.

Nennen Sie die Ressourcengruppe myResourceGroup, und wählen Sie anschließend OK aus.Name the resource group myResourceGroup, and then select OK.

Wie erstelle ich einen Plan?Create an App Service plan

Ein App Service-Plan gibt den Standort, die Größe und die Funktionen der Webserverfarm an, die Ihre App hostet.An App Service plan specifies the location, size, and features of the web server farm that hosts your app. Beim Hosten mehrerer Apps können Sie Geld sparen, indem Sie die Web-Apps für die gemeinsame Verwendung eines einzelnen App Service-Plans konfigurieren.You can save money when you host multiple apps by configuring the web apps to share a single App Service plan.

In App Service-Plänen wird Folgendes definiert:App Service plans define:

  • Region (z.B. „Europa, Norden“, „USA, Osten“ oder „Asien, Südosten“)Region (for example: North Europe, East US, or Southeast Asia)
  • Instanzgröße (klein, mittel, groß)Instance size (small, medium, or large)
  • Skalierung (1 bis 20 Instanzen)Scale count (1 to 20 instances)
  • SKU (Free, Shared, Basic, Standard oder Premium)SKU (Free, Shared, Basic, Standard, or Premium)

Wählen Sie neben Hostingplan die Option Neu aus.Next to Hosting Plan, select New.

Verwenden Sie im Bereich Hostingplan konfigurieren die folgenden Einstellungen:On the Configure Hosting Plan pane, use these settings:

EinstellungSetting Vorgeschlagener WertSuggested value BESCHREIBUNGDescription
App Service-PlanApp Service plan MySharingServicePlanMySharingServicePlan Name des App Service-PlansName of the App Service plan
StandortLocation USA (Westen)West US Das Rechenzentrum, in dem die Web-App gehostet wirdThe datacenter where the web app is hosted
SizeSize KostenlosFree Der Tarif, der die Hostingfunktionen festlegtThe pricing tier that determines hosting features

Klicken Sie auf OK.Select OK.

Erstellen und Veröffentlichen der Web-AppCreate and publish the web app

Geben Sie unter App-Name einen eindeutigen App-Namen ein.In App Name, enter a unique app name. Gültige Zeichen sind die Buchstaben a-z, die Ziffern 0-9 und Bindestriche (-). Alternativ können Sie den automatisch generierten eindeutigen Namen übernehmen.Valid characters are a-z, 0-9, and dashes (-), or accept the automatically generated unique name. Die URL der Web-App lautet https://<app_name>.azurewebsites.net, wobei <app_name> der Name Ihrer App ist.The URL of the web app is https://<app_name>.azurewebsites.net, where <app_name> is your app name.

Wählen Sie Erstellen aus, um mit der Erstellung der Azure-Ressourcen zu beginnen.Select Create to start creating the Azure resources.

Nach Abschluss des Assistenten wird die ASP.NET Core-Web-App in Azure veröffentlicht und anschließend im Standardbrowser geöffnet.After the wizard finishes, it publishes the ASP.NET Core web app to Azure and then opens the app in your default browser.

Screenshot: Veröffentlichte ASP.NET-Web-App in Azure

Der App-Name, den Sie in diesem Abschnitt verwendet haben, wird als URL-Präfix mit dem Format https://<app_name>.azurewebsites.net verwendet.The app name you used in this section is used as the URL prefix in the format https://<app_name>.azurewebsites.net. Kopieren Sie diese URL zur späteren Verwendung in einen Text-Editor.Copy this URL to a text editor for later use.

Bereitstellen der Beispiel-AppDeploy the sample app

Das Java-Android-Beispiel unterstützt die geräteübergreifende Freigabe.The Java Android sample supports sharing across devices.

Öffnen Sie in Android Studio die Datei SharedActivity.java aus dem Ordner mit den Beispielen.In Android Studio, open the SharedActivity.java file from the samples folder.

Geben Sie die URL, die Sie im vorherigen Schritt (aus der Azure-Bereitstellung Ihrer ASP.NET-Web-App) kopiert haben, in der Datei SharedActivity.java als Wert für SharingAnchorsServiceUrl ein.Enter the URL that you copied in the previous step (from your ASP.NET web app Azure deployment) as the value for SharingAnchorsServiceUrl in the SharedActivity.java file.

Ersetzen Sie index.html in der URL durch api/anchors.Replace the index.html in the URL with api/anchors. Diese sollte wie folgt aussehen: https://<app_name>.azurewebsites.net/api/anchors.It should look like this: https://<app_name>.azurewebsites.net/api/anchors.

Stellen Sie die App auf Ihrem Gerät bereit.Deploy the app to your device.

Wählen Sie nach dem Start der App im Bereich Choose A Demo (Demo auswählen) mithilfe des nach links oder rechts zeigenden Pfeils die Option LocalShare aus.After the app starts, on the Choose A Demo pane, use the left and right arrows to select the LocalShare option. Tippen Sie dann auf Go! (Los!).Then tap Go!.

Befolgen Sie die Anweisungen in der App.Follow the instructions in the app. Sie können die Option Create & Share Anchor (Anker erstellen und freigeben) oder Locate Shared Anchor (Freigegebenen Anker suchen) auswählen.You can select Create & Share Anchor or Locate Shared Anchor.

Mit der Option Create & Share Anchor (Anker erstellen und freigeben) können Sie einen Anker erstellen und in Ihrem Freigabedienst speichern.With Create & Share Anchor, you can create an anchor and save it to your sharing service. Es wird ein Bezeichner für den Anker zurückgegeben, mit dem Sie ihn aus dem Freigabedienst abrufen können.In return, you will get back an identifier for it that you can use to retrieve it from the sharing service. Anschließend können Sie das zweite Szenario (Locate Shared Anchor (Freigegebenen Anker suchen)) auf Ihrem Gerät oder auf einem anderen Gerät ausführen.You can then run the second scenario, Locate Shared Anchor, from either your device or a different one.

Mit der Option Locate Shared Anchor (Freigegebenen Anker suchen) können Sie zuvor freigegebene Anker mithilfe des oben erwähnten Bezeichners suchen.With Locate Shared Anchor, you can locate previously shared anchors by entering the identifier mentioned earlier. Nachdem Sie sich für ein Szenario entschieden haben, führt Sie die App durch die erforderlichen Schritte.After you pick your scenario, the app will guide you with further instructions. So werden Sie beispielsweise dazu aufgefordert, auf Ihrem Gerät zu navigieren, um Umgebungsinformationen zu sammeln.For example, you'll be asked to move your device around to collect environment information. Später platzieren Sie einen Anker, warten, bis er gespeichert wird, starten eine neue Sitzung und suchen ihn dann.Later on, you'll place an anchor in the world, wait for it to save, start a new session, and then locate it.

Bereinigen von RessourcenClean up resources

In den vorherigen Schritten haben Sie Azure-Ressourcen in einer Ressourcengruppe erstellt.In the preceding steps, you created Azure resources in a resource group. Wenn Sie diese Ressourcen in Zukunft nicht mehr benötigen, können Sie sie löschen, indem Sie die Ressourcengruppe löschen.If you don't expect to need these resources in the future, you can delete them by deleting the resource group.

Wählen Sie im Azure-Portalmenü oder auf der Startseite die Option Ressourcengruppen aus.From the Azure portal menu or Home page, select Resource groups. Wählen Sie auf der Seite Ressourcengruppen die Option myResourceGroup aus.Then, on the Resource groups page, select myResourceGroup.

Stellen Sie auf der Seite myResourceGroup sicher, dass die Ressourcen aufgelistet sind, die Sie löschen möchten.On the myResourceGroup page, make sure that the listed resources are the ones you want to delete.

Wählen Sie die Option Löschen aus, geben Sie zur Bestätigung im Textfeld myResourceGroup ein, und wählen Sie anschließend Löschen aus.Select Delete resource group, type myResourceGroup in the text box to confirm, and then select Delete.

Nächste SchritteNext steps

In diesem Tutorial haben Sie eine ASP.NET Core-Web-App in Azure bereitgestellt sowie eine Unity-App konfiguriert und bereitgestellt.In this tutorial, you deployed an ASP.NET Core web app in Azure, and you configured and deployed a Unity app. Sie haben Raumanker mit der App erstellt und mithilfe der ASP.NET Core-Web-App für andere Geräte freigegeben.You created spatial anchors with the app, and you shared them with other devices by using your ASP.NET Core web app.

Sie können Ihre ASP.NET Core-Web-App so optimieren, dass sie Azure Cosmos DB zur Speicherung der freigegebenen Raumankerbezeichner nutzt.You can improve your ASP.NET Core web app so that it uses Azure Cosmos DB to persist the storage of your shared spatial anchors identifiers. Indem Sie Unterstützung für Azure Cosmos DB hinzufügen, können Sie noch heute Ihre ASP.NET Core-Web-App einen Anker erstellen lassen.By adding Azure Cosmos DB support, you can have your ASP.NET Core web app create an anchor today. Anschließend können Sie mithilfe des Ankerbezeichners, der in Ihrer Web-App gespeichert ist, festlegen, dass die App einige Tage später den Anker erneut sucht.Then, by using the anchor identifier that's stored in your web app, you can have the app return days later to locate the anchor again.