{"id":70001,"date":"2015-11-16T10:08:48","date_gmt":"2015-11-16T10:08:48","guid":{"rendered":"http:\/\/www.esri.com\/arcgis-blog\/products\/product\/uncategorized\/using-python-and-qml-to-build-native-apps\/"},"modified":"2018-03-26T21:07:09","modified_gmt":"2018-03-26T21:07:09","slug":"using-python-and-qml-to-build-native-apps","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps","title":{"rendered":"Using Python and QML to build native apps"},"author":5331,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[23341,22941],"tags":[23451,24341,24621,28301,24631,28311,23391],"industry":[],"product":[36921,36601],"class_list":["post-70001","blog","type-blog","status-publish","format-standard","hentry","category-analytics","category-mapping","tag-arcgis-runtime","tag-python","tag-qml","tag-qml-api","tag-qt","tag-qt-sdk","tag-spatial-analytics","product-api-cqt","product-developers"],"acf":{"short_description":"Python is a highly efficient and intuitive language that is pervasive throughout the ArcGIS Platform, as well as the larger scientific co...","flexible_content":[{"acf_fc_layout":"content","content":"<p>Python is a highly efficient and intuitive language that is pervasive throughout the ArcGIS Platform, as well as the larger scientific community. I personally love writing Python code because you can build sophisticated scripts that accomplish a wide array of tasks with relatively little effort or lines of code. Many ArcGIS users have picked up the scripting language in recent years and have found it to be invaluable in maximizing their productivity. However, one thing that I think most Python coders would agree with me on is that it isn\u2019t very easy to make great looking UIs with Python. There are options, such as TkInter, that allow you to build up UIs from Python, but I would argue that the power of Python is in scripting procedural workflows, not in building beautiful UIs. There are, however, other languages and frameworks for building great UIs that integrate well with Python, and one of those is <a title=\"Qt\" href=\"http:\/\/www.qt.io\">Qt<\/a>.<!--more--><\/p>\n<p>Qt is a cross platform SDK that is similar in functionality to .NET, and provides APIs in both C++ and <a title=\"Qt QML\" href=\"http:\/\/doc.qt.io\/qt-5\/qtqml-index.html\">QML<\/a>. For those that are not already familiar, QML is a declarative JavaScript based language that looks similar to JSON with nested JavaScript functions within it. QML is a newcomer to the ArcGIS stack, and recently emerged as one of the languages used in the <a title=\"ArcGIS Runtime SDK for Qt\" href=\"https:\/\/developers.arcgis.com\/qt\/\">ArcGIS Runtime SDK for Qt<\/a>, as well as <a title=\"AppStudio for ArcGIS Desktop Edition\" href=\"http:\/\/doc.arcgis.com\/en\/appstudio\/\">AppStudio for ArcGIS<\/a>. QML is great for building user interfaces, and through a plugin called <a title=\"PyOtherSide\" href=\"http:\/\/pyotherside.readthedocs.org\/en\/latest\/\">PyOtherSide<\/a>, integrates very well with Python. This plugin allows you to call Python scripts directly from QML. This is powerful for a few reasons:<\/p>\n<ul>\n<li>Python programmers now have a simple and intuitive way to build great looking UIs to execute their Python scripts.<\/li>\n<li>Qt\/ArcGIS Runtime programmers can now leverage the power of Python and its many different packages (ArcPy, NumPy, matplotlib, Pandas, etc) in their native apps.<\/li>\n<li>It allows Python and QML to do what each language is best at, and separates the UI from the business logic.<\/li>\n<li>This could be a great bridge to Python developers wanting to learn ArcGIS Runtime technology, but not wanting to totally abandon their Python skills.<\/li>\n<\/ul>\n<p>Building off of these different use cases, I put together a <a title=\"PyOtherSideForArcGIS\" href=\"https:\/\/github.com\/ldanzinger\/PyOtherSideForArcGIS\">GitHub repo<\/a> that shows some samples of how to integrate QML, Python, and ArcGIS through PyOtherSide. The examples include:<\/p>\n<ul>\n<li>A simple <a title=\"Hello World\" href=\"https:\/\/github.com\/ldanzinger\/PyOtherSideForArcGIS\/tree\/master\/01_HelloWorld\">hello world sample<\/a> that shows how to call a Python function<\/li>\n<li>An <a title=\"ArcPy Integration\" href=\"https:\/\/github.com\/ldanzinger\/PyOtherSideForArcGIS\/tree\/master\/02_IntegrateWithArcPy\">ArcPy integration sample<\/a>, where a map is displayed with ArcGIS Runtime. On a mouse click, the latitude and longitude from the click event is passed into a Python function that uses ArcPy\u2019s geometry operations.<\/li>\n<li>An <a title=\"Elevation Profile\" href=\"https:\/\/github.com\/ldanzinger\/PyOtherSideForArcGIS\/tree\/master\/03_ElevationProfile\">elevation profile sample<\/a>, where the z values of a polyline in ArcGIS Runtime are plotted through Python&#8217;s matplotlib.<\/li>\n<li>An <a title=\"Excel Conversion\" href=\"https:\/\/github.com\/ldanzinger\/PyOtherSideForArcGIS\/tree\/master\/04_ExcelToFeatureService\">Excel conversion sample<\/a>, where an Excel spreadsheet is converted to CSV in Python, and is then published as a Feature Service in ArcGIS Online through the ArcGIS Runtime QML API.<\/li>\n<\/ul>\n<div>\n<figure style=\"width: 1063px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cloud.githubusercontent.com\/assets\/4107363\/11191324\/8b7b9fe6-8c4f-11e5-9950-8861a86c83f4.png\" alt=\"\" width=\"1063\" height=\"219\" \/><figcaption class=\"wp-caption-text\">Here is a snippet that shows how a Python function can be executed from QML. Note how a list of parameters can be passed in, and a callback JavaScript function is passed in. This will be executed on completion of the Python script.<\/figcaption><\/figure>\n<figure style=\"width: 447px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\" \" src=\"https:\/\/cloud.githubusercontent.com\/assets\/4107363\/11190668\/b02e3a96-8c4b-11e5-96b1-751a4b9d6096.png\" alt=\"\" width=\"447\" height=\"225\" \/><figcaption class=\"wp-caption-text\">Here is the Python script that is executed by the above QML code. It converts an Excel spreadsheet to CSV and returns the output path.<\/figcaption><\/figure>\n<\/div>\n<p><span style=\"font-size: medium\"><span style=\"line-height: 24px\">These samples only scratch the surface of possible applications for this technology. However, I think they serve as a good starting point to understand how QML works (if you don&#8217;t already know) and how to call Python functions from QML.\u00a0<\/span><\/span><span style=\"font-size: 16px\">Whether you are a Python dev looking to build UIs or an ArcGIS Runtime dev looking to utilize your Python skills in your native apps, PyOtherSide is a powerful and intuitive plugin that opens the doors for many ArcGIS users. Please note that specific issues relating to integrating ArcGIS and PyOtherSide is not supported by Esri technical support (but don&#8217;t let that stop you from seeing what you can create!).<\/span><\/p>\n"}],"authors":[{"ID":5331,"user_firstname":"Lucas","user_lastname":"Danzinger","nickname":"Lucas Danzinger","user_nicename":"ldanzinger","display_name":"Lucas Danzinger","user_email":"LDanzinger@esri.com","user_url":"","user_registered":"2018-03-02 00:17:04","user_description":"Lucas is a Product Engineering Lead, dedicating the majority of his efforts to the Qt Maps SDK and advancing the geometry editing capabilities within the Maps SDKs for Native Apps. Outside of his professional pursuits, he enjoys outdoor activities, traveling, and culinary exploration.","user_avatar":"<img alt='' src='https:\/\/secure.gravatar.com\/avatar\/9941353aad6686462149f10834e13f19b4615b89008d87cd496ba9be49cf55a5?s=96&#038;d=blank&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/9941353aad6686462149f10834e13f19b4615b89008d87cd496ba9be49cf55a5?s=192&#038;d=blank&#038;r=g 2x' class='avatar avatar-96 photo' height='96' width='96' loading='lazy' decoding='async'\/>"}]},"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>Using Python and QML to build 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\/analytics\/analytics\/using-python-and-qml-to-build-native-apps\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using Python and QML to build native apps\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-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=\"2018-03-26T21:07:09+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\/analytics\/analytics\/using-python-and-qml-to-build-native-apps#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps\"},\"author\":{\"name\":\"Lucas Danzinger\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/f1ad3977d3b9ad81493142607e7e5883\"},\"headline\":\"Using Python and QML to build native apps\",\"datePublished\":\"2015-11-16T10:08:48+00:00\",\"dateModified\":\"2018-03-26T21:07:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps\"},\"wordCount\":8,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"ArcGIS Runtime\",\"python\",\"QML\",\"QML API\",\"Qt\",\"Qt SDK\",\"spatial analytics\"],\"articleSection\":[\"Analytics\",\"Mapping\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps\",\"name\":\"Using Python and QML to build native apps\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2015-11-16T10:08:48+00:00\",\"dateModified\":\"2018-03-26T21:07:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using Python and QML to build 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\/f1ad3977d3b9ad81493142607e7e5883\",\"name\":\"Lucas Danzinger\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9941353aad6686462149f10834e13f19b4615b89008d87cd496ba9be49cf55a5?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9941353aad6686462149f10834e13f19b4615b89008d87cd496ba9be49cf55a5?s=96&d=blank&r=g\",\"caption\":\"Lucas Danzinger\"},\"description\":\"Lucas is a Product Engineering Lead, dedicating the majority of his efforts to the Qt Maps SDK and advancing the geometry editing capabilities within the Maps SDKs for Native Apps. Outside of his professional pursuits, he enjoys outdoor activities, traveling, and culinary exploration.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/lucas-danzinger-ab371b37\/\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/ldanzinger\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Using Python and QML to build 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\/analytics\/analytics\/using-python-and-qml-to-build-native-apps","og_locale":"en_US","og_type":"article","og_title":"Using Python and QML to build native apps","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2018-03-26T21:07:09+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\/analytics\/analytics\/using-python-and-qml-to-build-native-apps#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps"},"author":{"name":"Lucas Danzinger","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/f1ad3977d3b9ad81493142607e7e5883"},"headline":"Using Python and QML to build native apps","datePublished":"2015-11-16T10:08:48+00:00","dateModified":"2018-03-26T21:07:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps"},"wordCount":8,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["ArcGIS Runtime","python","QML","QML API","Qt","Qt SDK","spatial analytics"],"articleSection":["Analytics","Mapping"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps","name":"Using Python and QML to build native apps","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2015-11-16T10:08:48+00:00","dateModified":"2018-03-26T21:07:09+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/analytics\/analytics\/using-python-and-qml-to-build-native-apps#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Using Python and QML to build 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\/f1ad3977d3b9ad81493142607e7e5883","name":"Lucas Danzinger","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9941353aad6686462149f10834e13f19b4615b89008d87cd496ba9be49cf55a5?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9941353aad6686462149f10834e13f19b4615b89008d87cd496ba9be49cf55a5?s=96&d=blank&r=g","caption":"Lucas Danzinger"},"description":"Lucas is a Product Engineering Lead, dedicating the majority of his efforts to the Qt Maps SDK and advancing the geometry editing capabilities within the Maps SDKs for Native Apps. Outside of his professional pursuits, he enjoys outdoor activities, traveling, and culinary exploration.","sameAs":["https:\/\/www.linkedin.com\/in\/lucas-danzinger-ab371b37\/"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/ldanzinger"}]}},"text_date":"November 16, 2015","author_name":"Lucas Danzinger","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/ldanzinger","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"ArcGIS Runtime SDK for Qt","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":24341,"name":"python","slug":"python","term_group":0,"term_taxonomy_id":24341,"taxonomy":"post_tag","description":"","parent":0,"count":172,"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":28301,"name":"QML API","slug":"qml-api","term_group":0,"term_taxonomy_id":28301,"taxonomy":"post_tag","description":"","parent":0,"count":5,"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"},{"term_id":28311,"name":"Qt SDK","slug":"qt-sdk","term_group":0,"term_taxonomy_id":28311,"taxonomy":"post_tag","description":"","parent":0,"count":11,"filter":"raw"},{"term_id":23391,"name":"spatial analytics","slug":"spatial-analytics","term_group":0,"term_taxonomy_id":23391,"taxonomy":"post_tag","description":"","parent":0,"count":348,"filter":"raw"}],"category_data":[{"term_id":23341,"name":"Analytics","slug":"analytics","term_group":0,"term_taxonomy_id":23341,"taxonomy":"category","description":"","parent":0,"count":1361,"filter":"raw"},{"term_id":22941,"name":"Mapping","slug":"mapping","term_group":0,"term_taxonomy_id":22941,"taxonomy":"category","description":"","parent":0,"count":2733,"filter":"raw"}],"product_data":[{"term_id":36921,"name":"ArcGIS Runtime SDK for Qt","slug":"api-cqt","term_group":0,"term_taxonomy_id":36921,"taxonomy":"product","description":"","parent":36601,"count":80,"filter":"raw"},{"term_id":36601,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":36601,"taxonomy":"product","description":"","parent":0,"count":777,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=api-cqt","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/70001","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\/5331"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=70001"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/70001\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=70001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=70001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=70001"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=70001"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=70001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}