{"id":1946112,"date":"2023-06-20T10:38:08","date_gmt":"2023-06-20T17:38:08","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1946112"},"modified":"2023-06-20T10:39:32","modified_gmt":"2023-06-20T17:39:32","slug":"mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps","title":{"rendered":"Mapping complex data with multipart geometries using the ArcGIS Maps SDKs for Native Apps"},"author":309352,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[22941],"tags":[],"industry":[],"product":[768902,36601],"class_list":["post-1946112","blog","type-blog","status-publish","format-standard","hentry","category-mapping","product-sdk-kotlin","product-developers"],"acf":{"authors":[{"ID":309352,"user_firstname":"Priyanka","user_lastname":"Rupani","nickname":"PRupani","user_nicename":"prupani","display_name":"Priyanka Rupani","user_email":"PRupani@esri.com","user_url":"","user_registered":"2022-05-02 19:12:46","user_description":"I'm a product engineer on the ArcGIS Maps SDKs for Native Apps team. I develop android samples showcasing the Native SDKs features for the users.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Screen-Shot-2023-06-11-at-10.01.04-PM-461x465.png' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"short_description":"Learn to create and map multipart geometry using ArcGIS Maps SDK for Native Apps","flexible_content":[{"acf_fc_layout":"content","content":"<p><span class=\"TrackedChange SCXW264840201 BCX0\"><span class=\"TextRun SCXW264840201 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW264840201 BCX0\" data-ccp-charstyle=\"normaltextrun\" data-ccp-charstyle-defn=\"{&quot;ObjectId&quot;:&quot;a157dbe4-9f6b-4ed6-b75c-bc52308cdc05|31&quot;,&quot;ClassId&quot;:1073872969,&quot;Properties&quot;:[469775450,&quot;normaltextrun&quot;,201340122,&quot;1&quot;,134233614,&quot;true&quot;,469778129,&quot;normaltextrun&quot;,335572020,&quot;1&quot;,469778324,&quot;Default Paragraph Font&quot;]}\">Do you have an application that requires mapping of complex geometries and <\/span><\/span><\/span><span class=\"TextRun SCXW264840201 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW264840201 BCX0\" data-ccp-charstyle=\"normaltextrun\">data, such as a network of interconnected pipes, <span class=\"NormalTextRun SCXW116431129 BCX0\">c<\/span><span class=\"NormalTextRun SCXW116431129 BCX0\">omplex <\/span><span class=\"FindHit SCXW116431129 BCX0\">railroad<\/span><span class=\"NormalTextRun SCXW116431129 BCX0\"> system, <\/span>lakes within islands, or mapping multiple islands, but <\/span><span class=\"NormalTextRun SCXW264840201 BCX0\" data-ccp-charstyle=\"normaltextrun\">don\u2019t<\/span><span class=\"NormalTextRun SCXW264840201 BCX0\" data-ccp-charstyle=\"normaltextrun\"> know where to start? <\/span><span class=\"NormalTextRun SCXW264840201 BCX0\" data-ccp-charstyle=\"normaltextrun\">You\u2019ve<\/span><span class=\"NormalTextRun SCXW264840201 BCX0\" data-ccp-charstyle=\"normaltextrun\"> come to the right place.<\/span> <span class=\"NormalTextRun SCXW264840201 BCX0\" data-ccp-charstyle=\"normaltextrun\">These types of complex geometries<\/span><span class=\"NormalTextRun SCXW264840201 BCX0\" data-ccp-charstyle=\"normaltextrun\"> are <\/span><span class=\"NormalTextRun SCXW264840201 BCX0\" data-ccp-charstyle=\"normaltextrun\">termed<\/span> <span class=\"NormalTextRun SCXW264840201 BCX0\" data-ccp-charstyle=\"normaltextrun\">multipart geometries<\/span><span class=\"NormalTextRun SCXW264840201 BCX0\" data-ccp-charstyle=\"normaltextrun\">,<\/span><\/span> <span class=\"TextRun SCXW264840201 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW264840201 BCX0\" data-ccp-charstyle=\"normaltextrun\">which <\/span><span class=\"NormalTextRun SCXW264840201 BCX0\" data-ccp-charstyle=\"normaltextrun\">is<\/span><span class=\"NormalTextRun SCXW264840201 BCX0\" data-ccp-charstyle=\"normaltextrun\"> a collection of simpler geometries combined to form a more complex shape.\u00a0<\/span><\/span><\/p>\n<p><span class=\"TextRun SCXW121203448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\" data-ccp-charstyle-defn=\"{&quot;ObjectId&quot;:&quot;a157dbe4-9f6b-4ed6-b75c-bc52308cdc05|31&quot;,&quot;ClassId&quot;:1073872969,&quot;Properties&quot;:[469775450,&quot;normaltextrun&quot;,201340122,&quot;1&quot;,134233614,&quot;true&quot;,469778129,&quot;normaltextrun&quot;,335572020,&quot;1&quot;,469778324,&quot;Default Paragraph Font&quot;]}\">In this blog, we will explore the concept of multipart <\/span><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">geometries<\/span> <span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">using<\/span><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\"> the<\/span> <\/span><a class=\"Hyperlink SCXW121203448 BCX0\" href=\"https:\/\/developers.arcgis.com\/documentation\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"FieldRange SCXW121203448 BCX0\"><span class=\"TextRun Underlined SCXW121203448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun CommentStart SCXW121203448 BCX0\" data-ccp-charstyle=\"Hyperlink\">ArcGIS<\/span><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"Hyperlink\"> Maps SDKs for Native Apps<\/span><\/span><\/span><\/a><span class=\"TextRun SCXW121203448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"> <span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">and describe<\/span> <span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">multipart geometry <\/span><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">types,<\/span> <span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">how to create them<\/span><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">, <\/span><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">their <\/span><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">applications<\/span> <span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">and the benefits of using them.<\/span> <\/span><span class=\"TextRun SCXW121203448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun CommentStart SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">The code <\/span><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">snippet<\/span><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">s for this blog are written using <\/span><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">the <\/span><\/span><a class=\"Hyperlink SCXW121203448 BCX0\" href=\"https:\/\/developers.arcgis.com\/kotlin\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"FieldRange SCXW121203448 BCX0\"><span class=\"TextRun Underlined SCXW121203448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"Hyperlink\">ArcGIS Maps SDK for Kotlin<\/span><\/span><\/span><\/a><span class=\"TextRun SCXW121203448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\"> but all the concepts apply to the <\/span><\/span><span class=\"TrackedChange SCXW121203448 BCX0\"><span class=\"TextRun SCXW121203448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">ArcGIS Maps SDKs<\/span><\/span><\/span><span class=\"TextRun SCXW121203448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\"> for<\/span> <span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">.NET<\/span><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">, Qt, Java<\/span><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\"> and <\/span><span class=\"NormalTextRun SCXW121203448 BCX0\" data-ccp-charstyle=\"normaltextrun\">Swift.<\/span><\/span><span class=\"EOP SCXW121203448 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\"><br \/>\n<\/span><\/p>\n<p><span data-contrast=\"auto\">Let\u2019s get started with some terminologies we will be using in this blog.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}\">\u00a0<\/span><\/p>\n<p><span style=\"text-decoration: underline\"><b>Feature<\/b><b>, Geometry and Hosted tab<\/b><b>le<\/b>\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The developer glossary defines\u00a0<a href=\"https:\/\/developers.arcgis.com\/documentation\/glossary\/feature\/\">features<\/a> as a representation of a real-world object on a map. A feature will store its geographic representation, which could be a point, line<\/span><span data-contrast=\"auto\">,<\/span><span data-contrast=\"auto\"> or polygon, that has both geometry (e.g. the length of the line or area of the polygon) and attribute data (e.g. the number of people, the temperature, ID number).\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/developers.arcgis.com\/documentation\/glossary\/geometry\/\"><span data-contrast=\"none\">Geometry<\/span><\/a><span data-contrast=\"auto\"> refers to the spatial aspects of a feature. It is used to define the shape and position of\u202fthe feature.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">An ArcGIS <a href=\"https:\/\/developers.arcgis.com\/documentation\/mapping-apis-and-services\/data-hosting\/hosted-tables\/\">hosted table<\/a> contains information about a set of geographic features. Each row represents a feature, and each column represents one feature attribute.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Shown below<\/span><span data-contrast=\"none\"> is highlighted demographic data of USA states in a hosted table.<\/span><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1963692,"id":1963692,"title":"Jun-11-2023 21-39-03","filename":"Jun-11-2023-21-39-03-2.gif","filesize":1079199,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Jun-11-2023-21-39-03-2.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps\/jun-11-2023-21-39-03-3","alt":"","author":"309352","description":"","caption":"","name":"jun-11-2023-21-39-03-3","status":"inherit","uploaded_to":1946112,"date":"2023-06-12 04:42:51","modified":"2023-06-12 04:42:51","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":1000,"height":418,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Jun-11-2023-21-39-03-2-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Jun-11-2023-21-39-03-2.gif","medium-width":464,"medium-height":194,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Jun-11-2023-21-39-03-2.gif","medium_large-width":768,"medium_large-height":321,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Jun-11-2023-21-39-03-2.gif","large-width":1000,"large-height":418,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Jun-11-2023-21-39-03-2.gif","1536x1536-width":1000,"1536x1536-height":418,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Jun-11-2023-21-39-03-2.gif","2048x2048-width":1000,"2048x2048-height":418,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Jun-11-2023-21-39-03-2-826x345.gif","card_image-width":826,"card_image-height":345,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Jun-11-2023-21-39-03-2.gif","wide_image-width":1000,"wide_image-height":418}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><b><span data-contrast=\"auto\">What are multipart geometries?<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Multipart geometries allow users to represent complex spatial features using simpler <a href=\"https:\/\/developers.arcgis.com\/documentation\/common-data-types\/geometry-objects.htm\">geometry types<\/a>. These complex features can be composed of multiple points, lines or polygons that are combined to form a more complex shape.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><span data-contrast=\"none\">Multipart geometries are categorized as multipoints, multipart lines and multipart polygons, as seen in the image below.<\/span><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1947392,"id":1947392,"title":"","filename":"multipart-geometry-3.png","filesize":79501,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/multipart-geometry-3.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps\/multipart-geometry-5","alt":"","author":"309352","description":"","caption":"","name":"multipart-geometry-5","status":"inherit","uploaded_to":1946112,"date":"2023-06-01 18:05:31","modified":"2023-06-04 17:32:32","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":750,"height":486,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/multipart-geometry-3-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/multipart-geometry-3.png","medium-width":403,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/multipart-geometry-3.png","medium_large-width":750,"medium_large-height":486,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/multipart-geometry-3.png","large-width":750,"large-height":486,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/multipart-geometry-3.png","1536x1536-width":750,"1536x1536-height":486,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/multipart-geometry-3.png","2048x2048-width":750,"2048x2048-height":486,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/multipart-geometry-3-718x465.png","card_image-width":718,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/multipart-geometry-3.png","wide_image-width":750,"wide_image-height":486}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><span data-contrast=\"auto\">As these geometries are composed of multiple simpler geometries grouped into one complex geometry, we can represent them as a single entry in a hosted table, rather than having multiple entries for each single geometry.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"none\">Multipoint geometry<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:120,&quot;335559739&quot;:120}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">Multipoint geometry is a type of geometry which represents <\/span><span data-contrast=\"none\">features that consist of clusters of points, such as weather station networks, lidar point clusters, a <\/span><span data-contrast=\"none\">collection of trees in a <\/span><span data-contrast=\"none\">forest or a <\/span><span data-contrast=\"none\">prairie dog underground den\u202fwhich has multiple entry and exit points.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:120,&quot;335559739&quot;:120}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">For example, the image below shows a collection of trees on the Esri Redlands campus. Each individual tree could be represented as a single point feature on a map, or since each tree is of the same species, each point could be represented in a multipoint geometry to represent the entire collection of trees on the campus.\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:120,&quot;335559739&quot;:120}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">In this example, choosing a single multipoint geometry (uses a single row in the database) <\/span><span data-contrast=\"none\">over many single point geometries<\/span><span data-contrast=\"none\"> (uses many rows) has many advantages. For example, it allows efficient management and analysis of the spatial data such as location and characteristics of individual trees on the campus. In addition, calculating the density of trees in different areas of the campus or determining the distance between trees, could be performed on multipoint geometry. Such analysis helps with the campus planning and development.\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:120,&quot;335559739&quot;:120}\">\u00a0<\/span><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1947322,"id":1947322,"title":"","filename":"treeess.png","filesize":1081295,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/treeess.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps\/treeess-3","alt":"","author":"309352","description":"","caption":"Esri campus in Redlands, California","name":"treeess-3","status":"inherit","uploaded_to":1946112,"date":"2023-06-01 17:59:21","modified":"2023-06-01 18:21:29","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":650,"height":650,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/treeess-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/treeess.png","medium-width":261,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/treeess.png","medium_large-width":650,"medium_large-height":650,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/treeess.png","large-width":650,"large-height":650,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/treeess.png","1536x1536-width":650,"1536x1536-height":650,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/treeess.png","2048x2048-width":650,"2048x2048-height":650,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/treeess-465x465.png","card_image-width":465,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/treeess.png","wide_image-width":650,"wide_image-height":650}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><span data-contrast=\"auto\">The code snippet below demonstrates creating a multipoint geometry using ArcGIS Maps SDK for Kotlin. It adds a collection of trees on the Esri campus in Redlands, California. Each individual tree is a point feature which is combined to form a multipoint geometry.<\/span><\/p>\n"},{"acf_fc_layout":"content","content":"<details>\n<summary><span style=\"color: purple;font-style: bold\">\u2295 Show code &#8230;<\/span><\/summary>\n<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #aaaaaa;font-style: italic\">\/\/ Create Multipoint geometry using collection of points <\/span>\r\n<span style=\"color: #aaaaaa;font-style: italic\">\/\/ representing each individual tree<\/span>\r\n        <span style=\"color: #0000aa\">val<\/span> multipoint = Multipoint(\r\n            listOf(\r\n                Point(-<span style=\"color: #009999\">13046198.211<\/span>, <span style=\"color: #009999\">4036513.863<\/span>),\r\n                Point(-<span style=\"color: #009999\">13046194.120<\/span>, <span style=\"color: #009999\">4036524.953<\/span>),\r\n                Point(-<span style=\"color: #009999\">13046188.702<\/span>, <span style=\"color: #009999\">4036519.410<\/span>),\r\n                Point(-<span style=\"color: #009999\">13046198.404<\/span>, <span style=\"color: #009999\">4036504.248<\/span>)\r\n                ...\r\n                ...\r\n            ),\r\n            SpatialReference.webMercator()\r\n        )\r\n        lifecycleScope.launch {\r\n            <span style=\"color: #aaaaaa;font-style: italic\">\/\/ create a tree symbol<\/span>\r\n            <span style=\"color: #0000aa\">val<\/span> treeSymbol = createPinSymbol()\r\n            <span style=\"color: #aaaaaa;font-style: italic\">\/\/ creates a graphic with the tree point and symbol<\/span>\r\n            <span style=\"color: #0000aa\">val<\/span> treeGraphic =\r\n                Graphic(multipoint, treeSymbol)\r\n            graphicsOverlay.graphics.add(treeGraphic)\r\n        }\r\n    }\r\n<\/pre>\n<\/div>\n<\/details>\n"},{"acf_fc_layout":"content","content":"<p>View the complete code<a href=\"https:\/\/github.com\/prupani-7\/Multipart-Geometry\/blob\/main\/multipoint-geometry\/src\/main\/java\/com\/esri\/arcgismaps\/sample\/multipartgeometry\/MainActivity.kt\"> on <b data-stringify-type=\"bold\">GitHub<\/b><\/a>.<br \/>\n<b><span data-contrast=\"auto\"><br \/>\nMultipart line geometry<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Multipart line geometry is a type of geometry that represents a set of two or more individual line features combined to form a more complex feature<\/span><span data-contrast=\"auto\">. <\/span><span data-contrast=\"auto\">It is used to represent linear features that cannot be shown as a single line feature. These individual line features can be disconnected, which means that they do not share endpoints with adjacent line features.\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">An example of a multipart line geometry would be a braided river composed of multiple river channels that form part of the same river. Other examples include a complex railroad system or a pipeline network.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Shown below is an aerial image of the Brahmaputra River, Bangladesh. There are many channels forming this river, and they share the same attribute since collectively the channels\/streams make up the Brahmaputra River.\u202f<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The different streams that are highlighted in blue connect to the Brahmaputra River which eventually joins the Indian Ocean.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1947402,"id":1947402,"title":"","filename":"river-2.png","filesize":931601,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/river-2.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps\/river-8","alt":"","author":"309352","description":"","caption":"Brahmaputra River, Bangladesh","name":"river-8","status":"inherit","uploaded_to":1946112,"date":"2023-06-01 18:06:04","modified":"2023-06-01 18:16:51","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":650,"height":650,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/river-2-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/river-2.png","medium-width":261,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/river-2.png","medium_large-width":650,"medium_large-height":650,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/river-2.png","large-width":650,"large-height":650,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/river-2.png","1536x1536-width":650,"1536x1536-height":650,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/river-2.png","2048x2048-width":650,"2048x2048-height":650,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/river-2-465x465.png","card_image-width":465,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/river-2.png","wide_image-width":650,"wide_image-height":650}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><span data-contrast=\"none\">Representing this complex river system as a single multipart line geometry helps in efficient data analysis like computing the length and width of the complete river system. One can easily manage, analyze and visualize the spatial data related with the entire system, rather than having to work with individual segments of the river.<\/span><\/p>\n<p><span data-contrast=\"auto\">The code snippet below demonstrates creating complex multipart polylines using ArcGIS Maps SDK for Kotlin. This code creates different river streams which connect to the main river. The four river streams constituting a single river which eventually connects to the ocean are represented as one multipart polyline feature.<\/span><span data-ccp-props=\"{}\"><br \/>\n<\/span><\/p>\n"},{"acf_fc_layout":"content","content":"<details>\n<summary><span style=\"color: purple;font-style: bold\">\u2295 Show code &#8230;<\/span><\/summary>\n<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #aaaaaa;font-style: italic\">\/\/create river streams and add graphics to display these polylines in an overlay<\/span>\r\n<span style=\"color: #0000aa\">private<\/span> <span style=\"color: #0000aa\">fun<\/span> <span style=\"color: #00aa00\">constructRiverStream<\/span>() {\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ create first river stream which is basically a Mutable Part and connects to the ocean<\/span>\r\n        <span style=\"color: #0000aa\">val<\/span> riverstream1 = MutablePart.createWithPoints(\r\n            listOf(\r\n                <span style=\"color: #aaaaaa;font-style: italic\">\/\/ add points to the point collection<\/span>\r\n                Point(-<span style=\"color: #009999\">13431206.32<\/span>, <span style=\"color: #009999\">5131073.67<\/span>),\r\n                Point(-<span style=\"color: #009999\">13431209.45<\/span>, <span style=\"color: #009999\">5131072.27<\/span>),\r\n                Point(-<span style=\"color: #009999\">13431212.87<\/span>, <span style=\"color: #009999\">5131071.16<\/span>),\r\n            ),\r\n            SpatialReference.webMercator()\r\n        )\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ create second river stream which is basically a Mutable Part and connects to the first river stream<\/span>\r\n        <span style=\"color: #0000aa\">val<\/span> riverstream2 = MutablePart.createWithPoints(\r\n            listOf(\r\n                <span style=\"color: #aaaaaa;font-style: italic\">\/\/ add points to the point collection<\/span>\r\n                Point(-<span style=\"color: #009999\">13431212.87<\/span>, <span style=\"color: #009999\">5131071.16<\/span>),\r\n                Point(-<span style=\"color: #009999\">13431214.08<\/span>, <span style=\"color: #009999\">5131068.29<\/span>),\r\n                Point(-<span style=\"color: #009999\">13431216.15<\/span>, <span style=\"color: #009999\">5131064.61<\/span>),\r\n                ...\r\n            ),\r\n            SpatialReference.webMercator()\r\n        )\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ create third river stream which is basically a Mutable Part and connects to the first river stream<\/span>\r\n        <span style=\"color: #0000aa\">val<\/span> riverstream3 = MutablePart.createWithPoints(\r\n            listOf(\r\n                <span style=\"color: #aaaaaa;font-style: italic\">\/\/ add points to the point collection<\/span>\r\n                Point(-<span style=\"color: #009999\">13431212.87<\/span>, <span style=\"color: #009999\">5131071.16<\/span>),\r\n                Point(-<span style=\"color: #009999\">13431216.00<\/span>, <span style=\"color: #009999\">5131068.84<\/span>),\r\n                Point(-<span style=\"color: #009999\">13431217.36<\/span>, <span style=\"color: #009999\">5131065.42<\/span>),\r\n                ...\r\n            ),\r\n            SpatialReference.webMercator()\r\n        )\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ create fourth river stream which is basically a Mutable Part and connects to the first river stream<\/span>\r\n        <span style=\"color: #0000aa\">val<\/span> riverstream4 = MutablePart.createWithPoints(\r\n            listOf(\r\n                <span style=\"color: #aaaaaa;font-style: italic\">\/\/ add points to the point collection<\/span>\r\n                Point(-<span style=\"color: #009999\">13431211.06<\/span>, <span style=\"color: #009999\">5131071.87<\/span>),\r\n                Point(-<span style=\"color: #009999\">13431219.33<\/span>, <span style=\"color: #009999\">5131070.76<\/span>),\r\n                Point(-<span style=\"color: #009999\">13431225.88<\/span>, <span style=\"color: #009999\">5131066.53<\/span>),\r\n                ...\r\n            ),\r\n            SpatialReference.webMercator()\r\n        )\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ create fifth river stream which is basically a Mutable Part and connects to the first river stream<\/span>\r\n        <span style=\"color: #0000aa\">val<\/span> riverstream5 = MutablePart.createWithPoints(\r\n            listOf(\r\n                <span style=\"color: #aaaaaa;font-style: italic\">\/\/ add points to the point collection<\/span>\r\n                Point(-<span style=\"color: #009999\">13431209.30<\/span>, <span style=\"color: #009999\">5131072.27<\/span>),\r\n                Point(-<span style=\"color: #009999\">13431219.33<\/span>, <span style=\"color: #009999\">5131075.44<\/span>),\r\n                Point(-<span style=\"color: #009999\">13431225.88<\/span>, <span style=\"color: #009999\">5131072.17<\/span>),\r\n                ...\r\n            ),\r\n            SpatialReference.webMercator()\r\n        )\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ add all the parts created above to a List<\/span>\r\n        <span style=\"color: #0000aa\">var<\/span> parts = listOf(riverstream1, riverstream2, riverstream3, riverstream4, riverstream5)\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ Create a Polyline geometry using the list of parts created above. This Polyline Builder is essentially a MultipartPolyline geometry comprising of the river streams which are ultimately part of a main river which connects to the ocean<\/span>\r\n        <span style=\"color: #0000aa\">var<\/span> polylineBuilder = PolylineBuilder(parts)\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ define a line symbol which will represent the river stream with its width defined.<\/span>\r\n        <span style=\"color: #0000aa\">val<\/span> riverSymbol = SimpleLineSymbol(SimpleLineSymbolStyle.Solid, Color.blue, <span style=\"color: #009999\">4f<\/span>)\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ create a Graphic using the polyline geometry and the riverSymbol and add it to the GraphicsOverlay<\/span>\r\n        graphicsOverlay.graphics.add(Graphic(polylineBuilder.toGeometry(), riverSymbol))\r\n\r\n    }\r\n<\/pre>\n<\/div>\n<\/details>\n"},{"acf_fc_layout":"content","content":"<p><span data-ccp-props=\"{}\">View complete code <a href=\"https:\/\/github.com\/prupani-7\/Multipart-Geometry\/blob\/main\/multipart-polyline-geometry\/src\/main\/java\/com\/esri\/arcgismaps\/sample\/multipartgeometry\/MainActivity.kt\">on <b data-stringify-type=\"bold\">GitHub<\/b><\/a>.<\/span><br \/>\n<b><\/b><\/p>\n<p><strong>Multipart polygon geometry\u00a0<\/strong><\/p>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><span data-contrast=\"auto\">In GIS, when a path encloses an area, it is called a ring. The ring starts and ends at the same place. A collection of one or more such rings make a polygon.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><span data-contrast=\"auto\">A multipart polygon is composed of many such individual polygons that combine to form a complex shape. Each polygon in the multipart polygon is termed as a part, and each part has its own size and shape. They also represent areas that are completely contained within another area, like an island in a lake.\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">For example, agricultural fields with complex shapes and multiple sections can be represented as a multipart polygon geometry that permits the farmers to understand and analyze the agricultural output. Complex geologic formations such as mountains, ridges and canyons, can be represented as multipart polygons to help geologists analyze the structure of the Earth\u2019s crust and its formation process.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Another example as shown in the image below, is the state of Hawaii which can be represented as a multipart polygon as it is made of eight main islands, each with its own shape and size. Hawaii can be stored as a single multipart polygon feature in the database table. This allows for a detailed and accurate representation of the state\u2019s geography in GIS applications like land use planning or disaster response.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}\">\u00a0<\/span><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1947342,"id":1947342,"title":"","filename":"hawaii-2.png","filesize":553648,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/hawaii-2.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps\/hawaii-6","alt":"","author":"309352","description":"","caption":"State of Hawaii with its eight main islands","name":"hawaii-6","status":"inherit","uploaded_to":1946112,"date":"2023-06-01 18:00:07","modified":"2023-06-01 18:21: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":700,"height":510,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/hawaii-2-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/hawaii-2.png","medium-width":358,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/hawaii-2.png","medium_large-width":700,"medium_large-height":510,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/hawaii-2.png","large-width":700,"large-height":510,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/hawaii-2.png","1536x1536-width":700,"1536x1536-height":510,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/hawaii-2.png","2048x2048-width":700,"2048x2048-height":510,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/hawaii-2-638x465.png","card_image-width":638,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/hawaii-2.png","wide_image-width":700,"wide_image-height":510}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><span data-contrast=\"auto\">The code snippet below demonstrates creating complex multipart polygons by adding a couple of islands and a lake within an island on the map using ArcGIS Maps SDK for Kotlin.<\/span><\/p>\n"},{"acf_fc_layout":"content","content":"<details>\n<summary><span style=\"color: purple;font-style: bold\">\u2295 Show code &#8230;<\/span>\u00a0<\/summary>\n<div style=\"background: #ffffff;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #aaaaaa;font-style: italic\">\/\/create input polygons and add graphics to display these polygons in an overlay<\/span>\r\n<span style=\"color: #0000aa\">private<\/span> <span style=\"color: #0000aa\">fun<\/span> <span style=\"color: #00aa00\">createPolygons<\/span>() {\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ create an island which is the first polygon part<\/span>\r\n        <span style=\"color: #0000aa\">val<\/span> island1 = MutablePart.createWithPoints(\r\n            listOf(\r\n                <span style=\"color: #aaaaaa;font-style: italic\">\/\/ add points to the point collection<\/span>\r\n                Point(-<span style=\"color: #009999\">16983394.627<\/span>, <span style=\"color: #009999\">1725046.488<\/span>),\r\n                Point(-<span style=\"color: #009999\">16967695.178<\/span>, <span style=\"color: #009999\">1741475.672<\/span>),\r\n                Point(-<span style=\"color: #009999\">16939145.948<\/span>, <span style=\"color: #009999\">1736705.524<\/span>),\r\n                ...\r\n            ),\r\n            SpatialReference.webMercator()\r\n        )\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ create a another island which is the second polygon part<\/span>\r\n        <span style=\"color: #0000aa\">val<\/span> island2 = MutablePart.createWithPoints(\r\n            listOf(\r\n                <span style=\"color: #aaaaaa;font-style: italic\">\/\/ add points to the point collection<\/span>\r\n                Point(-<span style=\"color: #009999\">16858450.243<\/span>, <span style=\"color: #009999\">1742851.240<\/span>),\r\n                Point(-<span style=\"color: #009999\">16855023.117<\/span>, <span style=\"color: #009999\">1750367.747<\/span>),\r\n                Point(-<span style=\"color: #009999\">16851622.565<\/span>, <span style=\"color: #009999\">1754465.787<\/span>), \r\n                ...\r\n            ),\r\n            SpatialReference.webMercator()\r\n        )\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ create a another island which is the third polygon part and acts as an outer ring<\/span>\r\n        <span style=\"color: #0000aa\">val<\/span> outerIsland = MutablePart.createWithPoints(\r\n            listOf(\r\n                <span style=\"color: #aaaaaa;font-style: italic\">\/\/ add points to the point collection<\/span>\r\n                Point(-<span style=\"color: #009999\">16894265.768<\/span>, <span style=\"color: #009999\">1780130.116<\/span>),\r\n                Point(-<span style=\"color: #009999\">16888215.299<\/span>, <span style=\"color: #009999\">1785870.657<\/span>),\r\n                Point(-<span style=\"color: #009999\">16877750.891<\/span>, <span style=\"color: #009999\">1783166.995<\/span>)\r\n                ...\r\n            ),\r\n            SpatialReference.webMercator()\r\n        )\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ create a lake which is a polygon part and an iner ring to the above outer ring<\/span>\r\n        <span style=\"color: #0000aa\">val<\/span> innerLake = MutablePart.createWithPoints(\r\n            listOf(\r\n                <span style=\"color: #aaaaaa;font-style: italic\">\/\/ add points to the point collection<\/span>\r\n                Point(-<span style=\"color: #009999\">16895378.882<\/span>, <span style=\"color: #009999\">1773374.994<\/span>),\r\n                Point(-<span style=\"color: #009999\">16887986.287<\/span>, <span style=\"color: #009999\">1772724.682<\/span>),\r\n                Point(-<span style=\"color: #009999\">16883906.162<\/span>, <span style=\"color: #009999\">1768680.088<\/span>),\r\n                ...\r\n            ),\r\n            SpatialReference.webMercator()\r\n        )\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ add all the parts created above to a List<\/span>\r\n        <span style=\"color: #0000aa\">var<\/span> parts = listOf(island1, island2, outerIsland, innerLake)\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ Create a PolygonBuilder using the list of parts created above<\/span>\r\n        <span style=\"color: #0000aa\">var<\/span> polygonBuilder = PolygonBuilder(parts)\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ define a line symbol which will represent the boundary of the polygon<\/span>\r\n        <span style=\"color: #0000aa\">val<\/span> lineSymbol = SimpleLineSymbol(SimpleLineSymbolStyle.Solid, Color.fromRgba(<span style=\"color: #009999\">153<\/span>, <span style=\"color: #009999\">221<\/span>, <span style=\"color: #009999\">255<\/span>), <span style=\"color: #009999\">2f<\/span>)\r\n\r\n        <span style=\"color: #aaaaaa;font-style: italic\">\/\/ create and add a green graphic to fill color of the Polygon Builder.<\/span>\r\n        <span style=\"color: #0000aa\">val<\/span> greenFill = SimpleFillSymbol(SimpleFillSymbolStyle.Solid, Color.fromRgba(<span style=\"color: #009999\">128<\/span>, <span style=\"color: #009999\">255<\/span>, <span style=\"color: #009999\">170<\/span> ), lineSymbol)\r\n        graphicsOverlay.graphics.add(Graphic(polygonBuilder.toGeometry(), greenFill))\r\n\r\n    }\r\n<\/pre>\n<\/div>\n<\/details>\n"},{"acf_fc_layout":"content","content":"<p>View complete code<a href=\"https:\/\/github.com\/prupani-7\/Multipart-Geometry\/blob\/main\/multipart-polygon-geometry\/src\/main\/java\/com\/esri\/arcgismaps\/sample\/multipartgeometry\/MainActivity.kt\"> on <b data-stringify-type=\"bold\">GitHub<\/b><\/a>.<\/p>\n<p><span data-contrast=\"auto\">Interesting Fact:\u00a0 Did you know that the largest lake on an island is Nettilling Lake on Baffin Island, Canada\u202f\u2013 5,542 km2\u202f(2,140 sq mi)? This is a perfect example of a real-world feature which we can represent using a multipart polygon. <\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1947452,"id":1947452,"title":"","filename":"nettiling-lake-2.png","filesize":580033,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/nettiling-lake-2.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps\/nettiling-lake-5","alt":"","author":"309352","description":"","caption":"Nettilling Lake on Baffin Island, Canada","name":"nettiling-lake-5","status":"inherit","uploaded_to":1946112,"date":"2023-06-01 18:08:06","modified":"2023-06-01 18:15:42","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":700,"height":497,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/nettiling-lake-2-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/nettiling-lake-2.png","medium-width":368,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/nettiling-lake-2.png","medium_large-width":700,"medium_large-height":497,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/nettiling-lake-2.png","large-width":700,"large-height":497,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/nettiling-lake-2.png","1536x1536-width":700,"1536x1536-height":497,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/nettiling-lake-2.png","2048x2048-width":700,"2048x2048-height":497,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/nettiling-lake-2-655x465.png","card_image-width":655,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/nettiling-lake-2.png","wide_image-width":700,"wide_image-height":497}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><b><span data-contrast=\"none\">Applications of multipart geometries<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:120,&quot;335559739&quot;:120}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">Let\u2019s see some other real-life examples of multipart geometry.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:120,&quot;335559739&quot;:120}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">Multipart geometries can be used to represent complex road and transportation networks, like highways with multiple lanes, ramps, and intersections, which help to analyze the connections between different parts of the network.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:120,&quot;335559739&quot;:120}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">Complex urban features such as city blocks, neighborhoods, complex building structures can be represented as multipart geometries which help the users to understand the relationship between different city zones.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:120,&quot;335559739&quot;:120}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">They can also be used to represent complex environmental features such as national forests, nature conservancy land, wildlife sanctuary and various water bodies which are important in environmental assessments and planning.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:120,&quot;335559739&quot;:120}\">\u00a0<\/span><\/p>\n"},{"acf_fc_layout":"content","content":"<p><b><span data-contrast=\"none\">Benefits of multipart geometries:<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:120,&quot;335559739&quot;:120}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">Using multipart geometry over multiple individual geometries has many benefits. One of the important benefits is enhanced performance. The amount of memory required to store these geometries is reduced significantly when multiple related parts or features are stored as a single multipart geometry object, which in turn boosts the efficiency of spatial queries and analysis.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:120,&quot;335559739&quot;:120}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">Multipart geometries help simplify data management. If a map feature consists of multiple polylines, we can store them as a single multipart polyline geometry. Which means, you only need to update a single geometry object, instead of many individual geometries. This makes it easier to update the feature and maintain its integrity.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:120,&quot;335559739&quot;:120}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">Another benefit of multipart geometries is increased flexibility in representing complex spatial features. By representing features as a single multipart geometry, you can very easily visualize and analyze the feature as a whole, rather than treating each part as a separate feature.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:120,&quot;335559739&quot;:120}\">\u00a0<\/span><\/p>\n"},{"acf_fc_layout":"content","content":"<p><b><span data-contrast=\"none\">Conclusion:<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:120,&quot;335559739&quot;:120}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">In summary, using multipart geometries in your mapping applications is an efficient way of representing a wide range of complex features in geographic data. From water bodies and land masses to buildings and transportation networks, multipart geometries allow for a detailed representation of complex features, which helps in urban and town planning, environmental resource planning, and other fields.\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\">We also showcased how the ArcGIS Maps SDK for Kotlin can be used to map such complex features. If you&#8217;re interested to know more about adding attributes to a feature, check out this <a href=\"https:\/\/developers.arcgis.com\/kotlin\/sample-code\/add-features-with-contingent-values\/\">sample app<\/a> which creates and adds features\u00a0whose attribute values satisfy a predefined set of contingencies. To learn further about the capabilities of the ArcGIS Maps SDKs for Kotlin, check out our <a href=\"https:\/\/github.com\/Esri\/arcgis-maps-sdk-kotlin-samples\">GitHub samples<\/a> code repo.\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">If you\u2019re new to developing ArcGIS Maps SDKs for Native Apps, each SDK (<\/span><a href=\"https:\/\/developers.arcgis.com\/net\/\"><span data-contrast=\"none\">.NET<\/span><\/a><span data-contrast=\"none\">, <\/span><a href=\"https:\/\/developers.arcgis.com\/qt\/\"><span data-contrast=\"none\">Qt<\/span><\/a><span data-contrast=\"none\">, <\/span><a href=\"https:\/\/developers.arcgis.com\/java\/\"><span data-contrast=\"none\">Java<\/span><\/a><span data-contrast=\"none\">, <\/span><a href=\"https:\/\/developers.arcgis.com\/kotlin\/\"><span data-contrast=\"none\">Kotlin<\/span><\/a><span data-contrast=\"none\"> and <\/span><a href=\"https:\/\/developers.arcgis.com\/swift\/\"><span data-contrast=\"none\">Swift<\/span><\/a><span data-contrast=\"none\">) has rich guide documentation, API Reference, Tutorials, and samples. Simply <\/span><a href=\"https:\/\/developers.arcgis.com\/dashboard\/\"><span data-contrast=\"none\">sign up<\/span><\/a><span data-contrast=\"none\"> for a free ArcGIS Developer account and you\u2019ll be able to access everything you need to develop your app.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n"}],"related_articles":"","card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/esri-campus-013-headquarters-night-1024x683-1.jpg","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/adobestock-96427091.jpg"},"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>Mapping complex data with multipart geometries using the ArcGIS Maps SDKs for Native Apps<\/title>\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\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mapping complex data with multipart geometries using the ArcGIS Maps SDKs for Native Apps\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps\" \/>\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=\"2023-06-20T17:39:32+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\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps\"},\"author\":{\"name\":\"Priyanka Rupani\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/884c3f120604f7d14f8033219b6c33fe\"},\"headline\":\"Mapping complex data with multipart geometries using the ArcGIS Maps SDKs for Native Apps\",\"datePublished\":\"2023-06-20T17:38:08+00:00\",\"dateModified\":\"2023-06-20T17:39:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps\"},\"wordCount\":14,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"articleSection\":[\"Mapping\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps\",\"name\":\"Mapping complex data with multipart geometries using the ArcGIS Maps SDKs for Native Apps\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2023-06-20T17:38:08+00:00\",\"dateModified\":\"2023-06-20T17:39:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mapping complex data with multipart geometries using the ArcGIS Maps SDKs for Native Apps\"}]},{\"@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\/884c3f120604f7d14f8033219b6c33fe\",\"name\":\"Priyanka Rupani\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Screen-Shot-2023-06-11-at-10.01.04-PM-461x465.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Screen-Shot-2023-06-11-at-10.01.04-PM-461x465.png\",\"caption\":\"Priyanka Rupani\"},\"description\":\"I'm a product engineer on the ArcGIS Maps SDKs for Native Apps team. I develop android samples showcasing the Native SDKs features for the users.\",\"url\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Mapping complex data with multipart geometries using the ArcGIS Maps SDKs for Native Apps","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\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps","og_locale":"en_US","og_type":"article","og_title":"Mapping complex data with multipart geometries using the ArcGIS Maps SDKs for Native Apps","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2023-06-20T17:39:32+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\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps"},"author":{"name":"Priyanka Rupani","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/884c3f120604f7d14f8033219b6c33fe"},"headline":"Mapping complex data with multipart geometries using the ArcGIS Maps SDKs for Native Apps","datePublished":"2023-06-20T17:38:08+00:00","dateModified":"2023-06-20T17:39:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps"},"wordCount":14,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"articleSection":["Mapping"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps","name":"Mapping complex data with multipart geometries using the ArcGIS Maps SDKs for Native Apps","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2023-06-20T17:38:08+00:00","dateModified":"2023-06-20T17:39:32+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/mapping\/mapping-complex-data-with-multipart-geometries-using-the-arcgis-maps-sdks-for-native-apps#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Mapping complex data with multipart geometries using the ArcGIS Maps SDKs for Native Apps"}]},{"@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\/884c3f120604f7d14f8033219b6c33fe","name":"Priyanka Rupani","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Screen-Shot-2023-06-11-at-10.01.04-PM-461x465.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/Screen-Shot-2023-06-11-at-10.01.04-PM-461x465.png","caption":"Priyanka Rupani"},"description":"I'm a product engineer on the ArcGIS Maps SDKs for Native Apps team. I develop android samples showcasing the Native SDKs features for the users.","url":""}]}},"text_date":"June 20, 2023","author_name":"Priyanka Rupani","author_page":false,"custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/06\/adobestock-96427091.jpg","primary_product":"Developers","tag_data":[],"category_data":[{"term_id":22941,"name":"Mapping","slug":"mapping","term_group":0,"term_taxonomy_id":22941,"taxonomy":"category","description":"","parent":0,"count":2689,"filter":"raw"}],"product_data":[{"term_id":768902,"name":"ArcGIS Maps SDK for Kotlin","slug":"sdk-kotlin","term_group":0,"term_taxonomy_id":768902,"taxonomy":"product","description":"","parent":36601,"count":33,"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\/1946112","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\/309352"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=1946112"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1946112\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=1946112"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=1946112"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=1946112"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=1946112"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=1946112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}