示例项目和用例 > 用例:扩展数字映射体验 > Digital Twin 202:采用标识解析服务(IRS)的配置 > 通过 IRS 映射体验
  
通过 IRS 映射体验
IRS 能够让您以可扩展的方式创建配置,即映射到体验的模板可以有多个配置。这些映射是使用 cURL 创建的,因此可将命令行界面(CLI)与 Experience Service 连接在一起。本节将引导您完成映射体验的过程。
1. 请确保您的体验已发布,并且有一个与其关联的 ThingMark。
2. GitHub 下载以下 .bat 文件,并将其添加到存储 curl.exe 文件的同一文件夹中:
mappings.bat
resolve.bat
3. 打开所选的 CLI。在本例中,我们使用了命令提示符。浏览到保存 curl.exe 文件的目录。例如,C:\installations
4. 在 CLI 中,键入 mappings。这将运行 mappings.bat 文件,以设置包括用户名、密码和 Experience Service 在内的登录凭据。
* 
出于安全考虑,我们的密码在下图中已隐藏。
该文件使用 cURL 访问您的 Experience Service,以找到与 Experience Service 相关联的所有体验。您应在列表中看到所有已发布的体验。
5. 接下来,将运行映射的结果保存到您的 .bat 文件中,以便可以编辑从 Vuforia Studio 进行发布时所创建的属性。使用以下命令创建新的 .bat 文件:
mappings > mymap.bat
这一新文件将保存在当前目录中,并将用于为体验创建可配置的模板。
6. 打开您刚刚创建的 mymap.bat 文件。您应看到映射体验的结果。
找到刚刚创建的项目,它很可能位于文件末尾。要找到所发布体验的映射,请查看映射的 value 属性并找到以下内容:
"projects/scalingdigitaltwinexperiences202/index.html?expId=1&vumark=%7B%7Bvuforia:vumark%7D%7D"
7. 映射的每个属性都列在下表中:
属性
说明
id
映射的 ID 号。
key
与体验关联的 ThingMark。
value
体验的 URL。URL 的格式为:path/page.html?parameterspath/page.html 部分是体验名称。parameters 为各项参数及其值。在本例中,expId 参数的值为 1vumark 参数的值为 %7B%7Bvuforia:vumark%7D%7D。在创建其他配置时,这些参数将被更新。
resourcetype
与体验关联的资源类型。
title
Vuforia Studio“信息”部分中输入的体验的标题。
createstamp
所创建的映射的时间戳。
requires
设置追踪要求。
description
项目说明(如果已创建)。
projectversion
项目版本。
8. 首先需要将 .bat 文件中的参数移除。从文件中完全移除以下属性:
id
createstamp
status
projectversion
9. 然后,移除属性 key 的整个值,并移除属性 valueprojects/myproject/index.html?expId=1 之后的所有内容。
* 
在实际操作中,您需要将代码保持在一行内,.bat 文件中的以下 JSON 格式已进行了编辑,以提供更好的可读性。
10. 接下来,您需要向 value 属性添加新的参数。这些参数与上一节中为四轴飞行器的颜色和模型所创建的参数相同,它们将用于配置体验。在本例中,我们将新模板命名为 curriculum,但您可以根据需要选择其他名称。将 value 属性更改为包含以下代码:
"value":"projects/scalingdigitaltwinexperiences202/index.html?expId=1&color=%7B%7Bcurriculum:color%7D%7D&model=%7B%7Bcurriculum:model%7D%7D",
如果查看刚刚添加的文本,则会注意到此模式:
&color=%7B%7Bcurriculum:color%7D%7D
此模式是 url 编码的查询参数,其格式为 &name=value。在上面的示例中,namecolorvalue{{curriculum.color}}。双括号表示其中的值要计算。在本例中,我们将查找 (urn.)curriculum.color 的值,该属性将被添加到 IRS。
11. 必须创建体验映射所至的键。请添加以下映射到 curriculum 模板的键。
"key":"urn:curriculum:template:202"
此步骤将完成您的模板。
12. 现在,您需要将此 .bat 文件转换为针对 IRS 运行的命令。
命令解释程序可能会错误解读某些字符,因此您需要将其替换以确保信息解读正确。打开编辑器(如记事本),然后搜索并替换以下字符。
将...
替换为...
\”
%
%%
&
^&
13. 将以下内容添加至文件:
curl -u %uname%:%passwd% -H "Content-Type: application/json" -H "X-Requested-With: XMLHttpRequest" -k -d "EXPRIENCEGOESHERE" %server%/ExperienceService/id-resolution/mappings
然后,将 EXPERIENCEGIESHERE 替换为您在上面编辑的文本块。
14. 现在,您可以在命令提示符下运行此 .bat 文件。
C:\installations> mybat.bat
15. 您还可以复制和粘贴以下内容:
curl -u %uname%:%passwd% -H "Content-Type: application/json" -H "X-Requested-With: XMLHttpRequest" -k -d "{ \"key\":\" urn:curriculum:template:202\", \"value\":\"projects/scalingdigitaltwinexperiences202/index.html?expId=1^&color=^%7B^%7Bcurriculum:color^%7D^%7D^&model=^%7B^%7Bcurriculum:model^%7D^%7D\", \"resourcetype\":\"Experience\",\"title\" : { \"en\":\"ScalingDigitalTwinExperiences202\" }, \"requires\" : [ \"AR-tracking\",\"w320dp\" ], \"description\":{ \"en\":\"Curriculum demo\" } }" %server%/ExperienceService/id-resolution/mappings
16. 运行 mappings 命令以确保已将新映射添加到 Experience Service 模板中。您应在映射列表的末尾看到新映射。
17. 模板映射到体验后,您需要将配置映射到特定属性。这些属性将用于配置为四轴飞行器的型号和颜色创建的模板的参数。第一个配置命名为 config 1
a. 请使用以下代码设置第一个配置参数 - color 参数。color 参数将与您先前在 Vuforia Studio 中创建的应用程序参数进行交互,因此您在第一步中创建的所有颜色都将作为参数输入。在本示例中,我们将模型的颜色设置为紫色。
curl -u %uname%:%passwd% -H "Content-Type: application/json" -H "X-Requested-With: XMLHttpRequest" -k -d "{\"key\": \"urn:curriculum:config:1\", \"value\": \"urn:curriculum:color:purple\"}" %server%/ExperienceService/id-resolution/mappings
b. 接下来,您将映射 model 参数,方法与映射 color 参数的方式相同。这一次,您将使用 2 作为模型参数,它映射到第二个四轴飞行器模型选项。有了这两个映射后,urn:curriculum:config:1 键现在将映射到以下两个值:
urn:curriculum:color:purple
urn:curriculum:model:2
curl -u %uname%:%passwd% -H "Content-Type: application/json" -H "X-Requested-With: XMLHttpRequest" -k -d "{\"key\": \"urn:curriculum:config:1\", \"value\": \"urn:curriculum:model:2\"}" %server%/ExperienceService/id-resolution/mappings
c. 如果您再次运行 mappings,则会看到配置映射已添加至 IRS。
18. 创建配置及其参数后,必须将配置映射回至模板。之前我们已将 urn:curriculum:template:202 映射至体验作为其模板。现在,我们将 urn:curriculum:config:1 重新映射回至 urn:curriculum:template:202
curl -u %uname%:%passwd% -H "Content-Type: application/json" -H "X-Requested-With: XMLHttpRequest" -k -d "{\"key\": \"urn:curriculum:config:1\", \"value\": \"urn:curriculum:template:202\"}" %server%/ExperienceService/id-resolution/mappings
19. 映射配置的最后一步是将您的 ThingMark 映射到所创建的配置。每次扫描此特定 ThingMark 时,都会显示该模型的这一特定配置。
* 
您必须在需要时输入特定的 ThingMark 实例。
curl -u %uname%:%passwd% -H "Content-Type: application/json" -H "X-Requested-With: XMLHttpRequest" -k -d "{\"key\": \"urn:vuforia:vumark:YOURTHINGMARK\", \"value\": \"urn:curriculum:config:1\"}" %server%/ExperienceService/id-resolution/mappings
20. 再次运行 mappings。您应看到本节创建的所有映射。
21. 作为参考,您在本节中创建的映射显示在下图中。
测试映射
1. 在 CLI 中运行以下命令:
resolve urn:vuforia:vumark:<Your_ThingMark>
这将获取分配至该 ThingMark 的所有解析结果,并将其置于文本格式中。如果您看到 color=purple&model=2 而不是 color=^%7B^%7Bcurriculum:color^%7D^%7D^&model=^%7B^%7Bcurriculum:model^%7D^%7D,则此映射已成功添加。模型参数应已替换 URL 中最初的占位符变量。
2. 接下来,打开 Vuforia View 并扫描您分配到 urn:curriculum:config:1 的 ThingMark。如果您看到所创建的四轴飞行器的配置,则您已成功添加了使用 IRS 的第一个配置。
3. 既然您已成功创建了一个配置,请尝试通过您创建的 curriculum 模板再创建两个名为 config:2config:3 的配置。可将这两个配置添加到同一 ThingMark 或其他 ThingMark。请尝试自行创建以下映射:
4. 使用 Vuforia View 查看新创建的配置。
GitHub 上有一个名为 ScalingDigitalTwinExperiences202.bat 的已部分完成的 .bat 文件。可运行此 .bat 来对三种不同配置执行步骤 11-17 中的所有映射。GitHub 上还提供了 mappings.batresolve.bat 文件。在运行文件之前,您需要添加您的用户名、密码、服务器、ThingMark 编号,并编辑项目名称(如果需要)。在保存其他文件的目录中,通过在 CLI 中键入 ScalingDigitalTwinExperiences202 来运行文件。
最终结果为 3 个配置。ThingMark (1) 映射到配置,(2) 配置沿路径收集各种属性/值并传递至模板,(3) 模板将变量 (颜色、型号) 替换为收集的值。结果是变量输入解析后的体验 - 在此示例中,ThingMark 映射到配置 2,这是一个红色的型号 1 项。最终体验显示一个红色四轴飞行器。
让我们继续 Digital Twin 301,开始使用 ThingWorx 和 IRS 来管理配置。