{"id":1715502,"date":"2022-09-16T17:08:47","date_gmt":"2022-09-17T00:08:47","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1715502"},"modified":"2024-04-12T03:28:14","modified_gmt":"2024-04-12T10:28:14","slug":"3d-in-runtime-layers","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers","title":{"rendered":"3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization"},"author":10152,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[23771,738191,22941],"tags":[25781,23451],"industry":[],"product":[761642,36871,36881,36891,36901,36911,36921,763892,36601],"class_list":["post-1715502","blog","type-blog","status-publish","format-standard","hentry","category-3d-gis","category-developers","category-mapping","tag-3d","tag-arcgis-runtime","product-platform","product-api-net-win-desktop","product-api-for-android","product-api-ios","product-api-java","product-api-mac-osx","product-api-cqt","product-runtime-sdk","product-developers"],"acf":{"authors":[{"ID":10152,"user_firstname":"Koushik","user_lastname":"Hajra","nickname":"Koushik Hajra","user_nicename":"khajra","display_name":"Koushik Hajra","user_email":"khajra@esri.com","user_url":"","user_registered":"2019-11-15 00:51:23","user_description":"Koushik is a Principal Product Engineer with the ArcGIS Runtime team. He primarily works on the 3D layers specializing in Qt SDK. He is passionate about building high quality functional APIs for our users. Koushik presents at Esri conferences like Developers Summit or the Users Conference where he talks about using the different parts of the Maps SDK.","user_avatar":"<img alt='' src='https:\/\/secure.gravatar.com\/avatar\/82c2e5bcc4a327abbb93fa36a32ac27e07e28b729377c4a8dded6568b2edcdb8?s=96&#038;d=blank&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/82c2e5bcc4a327abbb93fa36a32ac27e07e28b729377c4a8dded6568b2edcdb8?s=192&#038;d=blank&#038;r=g 2x' class='avatar avatar-96 photo' height='96' width='96' loading='lazy' decoding='async'\/>"}],"short_description":"This article talks about the various types of 3D data that can be used in an ArcGIS Runtime 3D application.","flexible_content":[{"acf_fc_layout":"content","content":"<p>In the <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-cqt\/3d-gis\/3d-in-arcgis-runtime-how-to-get-started\/\">previous article<\/a> you learned about how to get started with 3D in ArcGIS Runtime. In this article you will learn the available 3D data types and how they are used in ArcGIS Runtime. You will also learn some of the subtle, yet important, differences between them.<\/p>\n<p>In the previous article, you learned how to setup a SceneView to display 3D data, including an introduction to operational layers and how to add them. In this article, you are going to focus on the operational layers designed exclusively for 3D. The code snippets and the links to the doc in this article are for <a href=\"https:\/\/developers.arcgis.com\/qt\/\">ArcGIS Runtime for Qt<\/a> (C++) but the concepts apply to any of the ArcGIS Runtime APIs.<\/p>\n<p><strong>Scene Layer Types<\/strong><br \/>\nThere are several categories of 3D data that can be used in ArcGIS Runtime, representing three dimensional features using points, 3D objects, or integrated meshes. Each has its own properties and there are some subtle differences between each of them. Read on to discover the different types and how they\u2019re represented in ArcGIS Runtime.<\/p>\n<p><strong><em>3D Object Layers<\/em><\/strong><br \/>\n3D object features are meshes that represent real-world objects like buildings, vehicles, and so on as 3D models. Each feature has attributes with a common schema for all features in the layer. The image below shows a 3D object feature and its attributes:<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1716602,"id":1716602,"title":"3DObj","filename":"3DObj.gif","filesize":4034320,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/3DObj.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers\/3dobj","alt":"","author":"10152","description":"Scenelayer displaying a 3D Object layer","caption":"A 3D Object layer showing buildings in San Francisco.","name":"3dobj","status":"inherit","uploaded_to":1715502,"date":"2022-09-20 01:13:53","modified":"2022-09-20 01:19:24","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":921,"height":823,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/3DObj-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/3DObj.gif","medium-width":292,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/3DObj.gif","medium_large-width":768,"medium_large-height":686,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/3DObj.gif","large-width":921,"large-height":823,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/3DObj.gif","1536x1536-width":921,"1536x1536-height":823,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/3DObj.gif","2048x2048-width":921,"2048x2048-height":823,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/3DObj-520x465.gif","card_image-width":520,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/3DObj.gif","wide_image-width":921,"wide_image-height":823}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"image","image":{"ID":1716612,"id":1716612,"title":"Identify, selection, and popup","filename":"Screen-Shot-2022-09-19-at-6.12.50-PM.png","filesize":107942,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.12.50-PM.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers\/screen-shot-2022-09-19-at-6-12-50-pm","alt":"","author":"10152","description":"","caption":"A 3D Object identified and selected.","name":"screen-shot-2022-09-19-at-6-12-50-pm","status":"inherit","uploaded_to":1715502,"date":"2022-09-20 01:16:45","modified":"2022-09-20 01:17:44","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1206,"height":599,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.12.50-PM-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.12.50-PM.png","medium-width":464,"medium-height":230,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.12.50-PM.png","medium_large-width":768,"medium_large-height":381,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.12.50-PM.png","large-width":1206,"large-height":599,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.12.50-PM.png","1536x1536-width":1206,"1536x1536-height":599,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.12.50-PM.png","2048x2048-width":1206,"2048x2048-height":599,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.12.50-PM-826x410.png","card_image-width":826,"card_image-height":410,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.12.50-PM.png","wide_image-width":1206,"wide_image-height":599}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>In ArcGIS Runtime, 3D objects are displayed in an <a href=\"https:\/\/developers.arcgis.com\/qt\/cpp\/api-reference\/esri-arcgisruntime-arcgisscenelayer.html\">ArcGISSceneLayer<\/a>. 3D objects in ArcGIS Runtime always have an absolute <a href=\"https:\/\/developers.arcgis.com\/qt\/cpp\/api-reference\/sceneviewtypes-h.html#SurfacePlacement-enum\">surface placement<\/a>, which means they always appear at the specified elevation above sea level. In other words, the ground elevation has no effect on the vertical placement of the features.<\/p>\n<p>3D object features support operations like identify and selection. You can add popups in your application to display attributes when needed. The code below shows how to add a 3D object scene layer and perform an identify operation on it.<\/p>\n"},{"acf_fc_layout":"content","content":"<p><!-- HTML generated using hilite.me --><\/p>\n<pre style=\"margin: 0; line-height: 125%;\"><code><span style=\"color: #888888;\">\/\/ create a scene layer from a url and add it to the scene<\/span>\r\nArcGISSceneLayer<span style=\"color: #333333;\">*<\/span> layer <span style=\"color: #333333;\">=<\/span> <span style=\"color: #008800; font-weight: bold;\">new<\/span> ArcGISSceneLayer(QUrl(<span style=\"background-color: #fff0f0;\">\"https:\/\/services2.arcgis.com\/cFEFS0EWrhfDeVw9\/arcgis\/rest\/services\/SM__3857__US_SanFrancisco__Buildings_walk_time_attributes\/SceneServer\/layers\/0\"<\/span>), <span style=\"color: #008800; font-weight: bold;\">this<\/span>);\r\nm_scene<span style=\"color: #333333;\">-&gt;<\/span>operationalLayers()<span style=\"color: #333333;\">-&gt;<\/span>append(layer);\r\n\r\n<span style=\"color: #888888;\">\/\/ connect the identifyLayersCompleted event once a feature has been identified to perform a selection and display a popup<\/span>\r\nconnect(m_sceneView, <span style=\"color: #333333;\">&amp;<\/span>SceneQuickView<span style=\"color: #333333;\">::<\/span>identifyLayersCompleted, <span style=\"color: #008800; font-weight: bold;\">this<\/span>, [<span style=\"color: #008800; font-weight: bold;\">this<\/span>](QUuid, QList identifyResults){\r\n  <span style=\"color: #008800; font-weight: bold;\">if<\/span> (identifyResults.isEmpty())\r\n  {\r\n    <span style=\"color: #008800; font-weight: bold;\">return<\/span>;\r\n  }\r\n  \r\n  <span style=\"color: #008800; font-weight: bold;\">if<\/span> (<span style=\"color: #333333;\">!<\/span>m_popupManagers.isEmpty())\r\n  m_popupManagers.clear();\r\n  \r\n  <span style=\"color: #008800; font-weight: bold;\">for<\/span> (<span style=\"color: #008800; font-weight: bold;\">const<\/span> <span style=\"color: #008800; font-weight: bold;\">auto<\/span> result <span style=\"color: #333333;\">:<\/span> identifyResults)\r\n  {\r\n    ArcGISSceneLayer<span style=\"color: #333333;\">*<\/span> sceneLayer <span style=\"color: #333333;\">=<\/span> <span style=\"color: #008800; font-weight: bold;\">dynamic_cast<\/span>(result<span style=\"color: #333333;\">-&gt;<\/span>layerContent());\r\n    \r\n    <span style=\"color: #008800; font-weight: bold;\">for<\/span> (<span style=\"color: #008800; font-weight: bold;\">const<\/span> <span style=\"color: #008800; font-weight: bold;\">auto<\/span> element <span style=\"color: #333333;\">:<\/span> result<span style=\"color: #333333;\">-&gt;<\/span>geoElements())\r\n    {\r\n      <span style=\"color: #008800; font-weight: bold;\">if<\/span> (<span style=\"color: #008800; font-weight: bold;\">dynamic_cast<\/span>(element))\r\n      {\r\n        sceneLayer<span style=\"color: #333333;\">-&gt;<\/span>selectFeature(<span style=\"color: #008800; font-weight: bold;\">static_cast<\/span>(element));\r\n      }\r\n    }\r\n    \r\n    <span style=\"color: #008800; font-weight: bold;\">if<\/span> (<span style=\"color: #333333;\">!<\/span>result<span style=\"color: #333333;\">-&gt;<\/span>popups().isEmpty())\r\n    {\r\n      <span style=\"color: #008800; font-weight: bold;\">for<\/span> (Popup<span style=\"color: #333333;\">*<\/span> popup <span style=\"color: #333333;\">:<\/span> result<span style=\"color: #333333;\">-&gt;<\/span>popups())\r\n      {\r\n        <span style=\"color: #888888;\">\/\/ create a popup manager<\/span>\r\n        PopupManager<span style=\"color: #333333;\">*<\/span> popupManager <span style=\"color: #333333;\">=<\/span> <span style=\"color: #008800; font-weight: bold;\">new<\/span> PopupManager{popup, <span style=\"color: #008800; font-weight: bold;\">this<\/span>};\r\n        <span style=\"color: #888888;\">\/\/ append popup manager to list<\/span>\r\n        m_popupManagers.append(popupManager);\r\n        <span style=\"color: #888888;\">\/\/ notify QML that m_popupManagers has changed and to display the popup(s).<\/span>\r\n        emit <span style=\"color: #0066bb; font-weight: bold;\">popupManagersChanged<\/span>();\r\n      }\r\n    }\r\n  }\r\n});\r\n<\/code><\/pre>\n"},{"acf_fc_layout":"content","content":"<p><strong><em>Integrated Mesh Layers<\/em><\/strong><\/p>\n<p>Integrated meshes are typically used to represent the skin of the earth, representing the ground, vegetation, buildings, and everything else on the visible surface. They define the surface and will cut through the ground depending on the elevation of the dataset. Such layers can be created from aerial photography (perhaps from drones, for example) or from satellite imagery. They can be as small as a single building or as large as an entire geographic region (state or country).<\/p>\n<p>There are no features or attributes in this type of dataset and it consists of one contiguous piece of data. As a result, integrated mesh layers do not support identify or select operations.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1716652,"id":1716652,"title":"Integrated Mesh","filename":"Screen-Shot-2022-09-19-at-6.37.54-PM.png","filesize":91744,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.37.54-PM.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers\/screen-shot-2022-09-19-at-6-37-54-pm","alt":"","author":"10152","description":"","caption":"Integrated Mesh Layer","name":"screen-shot-2022-09-19-at-6-37-54-pm","status":"inherit","uploaded_to":1715502,"date":"2022-09-20 01:38:24","modified":"2022-09-20 01:38:47","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":780,"height":462,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.37.54-PM-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.37.54-PM.png","medium-width":441,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.37.54-PM.png","medium_large-width":768,"medium_large-height":455,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.37.54-PM.png","large-width":780,"large-height":462,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.37.54-PM.png","1536x1536-width":780,"1536x1536-height":462,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.37.54-PM.png","2048x2048-width":780,"2048x2048-height":462,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.37.54-PM.png","card_image-width":780,"card_image-height":462,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.37.54-PM.png","wide_image-width":780,"wide_image-height":462}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>In ArcGIS Runtime, integrated mesh data are displayed using an <a href=\"https:\/\/developers.arcgis.com\/qt\/cpp\/api-reference\/esri-arcgisruntime-integratedmeshlayer.html\">IntegratedMeshLayer<\/a>. Below is a code example of how you can create and add this type of layer to the scene.<\/p>\n"},{"acf_fc_layout":"content","content":"<p><!-- HTML generated using hilite.me --><\/p>\n<pre style=\"margin: 0; line-height: 125%;\"><code><span style=\"color: #888888;\">\/\/ create the integrated mesh layer<\/span>\r\n<span style=\"color: #008800; font-weight: bold;\">const<\/span> QUrl <span style=\"color: #0066bb; font-weight: bold;\">meshLyrUrl<\/span>(<span style=\"background-color: #fff0f0;\">\"https:\/\/tiles.arcgis.com\/tiles\/FQD0rKU8X5sAQfh8\/arcgis\/rest\/services\/VRICON_Yosemite_Sample_Integrated_Mesh_scene_layer\/SceneServer\"<\/span>);\r\nIntegratedMeshLayer<span style=\"color: #333333;\">*<\/span> integratedMeshLyr <span style=\"color: #333333;\">=<\/span> <span style=\"color: #008800; font-weight: bold;\">new<\/span> IntegratedMeshLayer(meshLyrUrl, <span style=\"color: #008800; font-weight: bold;\">this<\/span>);\r\n\r\n<span style=\"color: #888888;\">\/\/ add the layer to the scene<\/span>\r\nm_scene<span style=\"color: #333333;\">-&gt;<\/span>operationalLayers()<span style=\"color: #333333;\">-&gt;<\/span>append(integratedMeshLyr);\r\n<\/code><\/pre>\n"},{"acf_fc_layout":"content","content":"<p><strong><em>Point Cloud Layer<\/em><\/strong><\/p>\n<p>Point cloud layers are used to display large amounts of point data and are optimized for rendering. Lidar is a perfect example of point cloud layer. Point cloud layers are always at an absolute height for surface placement.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1716662,"id":1716662,"title":"Point Cloud Layer","filename":"Screen-Shot-2022-09-19-at-6.42.16-PM.png","filesize":83296,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.42.16-PM.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers\/screen-shot-2022-09-19-at-6-42-16-pm","alt":"","author":"10152","description":"","caption":"Point Cloud Layer","name":"screen-shot-2022-09-19-at-6-42-16-pm","status":"inherit","uploaded_to":1715502,"date":"2022-09-20 01:44:58","modified":"2022-09-20 01:45:38","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":767,"height":368,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.42.16-PM-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.42.16-PM.png","medium-width":464,"medium-height":223,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.42.16-PM.png","medium_large-width":767,"medium_large-height":368,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.42.16-PM.png","large-width":767,"large-height":368,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.42.16-PM.png","1536x1536-width":767,"1536x1536-height":368,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.42.16-PM.png","2048x2048-width":767,"2048x2048-height":368,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.42.16-PM.png","card_image-width":767,"card_image-height":368,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.42.16-PM.png","wide_image-width":767,"wide_image-height":368}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>In ArcGIS Runtime, point clouds are displayed in a <a href=\"https:\/\/developers.arcgis.com\/qt\/cpp\/api-reference\/esri-arcgisruntime-pointcloudlayer.html\">PointCloudLayer<\/a>. The code snippet below illustrates how to add a point cloud layer to a scene. Operations such as identify or selection are not supported for point cloud layers in ArcGIS Runtime.<\/p>\n"},{"acf_fc_layout":"content","content":"<p><!-- HTML generated using hilite.me --><\/p>\n<pre style=\"margin: 0; line-height: 125%;\"><code><span style=\"color: #888888;\">\/\/ create the point cloud layer<\/span>\r\n<span style=\"color: #008800; font-weight: bold;\">const<\/span> QUrl <span style=\"color: #0066bb; font-weight: bold;\">pointCloudLyrUrl<\/span>(<span style=\"background-color: #fff0f0;\">\"path to local data\"<\/span>); <span style=\"color: #888888;\">\/\/ .slpk<\/span>\r\nPointCloudLayer<span style=\"color: #333333;\">*<\/span> pointCloudLyr <span style=\"color: #333333;\">=<\/span> <span style=\"color: #008800; font-weight: bold;\">new<\/span> PointCloudLayer(pointCloudLyrUrl, <span style=\"color: #008800; font-weight: bold;\">this<\/span>);\r\n\r\n<span style=\"color: #888888;\">\/\/ add the layer to the scene<\/span>\r\nm_scene<span style=\"color: #333333;\">-&gt;<\/span>operationalLayers()<span style=\"color: #333333;\">-&gt;<\/span>append(pointCloudLyr);\r\n<\/code><\/pre>\n"},{"acf_fc_layout":"content","content":"<p><strong><em>3D Point Layer<\/em><\/strong><\/p>\n<p>3D points layers represent points with three dimensional coordinates. Point layers honor all the surface placement modes, which means if a point\u2019s surface placement is absolute, it will appear at the specified elevation above the sea level, and so on. Point layers have feature attributes that can be used to symbolize them using either 2D or 3D symbols. 3D points may represent features like trees, street furniture, and so on.<\/p>\n<p>&nbsp;<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1716692,"id":1716692,"title":"Point Layer with 3D Geometries","filename":"Screen-Shot-2022-09-19-at-6.57.57-PM.png","filesize":78517,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.57.57-PM.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers\/screen-shot-2022-09-19-at-6-57-57-pm","alt":"","author":"10152","description":"","caption":"Point Layer with 3D Geometries","name":"screen-shot-2022-09-19-at-6-57-57-pm","status":"inherit","uploaded_to":1715502,"date":"2022-09-20 01:58:18","modified":"2022-09-20 01:58:45","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":986,"height":431,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.57.57-PM-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.57.57-PM.png","medium-width":464,"medium-height":203,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.57.57-PM.png","medium_large-width":768,"medium_large-height":336,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.57.57-PM.png","large-width":986,"large-height":431,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.57.57-PM.png","1536x1536-width":986,"1536x1536-height":431,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.57.57-PM.png","2048x2048-width":986,"2048x2048-height":431,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.57.57-PM-826x361.png","card_image-width":826,"card_image-height":361,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/Screen-Shot-2022-09-19-at-6.57.57-PM.png","wide_image-width":986,"wide_image-height":431}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>Point layers are displayed by a <a href=\"https:\/\/developers.arcgis.com\/qt\/cpp\/api-reference\/esri-arcgisruntime-arcgisscenelayer.html\">ArcGISSceneLayer<\/a> in ArcGIS Runtime. They support operations like identify and selection. The code example below shows how to create and add a point layer in ArcGIS Runtime.<\/p>\n"},{"acf_fc_layout":"content","content":"<p><!-- HTML generated using hilite.me --><\/p>\n<pre style=\"margin: 0; line-height: 125%;\"><code><span style=\"color: #888888;\">\/\/ create a new point scene layer from world airport REST service<\/span>\r\nArcGISSceneLayer<span style=\"color: #333333;\">*<\/span> pointSceneLayer <span style=\"color: #333333;\">=<\/span> <span style=\"color: #008800; font-weight: bold;\">new<\/span> ArcGISSceneLayer(\r\nQUrl(<span style=\"background-color: #fff0f0;\">\"https:\/\/tiles.arcgis.com\/tiles\/V6ZHFr6zdgNZuVG0\/arcgis\/rest\/services\/Airports_PointSceneLayer\/SceneServer\/layers\/0\"<\/span>), <span style=\"color: #008800; font-weight: bold;\">this<\/span>);\r\n\r\n<span style=\"color: #888888;\">\/\/ add scene layer source to the scene to display points at world airport locations<\/span>\r\nm_scene<span style=\"color: #333333;\">-&gt;<\/span>operationalLayers()<span style=\"color: #333333;\">-&gt;<\/span>append(pointSceneLayer);\r\n<\/code><\/pre>\n"},{"acf_fc_layout":"content","content":"<p>Point layers are thinned automatically for better performance and visibility depending on the distance at which the points are viewed. At greater distances, you may see fewer features than you will at a closer distance.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1716682,"id":1716682,"title":"thinning","filename":"thinning.gif","filesize":3702745,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/thinning.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers\/thinning-3","alt":"","author":"10152","description":"","caption":"Thinning in a Point 3D layer","name":"thinning-3","status":"inherit","uploaded_to":1715502,"date":"2022-09-20 01:52:59","modified":"2022-09-20 01:53:49","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":776,"height":650,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/thinning-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/thinning.gif","medium-width":312,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/thinning.gif","medium_large-width":768,"medium_large-height":643,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/thinning.gif","large-width":776,"large-height":650,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/thinning.gif","1536x1536-width":776,"1536x1536-height":650,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/thinning.gif","2048x2048-width":776,"2048x2048-height":650,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/thinning-555x465.gif","card_image-width":555,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/09\/thinning.gif","wide_image-width":776,"wide_image-height":650}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>A key difference between points in a scene layer and those in a feature layer is that data in a feature layer can be dynamic whereas data in a scene layer is cached and static. A feature\u2019s geometry and attributes in a feature service may be updated over time. Scene layer data however is static and never changes.<\/p>\n<p><strong>Conclusion:<\/strong><\/p>\n<p>In this article, you learned a few details about some of the 3D datasets and how to use them in ArcGIS Runtime. You also learned some of the subtle differences in functionality among them like what surface placements are supported in each and whether they have feature attributes. I hope you enjoyed reading this. Your feedback is important and I hope you will share your thoughts about this article or other topics you\u2019d like to learn about.<\/p>\n"}],"related_articles":[{"ID":1593612,"post_author":"10152","post_date":"2022-06-13 10:22:00","post_date_gmt":"2022-06-13 17:22:00","post_content":"","post_title":"Get started with 3D in ArcGIS Runtime","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"3d-in-arcgis-runtime-how-to-get-started","to_ping":"","pinged":"","post_modified":"2024-04-12 03:43:44","post_modified_gmt":"2024-04-12 10:43:44","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1593612","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":false,"wide_image":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization<\/title>\n<meta name=\"description\" content=\"ArcGIS Blog 3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization\" \/>\n<meta property=\"og:description\" content=\"ArcGIS Blog 3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-12T10:28:14+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers\"},\"author\":{\"name\":\"Koushik Hajra\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/bc6919b07c0800535d03064ff373a802\"},\"headline\":\"3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization\",\"datePublished\":\"2022-09-17T00:08:47+00:00\",\"dateModified\":\"2024-04-12T10:28:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers\"},\"wordCount\":8,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"3D\",\"ArcGIS Runtime\"],\"articleSection\":[\"3D Visualization &amp; Analytics\",\"Developers\",\"Mapping\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers\",\"name\":\"3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2022-09-17T00:08:47+00:00\",\"dateModified\":\"2024-04-12T10:28:14+00:00\",\"description\":\"ArcGIS Blog 3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/bc6919b07c0800535d03064ff373a802\",\"name\":\"Koushik Hajra\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/82c2e5bcc4a327abbb93fa36a32ac27e07e28b729377c4a8dded6568b2edcdb8?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/82c2e5bcc4a327abbb93fa36a32ac27e07e28b729377c4a8dded6568b2edcdb8?s=96&d=blank&r=g\",\"caption\":\"Koushik Hajra\"},\"description\":\"Koushik is a Principal Product Engineer with the ArcGIS Runtime team. He primarily works on the 3D layers specializing in Qt SDK. He is passionate about building high quality functional APIs for our users. Koushik presents at Esri conferences like Developers Summit or the Users Conference where he talks about using the different parts of the Maps SDK.\",\"sameAs\":[\"www.linkedin.com\/in\/ koushik-hajra-2b32a41\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/khajra\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization","description":"ArcGIS Blog 3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers","og_locale":"en_US","og_type":"article","og_title":"3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization","og_description":"ArcGIS Blog 3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2024-04-12T10:28:14+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers"},"author":{"name":"Koushik Hajra","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/bc6919b07c0800535d03064ff373a802"},"headline":"3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization","datePublished":"2022-09-17T00:08:47+00:00","dateModified":"2024-04-12T10:28:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers"},"wordCount":8,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["3D","ArcGIS Runtime"],"articleSection":["3D Visualization &amp; Analytics","Developers","Mapping"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers","name":"3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2022-09-17T00:08:47+00:00","dateModified":"2024-04-12T10:28:14+00:00","description":"ArcGIS Blog 3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/3d-in-runtime-layers#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"3D in ArcGIS Runtime (Part 2) \u2013 Layers and visualization"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/bc6919b07c0800535d03064ff373a802","name":"Koushik Hajra","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/82c2e5bcc4a327abbb93fa36a32ac27e07e28b729377c4a8dded6568b2edcdb8?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/82c2e5bcc4a327abbb93fa36a32ac27e07e28b729377c4a8dded6568b2edcdb8?s=96&d=blank&r=g","caption":"Koushik Hajra"},"description":"Koushik is a Principal Product Engineer with the ArcGIS Runtime team. He primarily works on the 3D layers specializing in Qt SDK. He is passionate about building high quality functional APIs for our users. Koushik presents at Esri conferences like Developers Summit or the Users Conference where he talks about using the different parts of the Maps SDK.","sameAs":["www.linkedin.com\/in\/ koushik-hajra-2b32a41"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/khajra"}]}},"text_date":"September 16, 2022","author_name":"Koushik Hajra","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/khajra","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"Developers","tag_data":[{"term_id":25781,"name":"3D","slug":"3d","term_group":0,"term_taxonomy_id":25781,"taxonomy":"post_tag","description":"","parent":0,"count":342,"filter":"raw"},{"term_id":23451,"name":"ArcGIS Runtime","slug":"arcgis-runtime","term_group":0,"term_taxonomy_id":23451,"taxonomy":"post_tag","description":"","parent":0,"count":91,"filter":"raw"}],"category_data":[{"term_id":23771,"name":"3D Visualization &amp; Analytics","slug":"3d-gis","term_group":0,"term_taxonomy_id":23771,"taxonomy":"category","description":"","parent":0,"count":686,"filter":"raw"},{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":422,"filter":"raw"},{"term_id":22941,"name":"Mapping","slug":"mapping","term_group":0,"term_taxonomy_id":22941,"taxonomy":"category","description":"","parent":0,"count":2690,"filter":"raw"}],"product_data":[{"term_id":761642,"name":"ArcGIS Location Platform","slug":"platform","term_group":0,"term_taxonomy_id":761642,"taxonomy":"product","description":"","parent":36601,"count":214,"filter":"raw"},{"term_id":36871,"name":"ArcGIS Runtime SDK for .NET","slug":"api-net-win-desktop","term_group":0,"term_taxonomy_id":36871,"taxonomy":"product","description":"","parent":36601,"count":65,"filter":"raw"},{"term_id":36881,"name":"ArcGIS Runtime SDK for Android","slug":"api-for-android","term_group":0,"term_taxonomy_id":36881,"taxonomy":"product","description":"","parent":36601,"count":65,"filter":"raw"},{"term_id":36891,"name":"ArcGIS Runtime SDK for iOS","slug":"api-ios","term_group":0,"term_taxonomy_id":36891,"taxonomy":"product","description":"","parent":36601,"count":55,"filter":"raw"},{"term_id":36901,"name":"ArcGIS Runtime SDK for Java","slug":"api-java","term_group":0,"term_taxonomy_id":36901,"taxonomy":"product","description":"","parent":36601,"count":59,"filter":"raw"},{"term_id":36911,"name":"ArcGIS Runtime SDK for macOS","slug":"api-mac-osx","term_group":0,"term_taxonomy_id":36911,"taxonomy":"product","description":"","parent":36601,"count":27,"filter":"raw"},{"term_id":36921,"name":"ArcGIS Runtime SDK for Qt","slug":"api-cqt","term_group":0,"term_taxonomy_id":36921,"taxonomy":"product","description":"","parent":36601,"count":80,"filter":"raw"},{"term_id":763892,"name":"ArcGIS Runtime SDKs","slug":"runtime-sdk","term_group":0,"term_taxonomy_id":763892,"taxonomy":"product","description":"","parent":756692,"count":20,"filter":"raw"},{"term_id":36601,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":36601,"taxonomy":"product","description":"","parent":0,"count":763,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=developers","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1715502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/10152"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=1715502"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1715502\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=1715502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=1715502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=1715502"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=1715502"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=1715502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}