Руководство по Совместное использование Пространственных привязок Azure между сеансами и устройствамиTutorial: Share Azure Spatial Anchors across sessions and devices

В этом руководстве описано, как использовать Пространственные привязки Azure, чтобы создавать привязки во время одного сеанса, а затем обнаруживать их на том же или на другом устройстве.In this tutorial, you'll learn how to use Azure Spatial Anchors to create anchors during one session and then locate them, on the same device or on a different one. Те же самые привязки могут быть одновременно обнаружены несколькими устройствами в одном и том же расположении.These same anchors could also be located by multiple devices in the same place and at the same time.

Сохраняемость

"Пространственные привязки Azure" — это кроссплатформенная служба разработчика, которая позволяет создавать среды смешанной реальности с применением объектов, не меняющих своего расположения на устройствах с течением времени.Azure Spatial Anchors is a cross-platform developer service that allows you to create mixed reality experiences using objects that persist their location across devices over time. По завершении роботы с этим руководством у вас будет приложение, которое можно развернуть на двух или более устройствах.When you're finished, you'll have an app that can be deployed to two or more devices. Пространственные привязки Azure, созданные одним экземпляром, могут совместно использоваться другими экземплярами.Azure Spatial Anchors created by one instance can be shared to the others.

Вы узнаете, как:You'll learn how to:

  • Развернуть веб-приложение ASP.NET Core в Azure, которое можно использовать для обмена привязками, храня их в памяти в течение некоторого времени.Deploy an ASP.NET Core Web App in Azure that can be used to share anchors, storing them in memory for a duration of time.
  • Настроить сцену AzureSpatialAnchorsLocalSharedDemo в примере Unity из наших кратких руководств, чтобы воспользоваться преимуществами веб-приложения для совместного использования пространственных привязок.Configure the AzureSpatialAnchorsLocalSharedDemo scene within the Unity Sample from our Quickstarts to take advantage of the Sharing Anchors Web App.
  • развернуть и запустить привязку на одном или нескольких устройствах.Deploy and run to one or more devices.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начать работу.If you don't have an Azure subscription, create a free account before you begin.

Предварительные требованияPrerequisites

В рамках этого руководства вам потребуются:To complete this tutorial, make sure you have:

Хотя в этом руководстве рассматривается приложение Unity и веб-приложение ASP.NET Core, они представлены лишь в качестве примера того, как можно совместно использовать идентификаторы пространственных привязок Azure на других устройствах.It's worth noticing that, although you'll be using Unity and an ASP.NET Core Web App in this Tutorial, it is only to show an example on how to share Azure Spatial Anchor identifiers across other devices. Вы можете использовать другие языки и серверные технологии в тех же целях.You can use other languages and back-end technologies to achieve the same goal. Веб-приложение ASP.NET Core, используемое в этом руководстве, зависит от пакета SDK.NET Core 2.2.Also, the ASP.NET Core Web App used in this Tutorial has a dependency on .NET Core 2.2 SDK. Оно отлично работает в обычных веб-приложениях Azure (для Windows), но в настоящее время не работает в веб-приложениях Azure для Linux.It runs fine on regular Azure Web Apps (for Windows), but will currently not work on Azure Web Apps for Linux.

Создание ресурса Пространственных привязокCreate a Spatial Anchors resource

Перейдите на портал Azure.Go to the Azure portal.

В левой области навигации портала Azure нажмите Создать ресурс.In the left navigation pane in the Azure portal, select Create a resource.

Выполните поиск по запросу Пространственные привязки с помощью поля поиска.Use the search box to search for Spatial Anchors.

Поиск Пространственных привязок

Нажмите Пространственные привязки.Select Spatial Anchors. В диалоговом окне выберите Создать.In the dialog box, select Create.

В диалоговом окне Учетная запись Пространственных привязок:In the Spatial Anchors Account dialog box:

  • Введите уникальное имя ресурса, используя обычные буквенно-цифровые символы.Enter a unique resource name, using regular alphanumeric characters.

  • Выберите подписку, к которой нужно присоединить ресурс.Select the subscription that you want to attach the resource to.

  • Создайте группу ресурсов, нажав Создать.Create a resource group by selecting Create new. Назовите ее myResourceGroup и нажмите ОК.Name it myResourceGroup and select OK. Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure (веб-приложений, баз данных и учетных записей хранения) и управление ими.A resource group is a logical container into which Azure resources like web apps, databases, and storage accounts are deployed and managed. Например, в дальнейшем можно удалить всю группу ресурсов при помощи одного простого действия.For example, you can choose to delete the entire resource group in one simple step later.

  • Выберите расположение (регион), в котором будет размещен ресурс.Select a location (region) in which to place the resource.

  • Выберите Создать, чтобы начать создание ресурса.Select New to begin creating the resource.

    Создание ресурса

После создания ресурса на портале Azure отобразится оповещение о завершении развертывания.After the resource is created, Azure Portal will show that your deployment is complete. Щелкните Перейти к ресурсу.Click Go to resource.

Развертывание завершено

Теперь можно просмотреть свойства ресурса.Then, you can view the resource properties. Скопируйте значение идентификатора учетной записи ресурса в текстовый редактор, так как оно понадобится позднее.Copy the resource's Account ID value into a text editor because you'll need it later.

Свойства ресурса

Скопируйте также значение домена учетной записи ресурса в текстовый редактор, так как оно понадобится позднее.Also copy the resource's Account Domain value into a text editor because you'll need it later.

Домен учетной записи

В меню Параметры выберите Ключ.Under Settings, select Key. Скопируйте значение первичного ключа в текстовый редактор.Copy the Primary key value into a text editor. Это значение Account Key.This value is the Account Key. Он понадобится вам позднее.You'll need it later.

Ключ учетной записи

Загрузка примера проектаDownload the sample project

Клонируйте репозиторий примеров, выполнив следующие команды: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

Развертывание службы совместного использования привязокDeploy your Sharing Anchors Service

Откройте Visual Studio, а затем откройте проект в папке Sharing\SharingServiceSample.Open Visual Studio, and open the project at the Sharing\SharingServiceSample folder.

Запуск мастера публикацииOpen the publish wizard

В обозревателе решений щелкните правой кнопкой мыши проект SharingService и выберите пункт Опубликовать.In Solution Explorer, right-click the SharingService project and select Publish.

Запустится мастер публикации.The Publish Wizard starts. Выберите Служба приложений > Опубликовать, чтобы открыть диалоговое окно Создание службы приложений.Select App Service > Publish to open the Create App Service dialog box.

Вход в AzureSign in to Azure

В диалоговом окне Создание службы приложений выберите Добавить учетную запись и войдите в подписку Azure.In the Create App Service dialog box, select Add an account and sign in to your Azure subscription. Если вы уже вошли, выберите нужную учетную запись из раскрывающегося списка.If you're already signed in, select the account you want from the drop-down list.

Примечание

Если вы уже выполнили вход, пока не нажимайте кнопку Создать.If you're already signed in, don't select Create yet.

Создание группы ресурсовCreate a resource group

Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure (веб-приложений, баз данных и учетных записей хранения) и управление ими.A resource group is a logical container into which Azure resources like web apps, databases, and storage accounts are deployed and managed. Например, в дальнейшем можно удалить всю группу ресурсов при помощи одного простого действия.For example, you can choose to delete the entire resource group in one simple step later.

Рядом с группой ресурсов выберите команду Создать.Next to Resource Group, select New.

Присвойте группе ресурсов имя myResourceGroup и нажмите кнопку ОК.Name the resource group myResourceGroup and select OK.

Создание плана службы приложенийCreate an App Service plan

План службы приложений указывает расположение, размер и функции фермы веб-серверов, в которой размещается приложение.An App Service plan specifies the location, size, and features of the web server farm that hosts your app. Вы можете сэкономить средства при размещении нескольких приложений, настроив совместное использование одного плана службы приложений в веб-приложениях.You can save money when hosting multiple apps by configuring the web apps to share a single App Service plan.

Планы службы приложений определяют такие компоненты:App Service plans define:

  • регион (например, Северная Европа, восточная часть США или Юго-Восточная Азия);Region (for example: North Europe, East US, or Southeast Asia)
  • Размер экземпляра (небольшой, средний, крупный)Instance size (small, medium, or large)
  • Число экземпляров при масштабировании (от 1 до 20)Scale count (1 to 20 instances)
  • SKU ("Бесплатный", "Общий", "Базовый", "Стандартный" или "Премиум").SKU (Free, Shared, Basic, Standard, or Premium)

Рядом с полем План размещения выберите Создать.Next to Hosting Plan, select New.

В диалоговом окне Настройка плана размещения используйте следующие параметры:In the Configure Hosting Plan dialog box, use these settings:

ПараметрSetting Рекомендуемое значениеSuggested value DescriptionDescription
План обслуживания приложенияApp Service Plan MySharingServicePlanMySharingServicePlan Имя плана службы приложений.Name of the App Service plan.
LocationLocation западная часть СШАWest US Центр обработки данных, где размещается веб-приложение.The datacenter where the web app is hosted.
РазмерSize FreeFree Ценовая категория, которая определяет возможности размещения.The pricing tier that determines hosting features.

Нажмите кнопку ОК.Select OK.

Создание и публикация веб-приложенияCreate and publish the web app

В поле Имя приложения введите уникальное имя (допустимые символы: a-z, 0-9 и -) или примите сгенерированное автоматически уникальное имя.In App Name, enter a unique app name (valid characters are a-z, 0-9, and -), or accept the automatically generated unique name. URL-адрес веб-приложения: https://<app_name>.azurewebsites.net, где <app_name> — имя приложения.The URL of the web app is https://<app_name>.azurewebsites.net, where <app_name> is your app name.

Нажмите кнопку Создать, чтобы начать создавать ресурсы Azure.Select Create to start creating the Azure resources.

Когда мастер завершит работу, веб-приложение ASP.NET Core будет опубликовано в Azure и запущено в браузере по умолчанию.After the wizard finishes, it publishes the ASP.NET Core web app to Azure and then opens the app in your default browser.

Опубликованное веб-приложение ASP.NET в Azure

Имя приложения из этого раздела используется в качестве префикса URL-адреса в формате https://<app_name>.azurewebsites.net.The app name you used in this section is used as the URL prefix in the format https://<app_name>.azurewebsites.net. Запишите этот URL-адрес, так как он потребуется позднее.Take note of this URL because you'll need it.

Развертывание примера приложенияDeploy the sample app

Пример Java для Android поддерживает совместное использование на разных устройствах.The Java android sample supports sharing across devices. Откройте файл SharedActivity.java из папки с примерами в Android Studio.Open the file SharedActivity.java from the samples folder in Android Studio. Введите URL-адрес, полученный на предыдущем шаге (из развертывания ASP.NET веб-приложения Azure) в качестве значения для SharingAnchorsServiceUrl в файле SharedActivity.java.Enter the url you obtained in the previous step (from your ASP.NET web app Azure deployment) as the value for SharingAnchorsServiceUrl in the SharedActivity.java file. Измените index.html в URL-адресе на api/anchors.Replace the index.html in the url with api/anchors. Результат будет выглядеть так: https://<app_name>.azurewebsites.net/api/anchors.It should look like this: https://<app_name>.azurewebsites.net/api/anchors.

Развертывание приложения на устройствеDeploy the app to your device. После запуска приложения в диалоговом окне Choose A Demo (Выбор демонстрации) используйте стрелки влево или вправо, чтобы выбрать параметр LocalShare, а затем нажмите кнопкуGo! (Вперед!).Once the app starts, in the Choose A Demo dialog, use the left or right arrows to select the LocalShare option, and tap Go!. Следуйте указаниям в приложении.Follow the instructions in the app. Вы можете выбрать Create & Share Anchor (Создать привязку и предоставить к ней общий доступ) или Locate Shared Anchor (Найти общую привязку).You can select Create & Share Anchor or Locate Shared Anchor.

Сценарий создания привязки и предоставления к ней общего доступа позволяет создать привязку и сохранить ее в службе общего доступа.Create & Share Anchor lets you create an anchor and save it to your sharing service. Вы получите идентификатор, который можно использовать для получения из службы общего доступа.In return, you will get back an identifier for it that you can use to retrieve it from the sharing service. После этого можно запустить второй сценарий поиска общей привязки на вашем или другом устройстве.After this, you can then run the second scenario, Locate Shared Anchor, from either your device or a different one. Сценарий поиска общей привязки позволяет находить предоставляемые ранее привязки путем ввода упомянутого выше идентификатора.Locate Shared Anchor allows you to locate previously shared anchors by entering the identifier mentioned earlier. Когда вы выберете сценарий, в приложении отобразятся дальнейшие пошаговые инструкции.After you pick your scenario, the app will guide you with further instructions around what to do. Например, вам будет предложено переместить устройство, чтобы собрать информацию о среде.For example, you'll be asked to move your device around to collect environment information. Затем вам нужно будет разместить привязку в окружающей среде, подождать, пока она сохраниться, начать новый сеанс и найти ее.Later on, you'll place an anchor in the world, wait for it to save, start a new session, and then locate it.

Устранение неполадокTroubleshooting

Unity 2019.3Unity 2019.3

Из-за критических изменений сейчас Unity 2019.3 не поддерживается.Due to breaking changes, Unity 2019.3 is not currently supported. Используйте Unity 2019.1 или 2019.2.Please use Unity 2019.1 or 2019.2.

Очистка ресурсовClean up resources

На предыдущем шаге вы создали ресурсы Azure в группе ресурсов.In the preceding steps, you created Azure resources in a resource group. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.If you don't expect to need these resources in the future, you can delete them by deleting the resource group.

В меню портала Azure или на домашней странице выберите Группы ресурсов, а на странице Группы ресурсов выберите myResourceGroup.From the Azure portal menu or Home page, select Resource groups, and on the Resource groups page, select myResourceGroup.

На странице myResourceGroup убедитесь, что перечислены те ресурсы, которые нужно удалить.On the myResourceGroup page, make sure that the listed resources are the ones you want to delete.

Выберите Удалить группу ресурсов, введите myResourceGroup в текстовое поле для подтверждения и щелкните Удалить.Select Delete resource group, type myResourceGroup in the text box to confirm, and then select Delete.

Дальнейшие действияNext steps

В этом руководстве вы развернули веб-приложение ASP.NET Core в Azure, а затем настроили и развернули приложение Unity.In this tutorial, you've deployed an ASP.NET Core Web App in Azure, and then configured and deployed a Unity App. Вы создали в приложении пространственные привязки и предоставили к ним доступ другим устройствам с помощью веб-приложения ASP.NET Core.You created Spatial Anchors with the app, and shared them with other devices by using your ASP.NET Core Web App.

Вы можете улучшить веб-приложение ASP.NET Core, чтобы оно использовало Azure Cosmos DB для хранения хранилища общих идентификаторов пространственных привязок.You can improve your ASP.NET Core Web App so that it uses Azure Cosmos DB to persist the storage of your shared Spatial Anchor identifiers. Добавление поддержки Azure Cosmos DB позволит веб-приложению ASP.NET Core создавать привязку в один день, обнаружить ее снова спустя несколько дней с помощью идентификатора привязки, сохраненного в веб-приложении.Adding Azure Cosmos DB support will allow your ASP.NET Core Web App to create an anchor today, and come back days later to be able to locate it again, by using the anchor identifier stored in your web app.