{"id":69761,"date":"2015-10-26T09:00:23","date_gmt":"2015-10-26T09:00:23","guid":{"rendered":"http:\/\/www.esri.com\/arcgis-blog\/products\/product\/uncategorized\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript\/"},"modified":"2021-08-03T00:47:05","modified_gmt":"2021-08-03T07:47:05","slug":"creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript","title":{"rendered":"Creating a simple basemap picker for your apps in AppStudio using QML and JavaScript"},"author":5351,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[37101,23851,22941],"tags":[23451,24921,28891,24621,24631],"industry":[],"product":[36591,36621,36601],"class_list":["post-69761","blog","type-blog","status-publish","format-standard","hentry","category-announcements","category-data-management","category-mapping","tag-arcgis-runtime","tag-javascript","tag-native","tag-qml","tag-qt","product-apps","product-appstudio","product-developers"],"acf":{"short_description":"Providing users the option to select from a variety of basemaps can offer a more refined finish and custom option to end users.","flexible_content":[{"acf_fc_layout":"content","content":"<p>A basemap is an essential mapping component for providing relativity and context to <a href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/spatial-analytics-data-science\/overview\">spatial data<\/a> displayed on a map. Providing users the option to select from a variety of basemaps can offer a more refined finish and custom option to end users. The short video below demonstrates a simple basemap picker written in QML and JavaScript with AppStudio for ArcGIS.<!--more--><\/p>\n<iframe  id=\"_ytid_11679\"  width=\"480\" height=\"270\"  data-origwidth=\"480\" data-origheight=\"270\" src=\"https:\/\/www.youtube.com\/embed\/sRRTOBOEkyg?enablejsapi=1&autoplay=0&cc_load_policy=0&cc_lang_pref=&iv_load_policy=3&loop=0&rel=0&fs=1&playsinline=0&autohide=2&theme=dark&color=red&controls=1&\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe>\n<p>We have this <a title=\"GitHub\" href=\"https:\/\/github.com\/Esri\/arcgis-appstudio-samples\/tree\/master\/basemappicker\" target=\"_blank\" rel=\"noopener\">sample app on GitHub<\/a> ready for you to drop into your AppStudio app and customize further as you see fit.<\/p>\n<p><strong>If you are curious to learn more here are the details.<\/strong><\/p>\n<p>The code is organized in three main QML files:<br \/>\n1. BasemapPicker_Sample.qml \u2013 stores the app properties and global variables.<br \/>\n2. MapPage.qml \u2013\u00a0stores the Map component, a button image for basemap picker and logic to change basemap in the map control.<br \/>\n3. BasemapPicker.qml \u2013 custom component that contains the basemap layers, basemap picker\u2019s interface and functionality.<\/p>\n<p>The basemap picker uses a ListModel component to store information about each basemap, including the basemap\u2019s name, the REST URL of the basemap\u2019s map service, as well as the relative path to the basemap\u2019s thumbnail png within the project folder.<\/p>\n<p>[sourcecode language=&#8221;javascript&#8221;]<br \/>\n\/\/Base Map Picker model<br \/>\nproperty alias baseMapPickerModel: baseMapPickerModel<br \/>\nListModel {<br \/>\nid: baseMapPickerModel<br \/>\nListElement {<br \/>\nname: &#8220;Topography&#8221;<br \/>\nurl: &#8220;http:\/\/services.arcgisonline.com\/ArcGIS\/rest\/services\/World_Topo_Map\/MapServer&#8221;<br \/>\nimage: &#8220;images\/topo_thumbnail.png&#8221;<br \/>\n}<br \/>\nListElement {<br \/>\nname: &#8220;Satellite&#8221;<br \/>\nurl: &#8220;http:\/\/services.arcgisonline.com\/arcgis\/rest\/services\/World_Imagery\/MapServer&#8221;<br \/>\nimage: &#8220;images\/satellite_thumbnail.png&#8221;<br \/>\n}<br \/>\nListElement {<br \/>\nname: &#8220;Streets&#8221;<br \/>\nurl: &#8220;http:\/\/services.arcgisonline.com\/arcgis\/rest\/services\/World_Street_Map\/MapServer&#8221;<br \/>\nimage: &#8220;images\/streets_thumbnail.png&#8221;<br \/>\n}<br \/>\nListElement {<br \/>\nname: &#8220;Oceans&#8221;<br \/>\nurl: &#8220;http:\/\/services.arcgisonline.com\/arcgis\/rest\/services\/Ocean_Basemap\/MapServer&#8221;<br \/>\nimage: &#8220;images\/oceans_thumbnail.png&#8221;<br \/>\n}<br \/>\nListElement {<br \/>\nname: &#8220;Light Gray&#8221;<br \/>\nurl: &#8220;http:\/\/services.arcgisonline.com\/ArcGIS\/rest\/services\/Canvas\/World_Light_Gray_Base\/MapServer&#8221;<br \/>\nimage: &#8220;images\/lightgray_thumbnail.png&#8221;<br \/>\n}<br \/>\n}<br \/>\n[\/sourcecode]<\/p>\n<p>The basemap picker\u2019s interface consists of a call-out graphic with a scrollable list of basemap thumbnails and names. The call-out graphic becomes visible when the user clicks the basemap control button on the map. The list of basemaps in the call-out interface is created using a Repeater component along with the ListModel described above. A Flickable component within the call-out graphic allows the items in the ListModel to scroll.<\/p>\n\n<p>When an item is selected from the list, the call-out graphic\u2019s visible property is set to false and a function (signal) is called with the name and URL of the selected basemap. In the MapPage.qml inside of the \u201conChange\u201d event using JavaScript we can then remove current basemap and add a new basemap based on the selection.<\/p>\n<p>[sourcecode language=&#8221;javascript&#8221;]<br \/>\n\/\/BasemapPicker Component<br \/>\nBasemapPicker {<br \/>\nid: basemapPicker<br \/>\nfontFamilyName: app.fontSourceSansProReg.name<br \/>\ntextFontPointSize: app.baseFontSize*0.65<br \/>\ncurrentBaseMapName: &#8220;Topography&#8221;<\/p>\n<p>anchors {<br \/>\nright: rectBaseMapControlBox.left<br \/>\nbottom: rectBaseMapControlBox.bottom<br \/>\nbottomMargin: -60*app.scaleFactor<br \/>\n}<\/p>\n<p>onChange: {<br \/>\n\/\/This function gets called when a new basemap has been selected<br \/>\nconsole.log(&#8220;Got: &#8220;, name, url);<\/p>\n<p>\/\/1. Remove any exisiting basemap layer<br \/>\ngroupLayer.removeAllLayers();<\/p>\n<p>\/\/2. Create a new tiled layer<br \/>\nvar layer = ArcGISRuntime.createObject(&#8220;ArcGISTiledMapServiceLayer&#8221;);<br \/>\nlayer.url = url;<br \/>\nlayer.name = name;<br \/>\nlayer.initialize();<\/p>\n<p>\/\/3. Add this new layer to the groupLayer<br \/>\ngroupLayer.add(layer);<br \/>\n}<br \/>\n}<br \/>\n[\/sourcecode]<\/p>\n<p>Download the BasemapPickerSample code on GitHub to add a basemap picker to your own mobile (or Desktop) apps built using AppStudio for ArcGIS. Or, borrow from the code below to create your very own custom basemap picker. Add\/remove basemaps, change the design, or update the interface \u2013 the possibilities are limitless!<\/p>\n<p><a href=\"https:\/\/github.com\/Esri\/arcgis-appstudio-samples\/tree\/master\/basemappicker\" target=\"_blank\" rel=\"noopener\">Link to GitHub Repo<\/a><\/p>\n<p><em>Contributed by Sathya Prasad and Brooke Reams<\/em><\/p>\n"}],"authors":[{"ID":5351,"user_firstname":"Sathya","user_lastname":"Prasad","nickname":"sathyaprasad","user_nicename":"sathyaprasad","display_name":"Sathya Prasad","user_email":"sprasad@esri.com","user_url":"","user_registered":"2018-03-02 00:17:05","user_description":"Group Engineer Manager and Software Development Lead. Story Maps + AppStudio + Survey123 + ArcGIS Companion + Esri Labs.\r\n\r\nSathya Prasad has been with Esri for 14 years and currently works in the Software Development group. Sathya has spent more than fifteen years in the intersection of software and GIS industry and has extensive experience with Mobile, Web, Social, Spatial and Cloud technologies. Sathya enjoys solving hard problems especially in the GIS and spatial world and coming up with very creative solutions. His background is in both computer science and business education.","user_avatar":"<img alt='' src='https:\/\/secure.gravatar.com\/avatar\/17b23b5be93509381518d37f3b169a0e3d467fab5c91654efe28c5d7ad2a486c?s=96&#038;d=blank&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/17b23b5be93509381518d37f3b169a0e3d467fab5c91654efe28c5d7ad2a486c?s=192&#038;d=blank&#038;r=g 2x' class='avatar avatar-96 photo' height='96' width='96' loading='lazy' decoding='async'\/>"}],"related_articles":"","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>Creating a simple basemap picker for your apps in AppStudio using QML and JavaScript<\/title>\n<meta name=\"description\" content=\"Providing users the option to select from a variety of basemaps can offer a more refined finish and custom option to end users.\" \/>\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\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating a simple basemap picker for your apps in AppStudio using QML and JavaScript\" \/>\n<meta property=\"og:description\" content=\"Providing users the option to select from a variety of basemaps can offer a more refined finish and custom option to end users.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript\" \/>\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=\"2021-08-03T07:47:05+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\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript\"},\"author\":{\"name\":\"Sathya Prasad\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/337e0f20d2d1cec86c1cec35d9a13f1b\"},\"headline\":\"Creating a simple basemap picker for your apps in AppStudio using QML and JavaScript\",\"datePublished\":\"2015-10-26T09:00:23+00:00\",\"dateModified\":\"2021-08-03T07:47:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript\"},\"wordCount\":14,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"ArcGIS Runtime\",\"JavaScript\",\"native\",\"QML\",\"Qt\"],\"articleSection\":[\"Announcements\",\"Data Management\",\"Mapping\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript\",\"name\":\"Creating a simple basemap picker for your apps in AppStudio using QML and JavaScript\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2015-10-26T09:00:23+00:00\",\"dateModified\":\"2021-08-03T07:47:05+00:00\",\"description\":\"Providing users the option to select from a variety of basemaps can offer a more refined finish and custom option to end users.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating a simple basemap picker for your apps in AppStudio using QML and JavaScript\"}]},{\"@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\/337e0f20d2d1cec86c1cec35d9a13f1b\",\"name\":\"Sathya Prasad\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/17b23b5be93509381518d37f3b169a0e3d467fab5c91654efe28c5d7ad2a486c?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/17b23b5be93509381518d37f3b169a0e3d467fab5c91654efe28c5d7ad2a486c?s=96&d=blank&r=g\",\"caption\":\"Sathya Prasad\"},\"description\":\"Group Engineer Manager and Software Development Lead. Story Maps + AppStudio + Survey123 + ArcGIS Companion + Esri Labs. Sathya Prasad has been with Esri for 14 years and currently works in the Software Development group. Sathya has spent more than fifteen years in the intersection of software and GIS industry and has extensive experience with Mobile, Web, Social, Spatial and Cloud technologies. Sathya enjoys solving hard problems especially in the GIS and spatial world and coming up with very creative solutions. His background is in both computer science and business education.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/sathyaprasad\/\",\"https:\/\/x.com\/sathyaprasad\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/sathyaprasad\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Creating a simple basemap picker for your apps in AppStudio using QML and JavaScript","description":"Providing users the option to select from a variety of basemaps can offer a more refined finish and custom option to end users.","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\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript","og_locale":"en_US","og_type":"article","og_title":"Creating a simple basemap picker for your apps in AppStudio using QML and JavaScript","og_description":"Providing users the option to select from a variety of basemaps can offer a more refined finish and custom option to end users.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2021-08-03T07:47:05+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\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript"},"author":{"name":"Sathya Prasad","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/337e0f20d2d1cec86c1cec35d9a13f1b"},"headline":"Creating a simple basemap picker for your apps in AppStudio using QML and JavaScript","datePublished":"2015-10-26T09:00:23+00:00","dateModified":"2021-08-03T07:47:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript"},"wordCount":14,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["ArcGIS Runtime","JavaScript","native","QML","Qt"],"articleSection":["Announcements","Data Management","Mapping"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript","name":"Creating a simple basemap picker for your apps in AppStudio using QML and JavaScript","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2015-10-26T09:00:23+00:00","dateModified":"2021-08-03T07:47:05+00:00","description":"Providing users the option to select from a variety of basemaps can offer a more refined finish and custom option to end users.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/appstudio\/announcements\/creating-a-simple-basemap-picker-for-your-apps-in-appstudio-using-qml-and-javascript#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Creating a simple basemap picker for your apps in AppStudio using QML and JavaScript"}]},{"@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\/337e0f20d2d1cec86c1cec35d9a13f1b","name":"Sathya Prasad","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/17b23b5be93509381518d37f3b169a0e3d467fab5c91654efe28c5d7ad2a486c?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/17b23b5be93509381518d37f3b169a0e3d467fab5c91654efe28c5d7ad2a486c?s=96&d=blank&r=g","caption":"Sathya Prasad"},"description":"Group Engineer Manager and Software Development Lead. Story Maps + AppStudio + Survey123 + ArcGIS Companion + Esri Labs. Sathya Prasad has been with Esri for 14 years and currently works in the Software Development group. Sathya has spent more than fifteen years in the intersection of software and GIS industry and has extensive experience with Mobile, Web, Social, Spatial and Cloud technologies. Sathya enjoys solving hard problems especially in the GIS and spatial world and coming up with very creative solutions. His background is in both computer science and business education.","sameAs":["https:\/\/www.linkedin.com\/in\/sathyaprasad\/","https:\/\/x.com\/sathyaprasad"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/sathyaprasad"}]}},"text_date":"October 26, 2015","author_name":"Sathya Prasad","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/sathyaprasad","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"ArcGIS AppStudio","tag_data":[{"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"},{"term_id":24921,"name":"JavaScript","slug":"javascript","term_group":0,"term_taxonomy_id":24921,"taxonomy":"post_tag","description":"","parent":0,"count":151,"filter":"raw"},{"term_id":28891,"name":"native","slug":"native","term_group":0,"term_taxonomy_id":28891,"taxonomy":"post_tag","description":"","parent":0,"count":3,"filter":"raw"},{"term_id":24621,"name":"QML","slug":"qml","term_group":0,"term_taxonomy_id":24621,"taxonomy":"post_tag","description":"","parent":0,"count":33,"filter":"raw"},{"term_id":24631,"name":"Qt","slug":"qt","term_group":0,"term_taxonomy_id":24631,"taxonomy":"post_tag","description":"","parent":0,"count":36,"filter":"raw"}],"category_data":[{"term_id":37101,"name":"Announcements","slug":"announcements","term_group":0,"term_taxonomy_id":37101,"taxonomy":"category","description":"","parent":0,"count":1962,"filter":"raw"},{"term_id":23851,"name":"Data Management","slug":"data-management","term_group":0,"term_taxonomy_id":23851,"taxonomy":"category","description":"","parent":0,"count":920,"filter":"raw"},{"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":36591,"name":"Apps","slug":"apps","term_group":0,"term_taxonomy_id":36591,"taxonomy":"product","description":"","parent":0,"count":649,"filter":"raw"},{"term_id":36621,"name":"ArcGIS AppStudio","slug":"appstudio","term_group":0,"term_taxonomy_id":36621,"taxonomy":"product","description":"","parent":36591,"count":88,"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=appstudio","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/69761","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\/5351"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=69761"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/69761\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=69761"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=69761"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=69761"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=69761"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=69761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}