<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Render content from .mspk in AR world space in Swift Maps SDK Questions</title>
    <link>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1503041#M314</link>
    <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;Hoping to get some advice on something i want to undertake in next few days. I am trying to build a fully offline map application on iOS using the SDK. I have already complete the first of 2 major features by being able to render a map with relevant feature layer geometry but i now want to undertake the more complex feature.&lt;BR /&gt;&lt;BR /&gt;I want to be able to view all feature layer geometry and/or scene layer meshes embedded inside my .mspk file in a world space AR. So be able to view a building mesh in its actual location in AR&amp;nbsp; for example. Is this even possible? If so does anyone know of any tutorials or samples i can see for reference? Have never worked with AR before and the documentation and samples online never seem to mention anything regarding offline rendering in AR. Any help is appreciated. Thanks.&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 09 Jul 2024 15:22:28 GMT</pubDate>
    <dc:creator>DominicBowyer2</dc:creator>
    <dc:date>2024-07-09T15:22:28Z</dc:date>
    <item>
      <title>Render content from .mspk in AR world space</title>
      <link>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1503041#M314</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;Hoping to get some advice on something i want to undertake in next few days. I am trying to build a fully offline map application on iOS using the SDK. I have already complete the first of 2 major features by being able to render a map with relevant feature layer geometry but i now want to undertake the more complex feature.&lt;BR /&gt;&lt;BR /&gt;I want to be able to view all feature layer geometry and/or scene layer meshes embedded inside my .mspk file in a world space AR. So be able to view a building mesh in its actual location in AR&amp;nbsp; for example. Is this even possible? If so does anyone know of any tutorials or samples i can see for reference? Have never worked with AR before and the documentation and samples online never seem to mention anything regarding offline rendering in AR. Any help is appreciated. Thanks.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jul 2024 15:22:28 GMT</pubDate>
      <guid>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1503041#M314</guid>
      <dc:creator>DominicBowyer2</dc:creator>
      <dc:date>2024-07-09T15:22:28Z</dc:date>
    </item>
    <item>
      <title>Re: Render content from .mspk in AR world space</title>
      <link>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1503103#M316</link>
      <description>&lt;P&gt;Thanks for asking this question Dominic!&lt;/P&gt;&lt;P&gt;The usecase you described is a World-scale AR concept. Please see &lt;A href="https://developers.arcgis.com/swift/scenes-3d/display-scenes-in-augmented-reality/" target="_self"&gt;this doc&lt;/A&gt; for the AR workflows we support.&lt;/P&gt;&lt;P&gt;We support AR via a product called the &lt;A href="https://github.com/Esri/arcgis-maps-sdk-swift-toolkit" target="_self"&gt;toolkit&lt;/A&gt;, which consists of a series of prebuilt components to facilitate development. In the toolkit we have the&amp;nbsp;&lt;EM&gt;WorldScaleSceneView&lt;/EM&gt; for the world-scale AR workflows, that allow you to insert an ArcGIS scene view into the AR experience. Please see the following docs for it:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;API reference:&amp;nbsp;&lt;A href="https://developers.arcgis.com/swift/toolkit-api-reference/documentation/arcgistoolkit/worldscalesceneview/" target="_blank"&gt;https://developers.arcgis.com/swift/toolkit-api-reference/documentation/arcgistoolkit/worldscalesceneview/&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;&lt;LI&gt;Tutorial:&amp;nbsp;&lt;A href="https://developers.arcgis.com/swift/toolkit-api-reference/tutorials/toolkittutorials/#augmented-reality" target="_blank"&gt;https://developers.arcgis.com/swift/toolkit-api-reference/tutorials/toolkittutorials/#augmented-reality&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;&lt;LI&gt;World-scale tutorial:&amp;nbsp;&lt;A href="https://developers.arcgis.com/swift/toolkit-api-reference/tutorials/arcgistoolkit/worldscalesceneviewtutorial/" target="_blank"&gt;https://developers.arcgis.com/swift/toolkit-api-reference/tutorials/arcgistoolkit/worldscalesceneviewtutorial/&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;&lt;LI&gt;Conceptual doc:&amp;nbsp;&lt;A href="https://developers.arcgis.com/swift/scenes-3d/display-scenes-in-augmented-reality/" target="_blank"&gt;https://developers.arcgis.com/swift/scenes-3d/display-scenes-in-augmented-reality/&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One thing to point out is that, when you use the mobile scene package in a world-scale AR experience, the 3D scene package is "overlaid" on top of the AR view, rather than being a real 3D "object" immersed in the AR view. That leads to parallax visual effects when your device is moving in the real world - it seems that the scene view is shifting along the path you are walking. Depending on your usecase, this might or might not be a problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A side note: the mobile scene package also works in the&amp;nbsp;Tabletop AR experience, which allows you to anchor the mobile scene package on a table top so you can examine it in AR. We have a &lt;A href="https://github.com/Esri/arcgis-maps-sdk-swift-samples/tree/main/Shared/Samples/Augment%20reality%20to%20show%20tabletop%20scene" target="_self"&gt;code sample&lt;/A&gt; for it and you can also download the app from App Store to see it live: &lt;A href="https://apps.apple.com/us/app/arcgis-maps-swift-samples/id1630449018" target="_blank"&gt;https://apps.apple.com/us/app/arcgis-maps-swift-samples/id1630449018&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please share any comment regarding the AR toolkit components! It is only released recently and we really would like to learn people's feeling about it, and address feedback and complaints to make it more developer-friendly. &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jul 2024 16:45:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1503103#M316</guid>
      <dc:creator>Ting</dc:creator>
      <dc:date>2024-07-09T16:45:41Z</dc:date>
    </item>
    <item>
      <title>Re: Render content from .mspk in AR world space</title>
      <link>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1503410#M317</link>
      <description>&lt;P&gt;Thanks so much for the reply &lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/440371"&gt;@Ting&lt;/a&gt;! I'll be sure to share my progress as I go. I've being used the sample you linked as reference thus far. However, one thing i've noticed is despite having the toolkit installed, I'm not able to access many classes that belong in the runtime SDK like&amp;nbsp;&lt;SPAN&gt;AGSScene (&lt;A href="https://developers.arcgis.com/ios/api-reference/interface_a_g_s_scene.html" target="_blank"&gt;https://developers.arcgis.com/ios/api-reference/interface_a_g_s_scene.html&lt;/A&gt;) for example. Xcode reports the inclusion of these as "out of scope". I've found this very strange considering i believe the toolkit to come bundled with the vanilla runtime SDK of which these classes belong to and im of course importing both 'ArcGIS' &amp;amp; 'ArcGISToolkit' packages. Not sure if you might be able to shed some light on the matter?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jul 2024 09:40:43 GMT</pubDate>
      <guid>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1503410#M317</guid>
      <dc:creator>DominicBowyer2</dc:creator>
      <dc:date>2024-07-10T09:40:43Z</dc:date>
    </item>
    <item>
      <title>Re: Render content from .mspk in AR world space</title>
      <link>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1503861#M318</link>
      <description>&lt;P&gt;Ah, are you using the &lt;A href="https://developers.arcgis.com/ios/" target="_self"&gt;100.x Runtime SDK&lt;/A&gt;&amp;nbsp;(UIKit)? It has its own companion toolkit here:&amp;nbsp;&lt;A href="https://github.com/Esri/arcgis-runtime-toolkit-ios" target="_blank"&gt;https://github.com/Esri/arcgis-runtime-toolkit-ios&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The link I've attached are for the latest 200.x versions. The 200.x Maps SDK moved to SwiftUI with many enhancements. If possible, we encourage people to move up to the new SDK to enjoy the better performance and new features.&lt;/P&gt;&lt;P&gt;The old toolkit also has AR components, although they don't include the latest ARKit advancements in raycasting, plane detection, and geo-tracking. You can still try it out and follow the tutorials here:&amp;nbsp;&lt;A href="https://developers.arcgis.com/ios/scenes-3d/display-scenes-in-augmented-reality/" target="_blank"&gt;https://developers.arcgis.com/ios/scenes-3d/display-scenes-in-augmented-reality/&lt;/A&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jul 2024 21:23:46 GMT</pubDate>
      <guid>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1503861#M318</guid>
      <dc:creator>Ting</dc:creator>
      <dc:date>2024-07-10T21:23:46Z</dc:date>
    </item>
    <item>
      <title>Re: Render content from .mspk in AR world space</title>
      <link>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1506202#M319</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/440371"&gt;@Ting&lt;/a&gt;&amp;nbsp;Been busy with other things for a little while. I think I got a little turned around between the 100.x and 200.x versions in the beginning. I was seeing documentation for the 100.x SDK and believing it to be applicable to 200.x and vica-versa. That's my bad. However, I now know better. I have spent some time with it yesterday and today and made a little progress. I will share it here for others interested. Thus far, I've been able to adapt the sample you linked to create a scene in AR and load my mspk file however despite my logs leading me to believe that i have successfully loaded my mspk i'm not able to see it AR as of yet. Just the default white grid. I will post my swift code below for reference. If you by chance spot anything glaringly wrong with my approach. I will happily accept the advice. Thanks!&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;import&lt;/STRONG&gt;&lt;/SPAN&gt; Foundation&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;import&lt;/STRONG&gt;&lt;/SPAN&gt; UIKit&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;import&lt;/STRONG&gt;&lt;/SPAN&gt; ArcGIS&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;import&lt;/STRONG&gt;&lt;/SPAN&gt; ArcGISToolkit&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;import&lt;/STRONG&gt;&lt;/SPAN&gt; ARKit&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;import&lt;/STRONG&gt;&lt;/SPAN&gt; SwiftUI&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;import&lt;/STRONG&gt;&lt;/SPAN&gt; Combine&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;import&lt;/STRONG&gt;&lt;/SPAN&gt; CoreLocation&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;// SwiftUI View&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;struct&lt;/STRONG&gt;&lt;/SPAN&gt; AugmentRealityToCollectDataView&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;View&lt;/SPAN&gt;&lt;SPAN class=""&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;@StateObject&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;private&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;var&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;model&lt;/SPAN&gt; = &lt;SPAN class=""&gt;Model&lt;/SPAN&gt;()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;@State&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;private&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;var&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;statusText&lt;/SPAN&gt;&lt;SPAN class=""&gt; = &lt;/SPAN&gt;"Tap to create a feature"&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;@State &lt;SPAN class=""&gt;&lt;STRONG&gt;private&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;var&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;error&lt;/SPAN&gt;&lt;SPAN class=""&gt;: &lt;/SPAN&gt;Error&lt;SPAN class=""&gt;?&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;var&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;body&lt;/SPAN&gt;: &lt;SPAN class=""&gt;&lt;STRONG&gt;some&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;View&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;VStack&lt;/SPAN&gt;(&lt;SPAN class=""&gt;spacing&lt;/SPAN&gt;: &lt;SPAN class=""&gt;0&lt;/SPAN&gt;) {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;WorldScaleSceneView&lt;SPAN class=""&gt; { _ &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;in&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;if&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; scene = &lt;SPAN class=""&gt;model&lt;/SPAN&gt;.&lt;SPAN class=""&gt;scene&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"SceneView is being rendered with the scene."&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;return&lt;/STRONG&gt;&lt;/SPAN&gt; SceneView(scene: scene, graphicsOverlays: [&lt;SPAN class=""&gt;model&lt;/SPAN&gt;.&lt;SPAN class=""&gt;graphicsOverlay&lt;/SPAN&gt;])&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;} &lt;SPAN class=""&gt;&lt;STRONG&gt;else&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"SceneView is being rendered with an empty scene."&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;return&lt;/STRONG&gt;&lt;/SPAN&gt; SceneView(scene: ArcGIS.&lt;SPAN class=""&gt;Scene&lt;/SPAN&gt;())&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;/SPAN&gt;calibrationButtonAlignment&lt;SPAN class=""&gt;(.&lt;/SPAN&gt;&lt;SPAN class=""&gt;bottomLeading&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;SPAN class=""&gt;onSingleTapGesture&lt;/SPAN&gt; { screenPoint, scenePoint &lt;SPAN class=""&gt;&lt;STRONG&gt;in&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;if&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; scenePoint = scenePoint {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;model&lt;/SPAN&gt;.&lt;SPAN class=""&gt;addGraphic&lt;/SPAN&gt;(&lt;SPAN class=""&gt;at&lt;/SPAN&gt;: scenePoint)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;statusText&lt;/SPAN&gt; = &lt;SPAN class=""&gt;"Feature added at: &lt;/SPAN&gt;\(scenePoint)&lt;SPAN class=""&gt;"&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;SPAN class=""&gt;task&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;do&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; mspkURL = &lt;SPAN class=""&gt;Bundle&lt;/SPAN&gt;.&lt;SPAN class=""&gt;main&lt;/SPAN&gt;.&lt;SPAN class=""&gt;url&lt;/SPAN&gt;(&lt;SPAN class=""&gt;forResource&lt;/SPAN&gt;: &lt;SPAN class=""&gt;"East-London-Map"&lt;/SPAN&gt;, &lt;SPAN class=""&gt;withExtension&lt;/SPAN&gt;: &lt;SPAN class=""&gt;"mspk"&lt;/SPAN&gt;)!&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;try&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;await&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;model&lt;/SPAN&gt;.&lt;SPAN class=""&gt;loadMSPK&lt;/SPAN&gt;(&lt;SPAN class=""&gt;fileURL&lt;/SPAN&gt;: mspkURL)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;try&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;await&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;model&lt;/SPAN&gt;.&lt;SPAN class=""&gt;startLocationDisplay&lt;/SPAN&gt;()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;} &lt;SPAN class=""&gt;&lt;STRONG&gt;catch&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;self&lt;/STRONG&gt;&lt;/SPAN&gt;.&lt;SPAN class=""&gt;error&lt;/SPAN&gt; = error&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;(&lt;SPAN class=""&gt;"Failed to load MSPK: &lt;/SPAN&gt;\(error.&lt;SPAN class=""&gt;localizedDescription&lt;/SPAN&gt;)&lt;SPAN class=""&gt;"&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;SPAN class=""&gt;overlay&lt;/SPAN&gt;(&lt;SPAN class=""&gt;alignment&lt;/SPAN&gt;: .&lt;SPAN class=""&gt;top&lt;/SPAN&gt;) {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;Text&lt;/SPAN&gt;(&lt;SPAN class=""&gt;statusText&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;/SPAN&gt;multilineTextAlignment&lt;SPAN class=""&gt;(.&lt;/SPAN&gt;center&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;/SPAN&gt;frame&lt;SPAN class=""&gt;(&lt;/SPAN&gt;maxWidth&lt;SPAN class=""&gt;: .&lt;/SPAN&gt;infinity&lt;SPAN class=""&gt;, &lt;/SPAN&gt;alignment&lt;SPAN class=""&gt;: .&lt;/SPAN&gt;center&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;SPAN class=""&gt;padding&lt;/SPAN&gt;(&lt;SPAN class=""&gt;8&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;/SPAN&gt;background&lt;SPAN class=""&gt;(.&lt;/SPAN&gt;regularMaterial&lt;SPAN class=""&gt;, &lt;/SPAN&gt;ignoresSafeAreaEdges&lt;SPAN class=""&gt;: .&lt;/SPAN&gt;horizontal&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;SPAN class=""&gt;alert&lt;/SPAN&gt;(&lt;SPAN class=""&gt;isPresented&lt;/SPAN&gt;: .&lt;SPAN class=""&gt;constant&lt;/SPAN&gt;(&lt;SPAN class=""&gt;error&lt;/SPAN&gt; != &lt;SPAN class=""&gt;&lt;STRONG&gt;nil&lt;/STRONG&gt;&lt;/SPAN&gt;)) {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;Alert&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;title&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;Text&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;"Error"&lt;/SPAN&gt;&lt;SPAN class=""&gt;), &lt;/SPAN&gt;message&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;Text&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;error&lt;/SPAN&gt;&lt;SPAN class=""&gt;?.&lt;/SPAN&gt;localizedDescription&lt;SPAN class=""&gt; ?? &lt;/SPAN&gt;&lt;SPAN class=""&gt;"Unknown error"&lt;/SPAN&gt;&lt;SPAN class=""&gt;), &lt;/SPAN&gt;dismissButton&lt;SPAN class=""&gt;: .&lt;/SPAN&gt;default&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;Text&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;"OK"&lt;/SPAN&gt;&lt;SPAN class=""&gt;)))&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;}&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;// View Model&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;class&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;Model&lt;/SPAN&gt;&lt;SPAN class=""&gt;: &lt;/SPAN&gt;ObservableObject&lt;SPAN class=""&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;@Published&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;var&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;scene&lt;/SPAN&gt;: ArcGIS.&lt;SPAN class=""&gt;Scene&lt;/SPAN&gt;?&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;@Published&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;var&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;graphicsOverlay&lt;/SPAN&gt; = GraphicsOverlay()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;private&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;locationDisplay&lt;/SPAN&gt; = LocationDisplay(dataSource: SystemLocationDataSource())&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;func&lt;/STRONG&gt;&lt;/SPAN&gt; startLocationDisplay&lt;SPAN class=""&gt;() &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;async&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;throws&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;do&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;// Request location permission if not determined&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; locationManager = &lt;SPAN class=""&gt;CLLocationManager&lt;/SPAN&gt;()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;if&lt;/STRONG&gt;&lt;/SPAN&gt; locationManager.&lt;SPAN class=""&gt;authorizationStatus&lt;/SPAN&gt; == .&lt;SPAN class=""&gt;notDetermined&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;locationManager.&lt;SPAN class=""&gt;requestWhenInUseAuthorization&lt;/SPAN&gt;()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;// Start the location display&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;try&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;await&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;locationDisplay&lt;/SPAN&gt;.&lt;SPAN class=""&gt;dataSource&lt;/SPAN&gt;.&lt;SPAN class=""&gt;start&lt;/SPAN&gt;()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;locationDisplay&lt;/SPAN&gt;.autoPanMode = .recenter&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;if&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; location = &lt;SPAN class=""&gt;locationDisplay&lt;/SPAN&gt;.mapLocation {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; camera = Camera(latitude: location.&lt;SPAN class=""&gt;y&lt;/SPAN&gt;, longitude: location.&lt;SPAN class=""&gt;x&lt;/SPAN&gt;, altitude: &lt;SPAN class=""&gt;10&lt;/SPAN&gt;, heading: &lt;SPAN class=""&gt;0&lt;/SPAN&gt;, pitch: &lt;SPAN class=""&gt;0&lt;/SPAN&gt;, roll: &lt;SPAN class=""&gt;0&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;scene&lt;/SPAN&gt;?.initialViewpoint = Viewpoint(center: camera.&lt;SPAN class=""&gt;location&lt;/SPAN&gt;, scale: &lt;SPAN class=""&gt;1000&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"LocationDisplay started successfully at location: &lt;SPAN class=""&gt;\(location.&lt;/SPAN&gt;&lt;SPAN class=""&gt;y&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;, &lt;SPAN class=""&gt;\(location.&lt;/SPAN&gt;&lt;SPAN class=""&gt;x&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;"&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;} &lt;SPAN class=""&gt;&lt;STRONG&gt;catch&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"Error starting location display: &lt;SPAN class=""&gt;\(error.&lt;/SPAN&gt;&lt;SPAN class=""&gt;localizedDescription&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;"&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;throw&lt;/STRONG&gt;&lt;/SPAN&gt; error&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;func&lt;/STRONG&gt;&lt;/SPAN&gt; loadMSPK&lt;SPAN class=""&gt;(&lt;/SPAN&gt;fileURL&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;URL&lt;/SPAN&gt;&lt;SPAN class=""&gt;) &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;async&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;throws&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; mobileScenePackage = MobileScenePackage(fileURL: fileURL)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;try&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;await&lt;/STRONG&gt;&lt;/SPAN&gt; mobileScenePackage.&lt;SPAN class=""&gt;load&lt;/SPAN&gt;()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;if&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; scene = mobileScenePackage.scenes.&lt;SPAN class=""&gt;first&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;DispatchQueue.&lt;SPAN class=""&gt;main&lt;/SPAN&gt;.&lt;SPAN class=""&gt;async&lt;/SPAN&gt; { [&lt;SPAN class=""&gt;&lt;STRONG&gt;weak&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;self&lt;/STRONG&gt;&lt;/SPAN&gt;] &lt;SPAN class=""&gt;&lt;STRONG&gt;in&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;self&lt;/STRONG&gt;&lt;/SPAN&gt;?.&lt;SPAN class=""&gt;scene&lt;/SPAN&gt; = scene&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"MSPK loaded successfully with scene: &lt;SPAN class=""&gt;\(scene.initialViewpoint.&lt;/SPAN&gt;&lt;SPAN class=""&gt;debugDescription&lt;/SPAN&gt;&lt;SPAN class=""&gt; ?? &lt;/SPAN&gt;"Unnamed Scene"&lt;SPAN class=""&gt;)&lt;/SPAN&gt;"&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;self&lt;/STRONG&gt;&lt;/SPAN&gt;?.&lt;SPAN class=""&gt;printSceneLayers&lt;/SPAN&gt;(&lt;SPAN class=""&gt;scene&lt;/SPAN&gt;: scene)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;} &lt;SPAN class=""&gt;&lt;STRONG&gt;else&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"No scenes found in MSPK."&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;func&lt;/STRONG&gt;&lt;/SPAN&gt; printSceneLayers&lt;SPAN class=""&gt;(&lt;/SPAN&gt;scene&lt;SPAN class=""&gt;: ArcGIS.&lt;/SPAN&gt;&lt;SPAN class=""&gt;Scene&lt;/SPAN&gt;&lt;SPAN class=""&gt;) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;(&lt;SPAN class=""&gt;"Scene contains &lt;/SPAN&gt;\(scene.operationalLayers.&lt;SPAN class=""&gt;count&lt;/SPAN&gt;)&lt;SPAN class=""&gt; operational layers:"&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;for&lt;/STRONG&gt;&lt;/SPAN&gt; layer &lt;SPAN class=""&gt;&lt;STRONG&gt;in&lt;/STRONG&gt;&lt;/SPAN&gt; scene.operationalLayers {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;(&lt;SPAN class=""&gt;"Layer: &lt;/SPAN&gt;\(layer.&lt;SPAN class=""&gt;name&lt;/SPAN&gt;)&lt;SPAN class=""&gt;, Visible: &lt;/SPAN&gt;\(layer.&lt;SPAN class=""&gt;isVisible&lt;/SPAN&gt;)&lt;SPAN class=""&gt;, Max Scale: &lt;/SPAN&gt;\(layer.maxScale)&lt;SPAN class=""&gt;, Min Scale: &lt;/SPAN&gt;\(layer.&lt;SPAN class=""&gt;minScale&lt;/SPAN&gt;)&lt;SPAN class=""&gt;"&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;func&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;addGraphic&lt;/SPAN&gt;(&lt;SPAN class=""&gt;at&lt;/SPAN&gt; point: &lt;SPAN class=""&gt;Point&lt;/SPAN&gt;) {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; symbol = SimpleMarkerSymbol(style: .&lt;SPAN class=""&gt;circle&lt;/SPAN&gt;, color: .&lt;SPAN class=""&gt;red&lt;/SPAN&gt;, size: &lt;SPAN class=""&gt;20&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; graphic = Graphic(geometry: point, symbol: symbol)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;graphicsOverlay&lt;/SPAN&gt;.addGraphic(graphic)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"Graphic added at: &lt;SPAN class=""&gt;\(point)&lt;/SPAN&gt;"&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;}&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;// React Native Bridge&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;@objc&lt;/STRONG&gt;&lt;/SPAN&gt;(ARNativeViewManager)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;class&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;ARNativeViewManager&lt;/SPAN&gt;: RCTViewManager {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;override&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;func&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;view&lt;/SPAN&gt;() -&amp;gt; &lt;SPAN class=""&gt;UIView&lt;/SPAN&gt;! {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;return&lt;/STRONG&gt;&lt;/SPAN&gt; ARNativeView&lt;SPAN class=""&gt;()&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;override&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;static&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;func&lt;/STRONG&gt;&lt;/SPAN&gt; requiresMainQueueSetup&lt;SPAN class=""&gt;() -&amp;gt; &lt;/SPAN&gt;&lt;SPAN class=""&gt;Bool&lt;/SPAN&gt;&lt;SPAN class=""&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;return&lt;/STRONG&gt; &lt;STRONG&gt;true&lt;/STRONG&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;}&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;class&lt;/STRONG&gt;&lt;/SPAN&gt; ARNativeView&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;UIView&lt;/SPAN&gt;&lt;SPAN class=""&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;var&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;hostingController&lt;/SPAN&gt;&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;UIHostingController&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;lt;&lt;/SPAN&gt;AugmentRealityToCollectDataView&lt;SPAN class=""&gt;&amp;gt;!&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;override&lt;/STRONG&gt; &lt;STRONG&gt;init&lt;/STRONG&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;frame&lt;/SPAN&gt;&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;CGRect&lt;/SPAN&gt;&lt;SPAN class=""&gt;) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;super&lt;/STRONG&gt;&lt;/SPAN&gt;.&lt;SPAN class=""&gt;init&lt;/SPAN&gt;(&lt;SPAN class=""&gt;frame&lt;/SPAN&gt;: frame)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;setupARView&lt;SPAN class=""&gt;()&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;required&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;init&lt;/STRONG&gt;&lt;/SPAN&gt;?(&lt;SPAN class=""&gt;coder&lt;/SPAN&gt;: &lt;SPAN class=""&gt;NSCoder&lt;/SPAN&gt;) {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;super&lt;/STRONG&gt;&lt;/SPAN&gt;.&lt;SPAN class=""&gt;init&lt;/SPAN&gt;(&lt;SPAN class=""&gt;coder&lt;/SPAN&gt;: coder)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;setupARView&lt;SPAN class=""&gt;()&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;func&lt;/STRONG&gt;&lt;/SPAN&gt; setupARView&lt;SPAN class=""&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt; arView = &lt;/SPAN&gt;AugmentRealityToCollectDataView&lt;SPAN class=""&gt;()&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;hostingController&lt;/SPAN&gt; = &lt;SPAN class=""&gt;UIHostingController&lt;/SPAN&gt;(&lt;SPAN class=""&gt;rootView&lt;/SPAN&gt;: arView)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;addSubview&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;hostingController&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;view&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;hostingController&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;view&lt;SPAN class=""&gt;.&lt;/SPAN&gt;translatesAutoresizingMaskIntoConstraints&lt;SPAN class=""&gt; = &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;false&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;NSLayoutConstraint&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;activate&lt;/SPAN&gt;&lt;SPAN class=""&gt;([&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;hostingController&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;view&lt;SPAN class=""&gt;.&lt;/SPAN&gt;topAnchor&lt;SPAN class=""&gt;.&lt;/SPAN&gt;constraint&lt;SPAN class=""&gt;(&lt;/SPAN&gt;equalTo&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;self&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;topAnchor&lt;SPAN class=""&gt;),&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;hostingController&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;view&lt;SPAN class=""&gt;.&lt;/SPAN&gt;bottomAnchor&lt;SPAN class=""&gt;.&lt;/SPAN&gt;constraint&lt;SPAN class=""&gt;(&lt;/SPAN&gt;equalTo&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;self&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;bottomAnchor&lt;SPAN class=""&gt;),&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;hostingController&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;view&lt;SPAN class=""&gt;.&lt;/SPAN&gt;leadingAnchor&lt;SPAN class=""&gt;.&lt;/SPAN&gt;constraint&lt;SPAN class=""&gt;(&lt;/SPAN&gt;equalTo&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;self&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;leadingAnchor&lt;SPAN class=""&gt;),&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;hostingController&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;view&lt;SPAN class=""&gt;.&lt;/SPAN&gt;trailingAnchor&lt;SPAN class=""&gt;.&lt;/SPAN&gt;constraint&lt;SPAN class=""&gt;(&lt;/SPAN&gt;equalTo&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;self&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;trailingAnchor&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;])&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"AR view setup completed."&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;}&lt;/P&gt;</description>
      <pubDate>Wed, 17 Jul 2024 15:46:50 GMT</pubDate>
      <guid>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1506202#M319</guid>
      <dc:creator>DominicBowyer2</dc:creator>
      <dc:date>2024-07-17T15:46:50Z</dc:date>
    </item>
    <item>
      <title>Re: Render content from .mspk in AR world space</title>
      <link>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1507838#M324</link>
      <description>&lt;P&gt;Ok it took me too long to realise that my .mspk file was incorrectly formatted I think (was categorised as local webscene according to error message) I followed the tutorial here on how to create an offline scene:&amp;nbsp;&lt;A href="https://pro.arcgis.com/en/pro-app/latest/help/sharing/overview/create-an-offline-scene.htm" target="_blank" rel="noopener"&gt;https://pro.arcgis.com/en/pro-app/latest/help/sharing/overview/create-an-offline-scene.htm&lt;/A&gt;&amp;nbsp;which helped me address the issue. Afterwards with a bit of fiddling i was able to see the scene content! I also added a switch so that I could view it in table top mode as well. So good progress! I will share my code in case anyone else is interested. Still has issues, namely that the scene content, despite being positioned correctly relative to each other, isn't quite in its correct geographical position. Will have to fiddle further to see what I can do about this. I also suspect this might be related to the parallax issue mentioned by&amp;nbsp;&lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/440371"&gt;@Ting&lt;/a&gt;&amp;nbsp;so not sure if there is a workaround. All advice is welcomed. Thanks&lt;BR /&gt;&lt;BR /&gt;Code below:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;import&lt;/STRONG&gt;&lt;/SPAN&gt; Foundation&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;import&lt;/STRONG&gt;&lt;/SPAN&gt; UIKit&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;import&lt;/STRONG&gt;&lt;/SPAN&gt; ArcGIS&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;import&lt;/STRONG&gt;&lt;/SPAN&gt; ArcGISToolkit&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;import&lt;/STRONG&gt;&lt;/SPAN&gt; ARKit&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;import&lt;/STRONG&gt;&lt;/SPAN&gt; SwiftUI&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;import&lt;/STRONG&gt;&lt;/SPAN&gt; Combine&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;import&lt;/STRONG&gt;&lt;/SPAN&gt; CoreLocation&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;// SwiftUI View&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;struct&lt;/STRONG&gt;&lt;/SPAN&gt; AugmentRealityToCollectDataView&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;View&lt;/SPAN&gt;&lt;SPAN class=""&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;@State&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;private&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;var&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;scene&lt;/SPAN&gt;: ArcGIS.&lt;SPAN class=""&gt;Scene&lt;/SPAN&gt;?&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;@State &lt;SPAN class=""&gt;&lt;STRONG&gt;private&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;var&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;error&lt;/SPAN&gt;&lt;SPAN class=""&gt;: &lt;/SPAN&gt;Error&lt;SPAN class=""&gt;?&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;@State&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;private&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;var&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;viewMode&lt;/SPAN&gt;&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;ViewMode&lt;/SPAN&gt;&lt;SPAN class=""&gt; = .&lt;/SPAN&gt;&lt;SPAN class=""&gt;tabletop&lt;/SPAN&gt; // Initial view mode&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;@State&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;private&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;var&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;anchorPoint&lt;/SPAN&gt;: &lt;SPAN class=""&gt;Point&lt;/SPAN&gt;? = &lt;SPAN class=""&gt;&lt;STRONG&gt;nil&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;@State&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;private&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;var&lt;/STRONG&gt;&lt;/SPAN&gt; clippingDistance&lt;SPAN class=""&gt; = &lt;/SPAN&gt;&lt;SPAN class=""&gt;500.0&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;@State&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;private&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;var&lt;/STRONG&gt;&lt;/SPAN&gt; translationFactor&lt;SPAN class=""&gt; = {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;// The width of the scene, which is about 800 m.&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; geographicContentWidth = &lt;SPAN class=""&gt;800.0&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;// The physical width of the surface the scene will be placed on in meters.&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; tableContainerWidth = &lt;SPAN class=""&gt;1.0&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;return&lt;/STRONG&gt;&lt;/SPAN&gt; geographicContentWidth / tableContainerWidth&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;enum&lt;/STRONG&gt;&lt;/SPAN&gt; ViewMode&lt;SPAN class=""&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;case&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;tabletop&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;case&lt;/STRONG&gt;&lt;/SPAN&gt; worldScale&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;var&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;body&lt;/SPAN&gt;: &lt;SPAN class=""&gt;&lt;STRONG&gt;some&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;View&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;VStack&lt;/SPAN&gt;(&lt;SPAN class=""&gt;spacing&lt;/SPAN&gt;: &lt;SPAN class=""&gt;0&lt;/SPAN&gt;) {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;if&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; scene = &lt;SPAN class=""&gt;scene&lt;/SPAN&gt;, &lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; anchorPoint = &lt;SPAN class=""&gt;anchorPoint&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;if&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;viewMode&lt;/SPAN&gt; == .&lt;SPAN class=""&gt;tabletop&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;TableTopSceneView&lt;/SPAN&gt;(&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;anchorPoint&lt;/SPAN&gt;: anchorPoint,&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;translationFactor&lt;SPAN class=""&gt;: &lt;/SPAN&gt;translationFactor&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;clippingDistance&lt;SPAN class=""&gt;: &lt;/SPAN&gt;clippingDistance&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;) { _ &lt;SPAN class=""&gt;&lt;STRONG&gt;in&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;SceneView(scene: scene)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;SPAN class=""&gt;edgesIgnoringSafeArea&lt;/SPAN&gt;(.&lt;SPAN class=""&gt;all&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;} &lt;SPAN class=""&gt;&lt;STRONG&gt;else&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;WorldScaleSceneView&lt;/SPAN&gt; { _ &lt;SPAN class=""&gt;&lt;STRONG&gt;in&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;SceneView(scene: scene)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;SPAN class=""&gt;edgesIgnoringSafeArea&lt;/SPAN&gt;(.&lt;SPAN class=""&gt;all&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;} &lt;SPAN class=""&gt;&lt;STRONG&gt;else&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;ProgressView&lt;/SPAN&gt;(&lt;SPAN class=""&gt;"Loading scene..."&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;SPAN class=""&gt;task&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;await&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;loadScene&lt;/SPAN&gt;()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;SPAN class=""&gt;task&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;await&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;startLocationUpdates&lt;/SPAN&gt;()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;/SPAN&gt;overlay&lt;SPAN class=""&gt;(&lt;/SPAN&gt;alignment&lt;SPAN class=""&gt;: .&lt;/SPAN&gt;top&lt;SPAN class=""&gt;) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;VStack&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;Text&lt;/SPAN&gt;(&lt;SPAN class=""&gt;"Scene Loaded"&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;/SPAN&gt;multilineTextAlignment&lt;SPAN class=""&gt;(.&lt;/SPAN&gt;center&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;/SPAN&gt;frame&lt;SPAN class=""&gt;(&lt;/SPAN&gt;maxWidth&lt;SPAN class=""&gt;: .&lt;/SPAN&gt;infinity&lt;SPAN class=""&gt;, &lt;/SPAN&gt;alignment&lt;SPAN class=""&gt;: .&lt;/SPAN&gt;center&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;SPAN class=""&gt;padding&lt;/SPAN&gt;(&lt;SPAN class=""&gt;8&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;/SPAN&gt;background&lt;SPAN class=""&gt;(.&lt;/SPAN&gt;regularMaterial&lt;SPAN class=""&gt;, &lt;/SPAN&gt;ignoresSafeAreaEdges&lt;SPAN class=""&gt;: .&lt;/SPAN&gt;horizontal&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;if&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;scene&lt;/SPAN&gt; != &lt;SPAN class=""&gt;&lt;STRONG&gt;nil&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;Button&lt;/SPAN&gt;(&lt;SPAN class=""&gt;action&lt;/SPAN&gt;: {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;switchViewMode&lt;/SPAN&gt;()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}) {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;Text&lt;/SPAN&gt;(&lt;SPAN class=""&gt;"Switch to &lt;/SPAN&gt;\(&lt;SPAN class=""&gt;viewMode&lt;/SPAN&gt; == .&lt;SPAN class=""&gt;tabletop&lt;/SPAN&gt; ? &lt;SPAN class=""&gt;"World Scale"&lt;/SPAN&gt; : &lt;SPAN class=""&gt;"Tabletop"&lt;/SPAN&gt;)&lt;SPAN class=""&gt; View"&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;SPAN class=""&gt;padding&lt;/SPAN&gt;()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;SPAN class=""&gt;background&lt;/SPAN&gt;(&lt;SPAN class=""&gt;Color&lt;/SPAN&gt;.&lt;SPAN class=""&gt;blue&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;SPAN class=""&gt;foregroundColor&lt;/SPAN&gt;(.&lt;SPAN class=""&gt;white&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;SPAN class=""&gt;cornerRadius&lt;/SPAN&gt;(&lt;SPAN class=""&gt;8&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;.&lt;/SPAN&gt;alert&lt;SPAN class=""&gt;(&lt;/SPAN&gt;isPresented&lt;SPAN class=""&gt;: .&lt;/SPAN&gt;constant&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;error&lt;/SPAN&gt;&lt;SPAN class=""&gt; != &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;nil&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;)) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;Alert&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;title&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;Text&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;"Error"&lt;/SPAN&gt;&lt;SPAN class=""&gt;), &lt;/SPAN&gt;message&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;Text&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;error&lt;/SPAN&gt;&lt;SPAN class=""&gt;?.&lt;/SPAN&gt;localizedDescription&lt;SPAN class=""&gt; ?? &lt;/SPAN&gt;&lt;SPAN class=""&gt;"Unknown error"&lt;/SPAN&gt;&lt;SPAN class=""&gt;), &lt;/SPAN&gt;dismissButton&lt;SPAN class=""&gt;: .&lt;/SPAN&gt;default&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;Text&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;"OK"&lt;/SPAN&gt;&lt;SPAN class=""&gt;)))&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;func&lt;/STRONG&gt;&lt;/SPAN&gt; switchViewMode&lt;SPAN class=""&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;viewMode&lt;SPAN class=""&gt; = (&lt;/SPAN&gt;viewMode&lt;SPAN class=""&gt; == .&lt;/SPAN&gt;tabletop&lt;SPAN class=""&gt;) ? .&lt;/SPAN&gt;worldScale&lt;SPAN class=""&gt; : .&lt;/SPAN&gt;tabletop&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;func&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;loadScene&lt;/SPAN&gt;() &lt;SPAN class=""&gt;&lt;STRONG&gt;async&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;guard&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; filePath = &lt;SPAN class=""&gt;Bundle&lt;/SPAN&gt;.&lt;SPAN class=""&gt;main&lt;/SPAN&gt;.&lt;SPAN class=""&gt;path&lt;/SPAN&gt;(&lt;SPAN class=""&gt;forResource&lt;/SPAN&gt;: &lt;SPAN class=""&gt;"3D-East-London"&lt;/SPAN&gt;, &lt;SPAN class=""&gt;ofType&lt;/SPAN&gt;: &lt;SPAN class=""&gt;"mspk"&lt;/SPAN&gt;) &lt;SPAN class=""&gt;&lt;STRONG&gt;else&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"MSPK file not found"&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;return&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; mspk = MobileScenePackage(fileURL: &lt;SPAN class=""&gt;URL&lt;/SPAN&gt;(&lt;SPAN class=""&gt;fileURLWithPath&lt;/SPAN&gt;: filePath))&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;do&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;try&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;await&lt;/STRONG&gt;&lt;/SPAN&gt; mspk.&lt;SPAN class=""&gt;load&lt;/SPAN&gt;()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"MSPK loaded successfully."&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;if&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; loadedScene = mspk.scenes.&lt;SPAN class=""&gt;first&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;(&lt;SPAN class=""&gt;"Attempting to load scene: &lt;/SPAN&gt;\(loadedScene)&lt;SPAN class=""&gt;"&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;// Ensure the scene is fully loaded&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;try&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;await&lt;/STRONG&gt;&lt;/SPAN&gt; loadedScene.load()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;// Load all operational layers&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;for&lt;/STRONG&gt;&lt;/SPAN&gt; layer &lt;SPAN class=""&gt;&lt;STRONG&gt;in&lt;/STRONG&gt;&lt;/SPAN&gt; loadedScene.operationalLayers {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;try&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;await&lt;/STRONG&gt;&lt;/SPAN&gt; layer.&lt;SPAN class=""&gt;load&lt;/SPAN&gt;()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;(&lt;SPAN class=""&gt;"Layer name: &lt;/SPAN&gt;\(layer.&lt;SPAN class=""&gt;name&lt;/SPAN&gt;)&lt;SPAN class=""&gt;"&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;if&lt;/STRONG&gt;&lt;/SPAN&gt; layer &lt;SPAN class=""&gt;&lt;STRONG&gt;is&lt;/STRONG&gt;&lt;/SPAN&gt; FeatureLayer {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;(&lt;SPAN class=""&gt;"Layer is a FeatureLayer"&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;} &lt;SPAN class=""&gt;&lt;STRONG&gt;else&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;if&lt;/STRONG&gt;&lt;/SPAN&gt; layer &lt;SPAN class=""&gt;&lt;STRONG&gt;is&lt;/STRONG&gt;&lt;/SPAN&gt; ArcGISSceneLayer {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;(&lt;SPAN class=""&gt;"Layer is a SceneLayer"&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;} &lt;SPAN class=""&gt;&lt;STRONG&gt;else&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;(&lt;SPAN class=""&gt;"Unknown layer type"&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;self&lt;/STRONG&gt;&lt;/SPAN&gt;.&lt;SPAN class=""&gt;scene&lt;/SPAN&gt; = loadedScene&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"Scene loaded successfully."&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;} &lt;SPAN class=""&gt;&lt;STRONG&gt;else&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"No loadable scenes found in MSPK."&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;} &lt;SPAN class=""&gt;&lt;STRONG&gt;catch&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"Error loading MSPK or scene: &lt;SPAN class=""&gt;\(error)&lt;/SPAN&gt;"&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;DispatchQueue.&lt;SPAN class=""&gt;main&lt;/SPAN&gt;.&lt;SPAN class=""&gt;async&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;self&lt;/STRONG&gt;&lt;/SPAN&gt;.&lt;SPAN class=""&gt;error&lt;/SPAN&gt; = error&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;func&lt;/STRONG&gt;&lt;/SPAN&gt; startLocationUpdates&lt;SPAN class=""&gt;() &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;async&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; locationManager = &lt;SPAN class=""&gt;CLLocationManager&lt;/SPAN&gt;()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;locationManager.&lt;/SPAN&gt;requestWhenInUseAuthorization&lt;SPAN class=""&gt;()&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; locationDataSource = SystemLocationDataSource()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;do&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;try&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;await&lt;/STRONG&gt;&lt;/SPAN&gt; locationDataSource.&lt;SPAN class=""&gt;start&lt;/SPAN&gt;()&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;} &lt;SPAN class=""&gt;&lt;STRONG&gt;catch&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"Error starting location updates: &lt;SPAN class=""&gt;\(error)&lt;/SPAN&gt;"&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;return&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;Task&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;guard&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt; initialLocation = &lt;SPAN class=""&gt;&lt;STRONG&gt;await&lt;/STRONG&gt;&lt;/SPAN&gt; locationDataSource.&lt;SPAN class=""&gt;locations&lt;/SPAN&gt;.&lt;SPAN class=""&gt;first&lt;/SPAN&gt;(&lt;SPAN class=""&gt;where&lt;/SPAN&gt;: { _ &lt;SPAN class=""&gt;&lt;STRONG&gt;in&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;true&lt;/STRONG&gt;&lt;/SPAN&gt; }) &lt;SPAN class=""&gt;&lt;STRONG&gt;else&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"Failed to get initial location"&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;return&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;self&lt;/STRONG&gt;&lt;/SPAN&gt;.&lt;SPAN class=""&gt;anchorPoint&lt;/SPAN&gt; = &lt;SPAN class=""&gt;Point&lt;/SPAN&gt;(&lt;SPAN class=""&gt;x&lt;/SPAN&gt;: initialLocation.&lt;SPAN class=""&gt;position&lt;/SPAN&gt;.&lt;SPAN class=""&gt;x&lt;/SPAN&gt;, &lt;SPAN class=""&gt;y&lt;/SPAN&gt;: initialLocation.&lt;SPAN class=""&gt;position&lt;/SPAN&gt;.&lt;SPAN class=""&gt;y&lt;/SPAN&gt;, &lt;SPAN class=""&gt;z&lt;/SPAN&gt;: initialLocation.&lt;SPAN class=""&gt;position&lt;/SPAN&gt;.&lt;SPAN class=""&gt;z&lt;/SPAN&gt;)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"Current location: &lt;SPAN class=""&gt;\(&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;self&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;anchorPoint&lt;/SPAN&gt;&lt;SPAN class=""&gt;!)&lt;/SPAN&gt;"&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;}&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;// Bridge to React Native&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;@objc&lt;/STRONG&gt;&lt;/SPAN&gt;(ARNativeViewManager)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;class&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;ARNativeViewManager&lt;/SPAN&gt;: RCTViewManager {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;override&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;func&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;view&lt;/SPAN&gt;() -&amp;gt; &lt;SPAN class=""&gt;UIView&lt;/SPAN&gt;! {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;return&lt;/STRONG&gt;&lt;/SPAN&gt; ARNativeView&lt;SPAN class=""&gt;()&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;override&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;static&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;func&lt;/STRONG&gt;&lt;/SPAN&gt; requiresMainQueueSetup&lt;SPAN class=""&gt;() -&amp;gt; &lt;/SPAN&gt;&lt;SPAN class=""&gt;Bool&lt;/SPAN&gt;&lt;SPAN class=""&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;return&lt;/STRONG&gt; &lt;STRONG&gt;true&lt;/STRONG&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;}&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;class&lt;/STRONG&gt;&lt;/SPAN&gt; ARNativeView&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;UIView&lt;/SPAN&gt;&lt;SPAN class=""&gt; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;var&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;hostingController&lt;/SPAN&gt;&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;UIHostingController&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;lt;&lt;/SPAN&gt;AugmentRealityToCollectDataView&lt;SPAN class=""&gt;&amp;gt;!&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;override&lt;/STRONG&gt; &lt;STRONG&gt;init&lt;/STRONG&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;frame&lt;/SPAN&gt;&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;CGRect&lt;/SPAN&gt;&lt;SPAN class=""&gt;) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;super&lt;/STRONG&gt;&lt;/SPAN&gt;.&lt;SPAN class=""&gt;init&lt;/SPAN&gt;(&lt;SPAN class=""&gt;frame&lt;/SPAN&gt;: frame)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;setupARView&lt;SPAN class=""&gt;()&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;required&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;&lt;STRONG&gt;init&lt;/STRONG&gt;&lt;/SPAN&gt;?(&lt;SPAN class=""&gt;coder&lt;/SPAN&gt;: &lt;SPAN class=""&gt;NSCoder&lt;/SPAN&gt;) {&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;super&lt;/STRONG&gt;&lt;/SPAN&gt;.&lt;SPAN class=""&gt;init&lt;/SPAN&gt;(&lt;SPAN class=""&gt;coder&lt;/SPAN&gt;: coder)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;setupARView&lt;SPAN class=""&gt;()&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;func&lt;/STRONG&gt;&lt;/SPAN&gt; setupARView&lt;SPAN class=""&gt;() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;let&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt; arView = &lt;/SPAN&gt;AugmentRealityToCollectDataView&lt;SPAN class=""&gt;()&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class=""&gt;hostingController&lt;/SPAN&gt; = &lt;SPAN class=""&gt;UIHostingController&lt;/SPAN&gt;(&lt;SPAN class=""&gt;rootView&lt;/SPAN&gt;: arView)&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;addSubview&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;hostingController&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;view&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;hostingController&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;view&lt;SPAN class=""&gt;.&lt;/SPAN&gt;translatesAutoresizingMaskIntoConstraints&lt;SPAN class=""&gt; = &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;false&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;NSLayoutConstraint&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;activate&lt;/SPAN&gt;&lt;SPAN class=""&gt;([&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;hostingController&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;view&lt;SPAN class=""&gt;.&lt;/SPAN&gt;topAnchor&lt;SPAN class=""&gt;.&lt;/SPAN&gt;constraint&lt;SPAN class=""&gt;(&lt;/SPAN&gt;equalTo&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;self&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;topAnchor&lt;SPAN class=""&gt;),&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;hostingController&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;view&lt;SPAN class=""&gt;.&lt;/SPAN&gt;bottomAnchor&lt;SPAN class=""&gt;.&lt;/SPAN&gt;constraint&lt;SPAN class=""&gt;(&lt;/SPAN&gt;equalTo&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;self&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;bottomAnchor&lt;SPAN class=""&gt;),&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;hostingController&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;view&lt;SPAN class=""&gt;.&lt;/SPAN&gt;leadingAnchor&lt;SPAN class=""&gt;.&lt;/SPAN&gt;constraint&lt;SPAN class=""&gt;(&lt;/SPAN&gt;equalTo&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;self&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;leadingAnchor&lt;SPAN class=""&gt;),&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;hostingController&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;view&lt;SPAN class=""&gt;.&lt;/SPAN&gt;trailingAnchor&lt;SPAN class=""&gt;.&lt;/SPAN&gt;constraint&lt;SPAN class=""&gt;(&lt;/SPAN&gt;equalTo&lt;SPAN class=""&gt;: &lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;self&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;trailingAnchor&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;])&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;print&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;"AR view setup completed."&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P class=""&gt;}&lt;/P&gt;</description>
      <pubDate>Mon, 22 Jul 2024 08:49:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1507838#M324</guid>
      <dc:creator>DominicBowyer2</dc:creator>
      <dc:date>2024-07-22T08:49:39Z</dc:date>
    </item>
    <item>
      <title>Re: Render content from .mspk in AR world space</title>
      <link>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1510356#M342</link>
      <description>&lt;P&gt;Glad to hear that you made some progress! &lt;span class="lia-unicode-emoji" title=":party_popper:"&gt;🎉&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The&amp;nbsp;&lt;SPAN&gt;WorldScaleSceneView is kind of tough - it needs great GPS reception in an open area to work, good cellular reception is a plus. There is a modifier&amp;nbsp;&lt;A href="https://developers.arcgis.com/swift/toolkit-api-reference/documentation/arcgistoolkit/worldscalesceneview/oncameratrackingstatechanged(perform:)" target="_self"&gt;onCameraTrackingStateChanged&lt;/A&gt; that tells the ARCamera's tracking state. When it reaches normal, it performs the best.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Depending on the device's current location's accuracy, placing the scene might have more or less deviation. During our prototyping process, when the device's location is within 3 meters horizontal accuracy, the scene looks the most coherent in an AR camera.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Finally, parallax. Ah, parallax! &lt;span class="lia-unicode-emoji" title=":weary_face:"&gt;😩&lt;/span&gt; Because we don't have the luxury to place the scene as a 3D object (like in RealityKit) in the AR camera, we have to use some smart ways to align the scene view on top of the AR view. That is OK when you are looking down or not too far away. But once you start walking, the relative movement of the scene and the AR view is fairly noticeable. So far, our mitigation is to tune down the &lt;EM&gt;clippingDistance&lt;/EM&gt; of a scene view, and turn off the basemap's opacity to reduce the visual strangeness. But sometimes the features and graphics in the scene view have to have some context to make sense, so that's the dilemma.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I'd encourage you to share some compressed video recordings here to see how it performs, so we can provide more specific feedback!&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jul 2024 22:52:38 GMT</pubDate>
      <guid>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1510356#M342</guid>
      <dc:creator>Ting</dc:creator>
      <dc:date>2024-07-25T22:52:38Z</dc:date>
    </item>
    <item>
      <title>Re: Render content from .mspk in AR world space</title>
      <link>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1524406#M367</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/440371"&gt;@Ting&lt;/a&gt;&amp;nbsp;I completely missed your post originally, so apologies for the late reply myself. I have been busy with other projects but have been able to resume work on this again this week. So my first impression about the incorrect geographical position of the models was, I think, influenced by GPS. I see this now. Despite initialising incorrectly, when i started to walk around. It did seem to snap into place. Which i suppose makes sense to attribute to GPS as it tries to lock into the device location.&lt;BR /&gt;&lt;BR /&gt;I also had already made the basemap transparent which did seem to make the overall experience look and feel better than before. I just cant help but feel like something is off though, as if it doesn't truly feel like its in real space particularly when moving.... I'm guessing this is simply just the limitation of having the scene on top of the AR view as opposed to existing inside of it?&lt;BR /&gt;&lt;BR /&gt;I have attached two short videos of me demonstrating in my office / hallway. One should show the GPS snapping (i.e models moving) and the other of me walking in the direction of models down a hallway. I had to make them quite short and compressed to upload. I would be very interested to hear what you think and if there are any further tips you can give. Thanks!&lt;/P&gt;</description>
      <pubDate>Tue, 20 Aug 2024 14:48:33 GMT</pubDate>
      <guid>https://community.esri.com/t5/swift-maps-sdk-questions/render-content-from-mspk-in-ar-world-space/m-p/1524406#M367</guid>
      <dc:creator>DominicBowyer2</dc:creator>
      <dc:date>2024-08-20T14:48:33Z</dc:date>
    </item>
  </channel>
</rss>

