{"id":2781382,"date":"2025-05-02T10:11:42","date_gmt":"2025-05-02T17:11:42","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2781382"},"modified":"2025-05-02T12:09:46","modified_gmt":"2025-05-02T19:09:46","slug":"enhancements-to-the-map-widget-of-the-arcgis-api-for-python","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python","title":{"rendered":"Enhancements to the map widget of the ArcGIS API for Python"},"author":7461,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[738191,22941],"tags":[779302,387782,176452,24341],"industry":[],"product":[36841],"class_list":["post-2781382","blog","type-blog","status-publish","format-standard","hentry","category-developers","category-mapping","tag-announccements","tag-arcgis-api-for-python","tag-mapping","tag-python","product-api-python"],"acf":{"short_description":"Learn about the new changes in structure and usage to the mapping functionality in the ArcGIS API for Python.","flexible_content":[{"acf_fc_layout":"content","content":"<p><span data-contrast=\"auto\">The ArcGIS API for Python version 2.4.0 introduced significant changes in the structure and usage of the <\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/guide\/overview24\/\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">mapping functionality<\/span><\/a><span data-contrast=\"auto\"> within the API. While the primary motivation for the transition was to align with the next generation of Jupyter Notebooks (Jupyter Notebook 7 and JupyterLab 4), it also presented an opportunity to modernize the implementation of this functionality. This led to a new map widget with enhanced mapping and visualization capabilities. H<\/span><span data-contrast=\"auto\">ere are some important highlights from this change:<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">1. Refactoring of Mapping modules and classes<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The &#8216;arcgis.mapping&#8217; and &#8216;arcgis.widgets&#8217; modules have been deprecated and the functionality has been refactored into the two new &#8216;<\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.map.toc.html?aduc=PublicRelations&amp;sf_id=7015x000000vfizAAA&amp;aduco=sept-2024-release-blog&amp;aduca=MIArcGISAPIForPythonDeveloper&amp;utm_id=7015x000000vfizAAA&amp;adum=Blog&amp;utm_campaign=MIArcGISAPIForPythonDeveloper&amp;utm_source=PublicRelations&amp;utm_medium=Blog&amp;utm_content=sept-2024-release-blog\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">arcgis.map&#8217;<\/span><\/a><span data-contrast=\"auto\"> and &#8216;<\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.layers.toc.html?aduc=PublicRelations&amp;sf_id=7015x000000vfizAAA&amp;aduco=sept-2024-release-blog&amp;aduca=MIArcGISAPIForPythonDeveloper&amp;utm_id=7015x000000vfizAAA&amp;adum=Blog&amp;utm_campaign=MIArcGISAPIForPythonDeveloper&amp;utm_source=PublicRelations&amp;utm_medium=Blog&amp;utm_content=sept-2024-release-blog\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">arcgis.layers<\/span><\/a><span data-contrast=\"auto\">&#8216; modules. As a result, <\/span><i><span data-contrast=\"auto\">WebMap <\/span><\/i><span data-contrast=\"auto\">and <\/span><i><span data-contrast=\"auto\">MapView <\/span><\/i><span data-contrast=\"auto\">classes that were previously used to work with 2D data have been replaced by the <\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.map.toc.html#map\" target=\"_blank\" rel=\"noopener\"><i><span data-contrast=\"none\">Map<\/span><\/i><\/a> <span data-contrast=\"auto\">class, and the <\/span><i><span data-contrast=\"auto\">WebScene <\/span><\/i><span data-contrast=\"auto\">class that supported 3D visualization is now replaced by the <\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.map.toc.html#scene\" target=\"_blank\" rel=\"noopener\"><i><span data-contrast=\"none\">Scene<\/span><\/i><\/a> <span data-contrast=\"auto\">class.<\/span><span data-ccp-props=\"{&quot;335559685&quot;:720}\">\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2781402,"id":2781402,"title":"Capture","filename":"Capture.jpg","filesize":12558,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/Capture.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python\/capture-40","alt":"new map imports","author":"7461","description":"","caption":"Transition from the older to the newer map widget","name":"capture-40","status":"inherit","uploaded_to":2781382,"date":"2025-05-02 16:58:26","modified":"2025-05-02 17:02:55","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":665,"height":160,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/Capture-213x160.jpg","thumbnail-width":213,"thumbnail-height":160,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/Capture.jpg","medium-width":464,"medium-height":112,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/Capture.jpg","medium_large-width":665,"medium_large-height":160,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/Capture.jpg","large-width":665,"large-height":160,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/Capture.jpg","1536x1536-width":665,"1536x1536-height":160,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/Capture.jpg","2048x2048-width":665,"2048x2048-height":160,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/Capture.jpg","card_image-width":665,"card_image-height":160,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/Capture.jpg","wide_image-width":665,"wide_image-height":160}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>&nbsp;<\/p>\n<p><b><span data-contrast=\"auto\">2. Integration of the new widget with the ArcGIS Maps for JavaScript<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The new map widget supports a recently released version of the JavaScript SDK. This allows you to leverage the JavaScript SDK through the Python API to customize your map as well as apply the SDK\u2019s smart mapping methods. This functionality is implemented through <\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.map.toc.html#dataclasses\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">Dataclasses<\/span><\/a><span data-contrast=\"auto\"> to ensure that the correct JSON structure is provided to the map object while creating renderers, symbols, and popups.<\/span><span data-ccp-props=\"{&quot;335559685&quot;:720}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{&quot;335559685&quot;:720}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">3. Adding content to a map<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Using the &#8216;content&#8217; property (<\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.map.toc.html#arcgis.map.map_widget.MapContent\" target=\"_blank\" rel=\"noopener\"><i><span data-contrast=\"none\">MapContent<\/span><\/i><\/a><i><span data-contrast=\"auto\"> class) <\/span><\/i><span data-contrast=\"auto\">on the Map object, you can now add data in the form of layers or tables to your map and manage symbology for that data using the &#8216;renderer&#8217; property (<\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.map.toc.html#renderermanager\" target=\"_blank\" rel=\"noopener\"><i><span data-contrast=\"none\">RendererManager<\/span><\/i><\/a> <span data-contrast=\"auto\">class).\u00a0 The &#8216;content&#8217; property can be used to draw <\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.geometry.html\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">geometry<\/span><\/a><span data-contrast=\"auto\"> objects on your map too. You can also add popup information using the &#8216;popup&#8217; property (<\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.map.toc.html#popupmanager\" target=\"_blank\" rel=\"noopener\"><i><span data-contrast=\"none\">PopupManager<\/span><\/i><\/a><span data-contrast=\"auto\"> class).\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2781412,"id":2781412,"title":"content add","filename":"content-add.jpg","filesize":66019,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/content-add.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python\/content-add","alt":"adding content to yout map","author":"7461","description":"","caption":"Adding layers and drawing points on the Map","name":"content-add","status":"inherit","uploaded_to":2781382,"date":"2025-05-02 17:00:48","modified":"2025-05-02 17:01:17","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":791,"height":557,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/content-add-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/content-add.jpg","medium-width":371,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/content-add.jpg","medium_large-width":768,"medium_large-height":541,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/content-add.jpg","large-width":791,"large-height":557,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/content-add.jpg","1536x1536-width":791,"1536x1536-height":557,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/content-add.jpg","2048x2048-width":791,"2048x2048-height":557,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/content-add-660x465.jpg","card_image-width":660,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/content-add.jpg","wide_image-width":791,"wide_image-height":557}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>&nbsp;<\/p>\n<p><b><span data-contrast=\"auto\">4. Map Customization<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The <\/span><i><span data-contrast=\"auto\">Symbology <\/span><\/i><span data-contrast=\"auto\">class has been refactored into the &#8216;<\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.map.toc.html#symbols\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">symbols&#8217;<\/span><\/a><span data-contrast=\"auto\"> module and the functionality for generating renderers has been refactored into the <\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.map.toc.html#arcgis.map.SmartMappingManager\" target=\"_blank\" rel=\"noopener\"><i><span data-contrast=\"none\">SmartMappingManager<\/span><\/i><\/a> <span data-contrast=\"auto\">and <\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.map.toc.html#arcgis.map.renderers.RendererManager\" target=\"_blank\" rel=\"noopener\"><i><span data-contrast=\"none\">RendererManager<\/span><\/i><\/a> <span data-contrast=\"auto\">classes. This version also introduces a new <\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.map.toc.html#arcgis.map.popups.PopupManager\" target=\"_blank\" rel=\"noopener\"><i><span data-contrast=\"none\">PopupManager<\/span><\/i><\/a> <span data-contrast=\"auto\">class for fine-tuned customization of popups that can be added to the map object. These newer classes enable more dynamic and interactive map visualizations. <\/span><span data-ccp-props=\"{&quot;335559685&quot;:720}\">\u00a0<\/span><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2781422,"id":2781422,"title":"unique value renderer","filename":"unique-value-renderer.jpg","filesize":34134,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/unique-value-renderer.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python\/unique-value-renderer","alt":"Smart mapping using the unique value renderer","author":"7461","description":"","caption":"Using the Smart Mapping Manager to render unique values distinctly on the map","name":"unique-value-renderer","status":"inherit","uploaded_to":2781382,"date":"2025-05-02 17:09:07","modified":"2025-05-02 18:38:41","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":632,"height":448,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/unique-value-renderer-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/unique-value-renderer.jpg","medium-width":368,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/unique-value-renderer.jpg","medium_large-width":632,"medium_large-height":448,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/unique-value-renderer.jpg","large-width":632,"large-height":448,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/unique-value-renderer.jpg","1536x1536-width":632,"1536x1536-height":448,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/unique-value-renderer.jpg","2048x2048-width":632,"2048x2048-height":448,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/unique-value-renderer.jpg","card_image-width":632,"card_image-height":448,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/unique-value-renderer.jpg","wide_image-width":632,"wide_image-height":448}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>&nbsp;<\/p>\n<p><b><span data-contrast=\"auto\">5. Map Interaction<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The new map widget provides enhanced interactive capabilities, such as zooming, panning, and adjusting the map&#8217;s extent. New widgets have been added that enable additional features on the map and improve the overall user experience.\u00a0 These include: bookmarks, legends, a layer list, and a time slider.<\/span><span data-ccp-props=\"{&quot;335559685&quot;:720}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Here are the key changes at a glance:<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<table data-tablestyle=\"MsoTableGrid\" data-tablelook=\"1696\">\n<tbody>\n<tr>\n<td data-celllook=\"0\"><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><b><span data-contrast=\"auto\">Until v2.3.1<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><b><span data-contrast=\"auto\">v2.4.0 and beyond<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Mapping module<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">arcgis.mapping<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">arcgis.map<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">2D mapping classes<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">WebMap, MapView<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Map<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">3D mapping class<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">WebScene<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Scene<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Symbology<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Symbology class<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Symbols module<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Smart Mapping<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">&#8216;renderer&#8217; property and &#8216;get_renderer()&#8217; method on the data object<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">RendererManager and SmartMappingManager classes<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Popups<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">&#8216;pop_ups&#8217; property and &#8216;configure_pop_ups()&#8217; method<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">PopupManager class<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Map widget<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Legacy widget with limited functionality<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">New widget with JSAPI functionality<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Jupyter <\/span><span data-contrast=\"auto\">Compatibility<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Jupyter Notebooks<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<td data-celllook=\"0\"><span data-contrast=\"auto\">Jupyter Notebook 7 and JupyterLab 4<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span data-ccp-props=\"{&quot;335559685&quot;:720,&quot;335559731&quot;:720}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">We recently released <\/span><a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">v2.4.1 of the ArcGIS API for Python<\/span><\/a><span data-contrast=\"auto\"> (supported in Python 3.10-3.12) with bug fixes and improvements to this new map widget. We encourage you to read through our detailed <\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/guide\/overview24\/\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">technical guide<\/span><\/a><span data-contrast=\"auto\"> that covers the specifics of these features and provides links to the API reference for method signatures and syntax for these new classes. We have also updated our <\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/guide\/using-the-map-widget\/\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">guides<\/span><\/a><span data-contrast=\"auto\"> and <\/span><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/samples\/\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">sample notebooks<\/span><\/a><span data-contrast=\"auto\"> to reflect how these changes will apply to different spatial analysis and visualization workflows. Feel free to reach out to us with your &#8216;arcgis.map&#8217; questions, suggestions and ideas on the <\/span><a href=\"https:\/\/community.esri.com\/t5\/arcgis-api-for-python\/ct-p\/arcgis-api-for-python?aduc=PublicRelations&amp;sf_id=7015x000000vfizAAA&amp;aduco=sept-2024-release-blog&amp;aduca=MIArcGISAPIForPythonDeveloper&amp;utm_id=7015x000000vfizAAA&amp;adum=Blog&amp;utm_campaign=MIArcGISAPIForPythonDeveloper&amp;utm_source=PublicRelations&amp;utm_medium=Blog&amp;utm_content=sept-2024-release-blog\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">ArcGIS API for Python Esri Community page<\/span><\/a><span data-contrast=\"auto\">.\u00a0 You can also use the <\/span><a href=\"https:\/\/github.com\/Esri\/arcgis-python-api\/issues\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">ArcGIS API for Python public GitHub repo<\/span><\/a><span data-contrast=\"auto\"> to submit bugs, enhancement requests, and other issues. Happy Mapping!<\/span><\/p>\n"}],"authors":[{"ID":7461,"user_firstname":"Manushi","user_lastname":"Majumdar","nickname":"Manushi Majumdar","user_nicename":"mmajumdar_dcdev","display_name":"Manushi Majumdar","user_email":"MMajumdar@esri.com","user_url":"","user_registered":"2018-03-21 18:21:20","user_description":"Product Engineer - Applied Data Science with ArcGIS API for Python. Or in other words, a (Data, Maps, Analyses, Python, Books) Nerd.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/03\/me_cropped-213x200.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"},{"ID":358272,"user_firstname":"Halle","user_lastname":"Martinucci","nickname":"Halle Martinucci","user_nicename":"hmartinucci","display_name":"Halle Martinucci","user_email":"hmartinucci@esri.com","user_url":"","user_registered":"2024-06-18 18:43:42","user_description":"Halle is an Associate Product Marketing Manager on Esri\u2019s Spatial Analytics &amp; Data Science team.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/01\/halle-martinucci-3z7a7050-213x200.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"related_articles":"","show_article_image":false,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/CARD-1.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/WIDE.png"},"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>Enhancements to the map widget of the ArcGIS API for Python<\/title>\n<meta name=\"description\" content=\"Learn about the new changes in structure and usage to the mapping functionality in the ArcGIS API for Python.\" \/>\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\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Enhancements to the map widget of the ArcGIS API for Python\" \/>\n<meta property=\"og:description\" content=\"Learn about the new changes in structure and usage to the mapping functionality in the ArcGIS API for Python.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python\" \/>\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=\"2025-05-02T19:09:46+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\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\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python\"},\"author\":{\"name\":\"Manushi Majumdar\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/a4b2b6288c6864279ac548b1846ec901\"},\"headline\":\"Enhancements to the map widget of the ArcGIS API for Python\",\"datePublished\":\"2025-05-02T17:11:42+00:00\",\"dateModified\":\"2025-05-02T19:09:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python\"},\"wordCount\":11,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"announccements\",\"ArcGIS API for Python\",\"mapping\",\"python\"],\"articleSection\":[\"Developers\",\"Mapping\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python\",\"name\":\"Enhancements to the map widget of the ArcGIS API for Python\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2025-05-02T17:11:42+00:00\",\"dateModified\":\"2025-05-02T19:09:46+00:00\",\"description\":\"Learn about the new changes in structure and usage to the mapping functionality in the ArcGIS API for Python.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Enhancements to the map widget of the ArcGIS API for Python\"}]},{\"@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\/a4b2b6288c6864279ac548b1846ec901\",\"name\":\"Manushi Majumdar\",\"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\/03\/me_cropped-213x200.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/03\/me_cropped-213x200.jpg\",\"caption\":\"Manushi Majumdar\"},\"description\":\"Product Engineer - Applied Data Science with ArcGIS API for Python. Or in other words, a (Data, Maps, Analyses, Python, Books) Nerd.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/manushimajumdar\/\",\"https:\/\/x.com\/Manushi_M\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/mmajumdar_dcdev\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Enhancements to the map widget of the ArcGIS API for Python","description":"Learn about the new changes in structure and usage to the mapping functionality in the ArcGIS API for Python.","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\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python","og_locale":"en_US","og_type":"article","og_title":"Enhancements to the map widget of the ArcGIS API for Python","og_description":"Learn about the new changes in structure and usage to the mapping functionality in the ArcGIS API for Python.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2025-05-02T19:09:46+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python"},"author":{"name":"Manushi Majumdar","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/a4b2b6288c6864279ac548b1846ec901"},"headline":"Enhancements to the map widget of the ArcGIS API for Python","datePublished":"2025-05-02T17:11:42+00:00","dateModified":"2025-05-02T19:09:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python"},"wordCount":11,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["announccements","ArcGIS API for Python","mapping","python"],"articleSection":["Developers","Mapping"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python","name":"Enhancements to the map widget of the ArcGIS API for Python","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2025-05-02T17:11:42+00:00","dateModified":"2025-05-02T19:09:46+00:00","description":"Learn about the new changes in structure and usage to the mapping functionality in the ArcGIS API for Python.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Enhancements to the map widget of the ArcGIS API for Python"}]},{"@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\/a4b2b6288c6864279ac548b1846ec901","name":"Manushi Majumdar","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\/03\/me_cropped-213x200.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/03\/me_cropped-213x200.jpg","caption":"Manushi Majumdar"},"description":"Product Engineer - Applied Data Science with ArcGIS API for Python. Or in other words, a (Data, Maps, Analyses, Python, Books) Nerd.","sameAs":["https:\/\/www.linkedin.com\/in\/manushimajumdar\/","https:\/\/x.com\/Manushi_M"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/mmajumdar_dcdev"}]}},"text_date":"May 2, 2025","author_name":"Multiple Authors","author_page":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/developers\/enhancements-to-the-map-widget-of-the-arcgis-api-for-python","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/05\/WIDE.png","primary_product":"ArcGIS API for Python","tag_data":[{"term_id":779302,"name":"announccements","slug":"announccements","term_group":0,"term_taxonomy_id":779302,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"},{"term_id":387782,"name":"ArcGIS API for Python","slug":"arcgis-api-for-python","term_group":0,"term_taxonomy_id":387782,"taxonomy":"post_tag","description":"","parent":0,"count":44,"filter":"raw"},{"term_id":176452,"name":"mapping","slug":"mapping","term_group":0,"term_taxonomy_id":176452,"taxonomy":"post_tag","description":"","parent":0,"count":60,"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"}],"category_data":[{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":422,"filter":"raw"},{"term_id":22941,"name":"Mapping","slug":"mapping","term_group":0,"term_taxonomy_id":22941,"taxonomy":"category","description":"","parent":0,"count":2689,"filter":"raw"}],"product_data":[{"term_id":36841,"name":"ArcGIS API for Python","slug":"api-python","term_group":0,"term_taxonomy_id":36841,"taxonomy":"product","description":"","parent":36601,"count":151,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=api-python","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2781382","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\/7461"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2781382"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2781382\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2781382"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2781382"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2781382"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2781382"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2781382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}