{"id":72371,"date":"2016-06-20T05:15:29","date_gmt":"2016-06-20T12:15:29","guid":{"rendered":"http:\/\/www.esri.com\/arcgis-blog\/products\/product\/uncategorized\/printing-popups-from-web-application\/"},"modified":"2020-03-26T09:07:47","modified_gmt":"2020-03-26T16:07:47","slug":"printing-popups-from-web-application","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application","title":{"rendered":"Printing Popups from Web Application"},"author":5971,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[22941],"tags":[31181,28061,31201,31211,24341,26501,31231],"industry":[],"product":[36571,36551,36601],"class_list":["post-72371","blog","type-blog","status-publish","format-standard","hentry","category-mapping","tag-arcpy","tag-pop-ups","tag-print","tag-printing","tag-python","tag-services","tag-web-application","product-arcgis-enterprise","product-arcgis-online","product-developers"],"acf":{"short_description":"Great! I got your attention...\r\n\r\nThere are good and bad news. The bad news is that - inherently printing service does not support popups. ...","flexible_content":[{"acf_fc_layout":"content","content":"<p>Great! I got your attention&#8230;<\/p>\n<p>There are good and bad news. The bad news is that &#8211; inherently printing service does not support popups. Popups are client side UI controls to display attributes for selected features. Sometimes attributes are not even shown in popups controls, instead they are shown on a tabular grid or some other way that a web designer prefers. Often when we ask about &#8216;printing popups&#8217;, we mean print the map and &#8216;attributes of the feature(s) that are selected or queried on the map&#8217;.<\/p>\n<p>Good news is that there are solutions. The post is about sharing two alternatives to tackle the issue.<\/p>\n<p><!--more--><\/p>\n<h2>Option #1: Using CustomTextElements and Web Application Builder Print Widget<\/h2>\n<p>This approach is simple and helpful in cases like when you want to print map with few information such as address, owner name, parcel-id for the selected parcel. And you need to define a layout for a specific layer or a specific task &#8211; it not meant to be applicable generically for all purposes.<\/p>\n<p>Here is what needs to be done to achieve that:<\/p>\n<h3>a) Add CustomTextElements in the layout<\/h3>\n<p>CustomTextElements are text elements on the layout with names. To add a CustomTextElement in ArcMap layout&#8230;<\/p>\n<p><a href=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/06\/TextElement_Properties.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-64871 alignright\" style=\"border-style: none;margin: 5px;padding: 0px\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/06\/TextElement_Properties-300x234.png\" alt=\"TextElement Properties page\" width=\"192\" height=\"150\" \/><\/a><\/p>\n<ol>\n<li>Choose Text from Insert menu.<\/li>\n<li>Open the Properties page of the text element.<\/li>\n<li>Switch to Size and Position tab.<\/li>\n<li>Enter a name in Element Name.<\/li>\n<li>Click OK button.<\/li>\n<li>Repeat to add more text element as needed.<\/li>\n<li>Finish rest of the layout design.<\/li>\n<\/ol>\n<h3>b) Publish (or republish) a custom printing service with Get Layout Templates Info task<\/h3>\n<p>Get Layout Templates Info task is an arcpy script that gets installed as part of 10.4. For previous versions, you can download the script from <a href=\"https:\/\/github.com\/arcpy\/sample-gp-tools\/tree\/master\/GetLayoutTemplatesInfo\">GitHub<\/a>.<\/p>\n<p>Step by step instructions are provided in <a href=\"http:\/\/server.arcgis.com\/en\/server\/latest\/create-web-apps\/windows\/tutorial-publishing-additional-services-for-printing.htm\">ArcGIS Server help<\/a>\u00a0to publish a custom printing service with Get Layout Templates Info task.<\/p>\n<h3>c) Use Print Widget in the Web Application Builder<\/h3>\n<p>Once you setup a print widget to use your custom printing service published in the previous section, the widget retrieves available CustomTextElements for each layout template by calling into Get Layout Templates Info task.<\/p>\n<p><a href=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/06\/Print-wizard-custom-text-elements.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-64901 alignright\" style=\"border-style: none;margin: 5px;padding: 0px\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/06\/Print-wizard-custom-text-elements-300x253.png\" alt=\"\" width=\"240\" height=\"202\" \/><\/a>When you choose a layout with CustomTextElements on the Print widget, they appear in the Advanced drop-down allowing users to enter new values for those CustomTextElements. Fill them up and click Print, the widget will include CustomTextElements name-value pairs in the request to the printing service and the service updates those text elements with those values passed in\u00a0and returns the output.<\/p>\n<p>While this approach is very simple and no programming required, it has few challenges:<\/p>\n<ul>\n<li>It is very much tied to a particular layer or task.<\/li>\n<li>It requires manually data entries<\/li>\n<li>This will not work when there are more than one features are selected.<\/li>\n<\/ul>\n<p>That leads to the 2nd option.<\/p>\n<h2 style=\"line-height: 18px\">Option#2: Use custom ArcPy based Printing Service<\/h2>\n<p><strong>Please Note<\/strong>: <i>Due to an accidental side effect of an optimization that went in to ArcGIS API for JavaScript 3.21, this approach is not going to work for mapImage (aka dynamic map service) layer in ver 3.21, 3.22 and 3.23<\/i><i>, and\u00a0<\/i><i>all client applications use o<\/i><i>ne of these JS API versions &#8211; such as\u00a0Web Application Builder&#8217;s (WAB) Print Widget that comes as\u00a0<\/i><i>part of ArcGIS Enterprise 10.6.<\/i><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright\" title=\"WAB PrintWidget - Include Attributes Option\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/06\/WAB_PrintWidget_IncludeAttributes2.png\" alt=\"\" width=\"244\" height=\"142\" data-name=\"image\" \/><\/p>\n<p><i>J<\/i><i>S API v. 3.24 introduced\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/3\/jsapi\/printtemplate-amd.html#forcefeatureattributes\">a new option<\/a>\u00a0that allows a client application to control\u00a0<\/i><i>whether\u00a0<\/i><i>r<\/i><i>equests going to a print service includes attributes or not. WAB Print Widget is enhanced with this option in ArcGIS Online June 2018\u00a0<\/i><i>release.<\/i><\/p>\n<p>This is more flexible approach but requires python programming. The basic idea is that:<\/p>\n<ul>\n<li>On your web application,\n<ul>\n<li>Query or Identify results need to be stored in client side graphics layer for a mapImage layer (aka dynamic map service layer),<\/li>\n<li>for feature layer, perform selection using\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/3\/jsapi\/featurelayer.html\">SelectFeatures()<\/a> function or widgets like WAB&#8217;s Select widget<\/li>\n<\/ul>\n<\/li>\n<li>Print task or widget is executed:\n<ul>\n<li><em>and <a href=\"https:\/\/developers.arcgis.com\/javascript\/3\/jsapi\/printtemplate-amd.html#forcefeatureattributes\">forceFeatureAttributes<\/a> is set to true<\/em>, it includes attributes with all graphics, that are stored in graphic layers, in the request that goes to the printing service.<\/li>\n<li>for selection on a feature layer, it includes object ids for selected features.<\/li>\n<\/ul>\n<\/li>\n<li>Printing service that is powered by an arcpy script needs to:\n<ul>\n<li>Read all features from all or any specific operational layer (<em>graphic layer is a type of operational layer with featureCollection and no URLs<\/em>).\n<ul>\n<li>for feature layer with selection objectids, attributes need to be retrieved from the source map or feature service submitting a query request.<\/li>\n<\/ul>\n<\/li>\n<li>Add one text element for each attributes (<em>or concatenate all attributes and add that in a single text box element<\/em>) on the layout.<\/li>\n<li>If they don&#8217;t fit on a single page, use a separate layout template (aka mxd) where the map element is moved outside of the page and add text elements on that layout.<\/li>\n<li>Once done, <a href=\"http:\/\/desktop.arcgis.com\/en\/arcmap\/latest\/analyze\/arcpy-mapping\/exporttopdf.htm\">export<\/a> them all into separate pdf files.<\/li>\n<li>Call <a href=\"http:\/\/desktop.arcgis.com\/en\/arcmap\/latest\/analyze\/arcpy-mapping\/convertwebmaptomapdocument.htm\">ConvertWebMapToMapDocument<\/a> arcpy function to get a MapDocument object off the WebMap JSON.<\/li>\n<li>Export the map document in to a pdf.<\/li>\n<li>Finally combine them all in a single pdf file and sends the url of the output back to the client.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>Note<\/strong>: for more information about creating an arcpy based printing, visit\u00a0<a href=\"http:\/\/server.arcgis.com\/en\/server\/latest\/create-web-apps\/windows\/advanced-printing-for-web-maps.htm\">Server help<\/a>.<\/p>\n<p>A sample script tool with instructions and template mxds can be downloaded from\u00a0<a title=\"PrintPopups\" href=\"http:\/\/www.arcgis.com\/home\/item.html?id=75bdfb3701c04ed8878e2ee561f291c4\" target=\"_blank\" rel=\"noopener\">http:\/\/www.arcgis.com\/home\/item.html?id=75bdfb3701c04ed8878e2ee561f291c4<\/a>.<\/p>\n<p>Here is what a sample output would look like:<\/p>\n<div><span style=\"font-size: 16px;line-height: 24px\"><a href=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/06\/multi-page-pdf.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-64971\" style=\"border: 1px solid black\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/06\/multi-page-pdf-178x300.png\" alt=\"\" width=\"178\" height=\"300\" \/><\/a><\/span><\/div>\n<p>&nbsp;<\/p>\n<p>Happy popup printing!!<\/p>\n"}],"authors":[{"ID":5971,"user_firstname":"Tanu","user_lastname":"Hoque","nickname":"Tanu Hoque","user_nicename":"mahoque","display_name":"Tanu Hoque","user_email":"ahoque@esri.com","user_url":"","user_registered":"2018-03-02 00:17:50","user_description":"Tanu is a product engineer on Esri Mapping Team focusing on map service, print service, and ArcGIS Pro. He also works on spatio-temporal analysis, spatial aggregation and real-time data. Tanu\u2019s background includes a masters in Urban Planning from University of Akron, Ohio, USA and a bachelor degree from Khulna University, Bangladesh, and worked as GIS Coordinator in City of West Springfield, and GIS Specialist in a hydrology modeling center in Bangladesh before joining Esri.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/12\/tanu-hoque2-e1609364913822-213x200.jpeg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"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>Printing Popups from Web Application<\/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\/arcgis-enterprise\/mapping\/printing-popups-from-web-application\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Printing Popups from Web Application\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application\" \/>\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=\"2020-03-26T16:07:47+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\/arcgis-enterprise\/mapping\/printing-popups-from-web-application#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application\"},\"author\":{\"name\":\"Tanu Hoque\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/9932dde4f8a6dae58fd1b485d1ddf017\"},\"headline\":\"Printing Popups from Web Application\",\"datePublished\":\"2016-06-20T12:15:29+00:00\",\"dateModified\":\"2020-03-26T16:07:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application\"},\"wordCount\":5,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"ArcPy\",\"pop-ups\",\"Print\",\"Printing\",\"python\",\"services\",\"web application\"],\"articleSection\":[\"Mapping\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application\",\"name\":\"Printing Popups from Web Application\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2016-06-20T12:15:29+00:00\",\"dateModified\":\"2020-03-26T16:07:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Printing Popups from Web Application\"}]},{\"@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\/9932dde4f8a6dae58fd1b485d1ddf017\",\"name\":\"Tanu Hoque\",\"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\/2020\/12\/tanu-hoque2-e1609364913822-213x200.jpeg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/12\/tanu-hoque2-e1609364913822-213x200.jpeg\",\"caption\":\"Tanu Hoque\"},\"description\":\"Tanu is a product engineer on Esri Mapping Team focusing on map service, print service, and ArcGIS Pro. He also works on spatio-temporal analysis, spatial aggregation and real-time data. Tanu\u2019s background includes a masters in Urban Planning from University of Akron, Ohio, USA and a bachelor degree from Khulna University, Bangladesh, and worked as GIS Coordinator in City of West Springfield, and GIS Specialist in a hydrology modeling center in Bangladesh before joining Esri.\",\"sameAs\":[\"https:\/\/x.com\/ArcGISPro\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/mahoque\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Printing Popups from Web Application","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\/arcgis-enterprise\/mapping\/printing-popups-from-web-application","og_locale":"en_US","og_type":"article","og_title":"Printing Popups from Web Application","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2020-03-26T16:07:47+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\/arcgis-enterprise\/mapping\/printing-popups-from-web-application#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application"},"author":{"name":"Tanu Hoque","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/9932dde4f8a6dae58fd1b485d1ddf017"},"headline":"Printing Popups from Web Application","datePublished":"2016-06-20T12:15:29+00:00","dateModified":"2020-03-26T16:07:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application"},"wordCount":5,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["ArcPy","pop-ups","Print","Printing","python","services","web application"],"articleSection":["Mapping"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application","name":"Printing Popups from Web Application","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2016-06-20T12:15:29+00:00","dateModified":"2020-03-26T16:07:47+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/mapping\/printing-popups-from-web-application#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Printing Popups from Web Application"}]},{"@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\/9932dde4f8a6dae58fd1b485d1ddf017","name":"Tanu Hoque","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\/2020\/12\/tanu-hoque2-e1609364913822-213x200.jpeg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/12\/tanu-hoque2-e1609364913822-213x200.jpeg","caption":"Tanu Hoque"},"description":"Tanu is a product engineer on Esri Mapping Team focusing on map service, print service, and ArcGIS Pro. He also works on spatio-temporal analysis, spatial aggregation and real-time data. Tanu\u2019s background includes a masters in Urban Planning from University of Akron, Ohio, USA and a bachelor degree from Khulna University, Bangladesh, and worked as GIS Coordinator in City of West Springfield, and GIS Specialist in a hydrology modeling center in Bangladesh before joining Esri.","sameAs":["https:\/\/x.com\/ArcGISPro"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/mahoque"}]}},"text_date":"June 20, 2016","author_name":"Tanu Hoque","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/mahoque","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"ArcGIS Enterprise","tag_data":[{"term_id":31181,"name":"ArcPy","slug":"arcpy","term_group":0,"term_taxonomy_id":31181,"taxonomy":"post_tag","description":"","parent":0,"count":32,"filter":"raw"},{"term_id":28061,"name":"pop-ups","slug":"pop-ups","term_group":0,"term_taxonomy_id":28061,"taxonomy":"post_tag","description":"","parent":0,"count":39,"filter":"raw"},{"term_id":31201,"name":"Print","slug":"print","term_group":0,"term_taxonomy_id":31201,"taxonomy":"post_tag","description":"","parent":0,"count":28,"filter":"raw"},{"term_id":31211,"name":"Printing","slug":"printing","term_group":0,"term_taxonomy_id":31211,"taxonomy":"post_tag","description":"","parent":0,"count":3,"filter":"raw"},{"term_id":24341,"name":"python","slug":"python","term_group":0,"term_taxonomy_id":24341,"taxonomy":"post_tag","description":"","parent":0,"count":171,"filter":"raw"},{"term_id":26501,"name":"services","slug":"services","term_group":0,"term_taxonomy_id":26501,"taxonomy":"post_tag","description":"","parent":0,"count":20,"filter":"raw"},{"term_id":31231,"name":"web application","slug":"web-application","term_group":0,"term_taxonomy_id":31231,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"}],"category_data":[{"term_id":22941,"name":"Mapping","slug":"mapping","term_group":0,"term_taxonomy_id":22941,"taxonomy":"category","description":"","parent":0,"count":2696,"filter":"raw"}],"product_data":[{"term_id":36571,"name":"ArcGIS Enterprise","slug":"arcgis-enterprise","term_group":0,"term_taxonomy_id":36571,"taxonomy":"product","description":"","parent":0,"count":979,"filter":"raw"},{"term_id":36551,"name":"ArcGIS Online","slug":"arcgis-online","term_group":0,"term_taxonomy_id":36551,"taxonomy":"product","description":"","parent":0,"count":2430,"filter":"raw"},{"term_id":36601,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":36601,"taxonomy":"product","description":"","parent":0,"count":765,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=arcgis-enterprise","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/72371","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\/5971"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=72371"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/72371\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=72371"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=72371"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=72371"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=72371"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=72371"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}