{"id":2939868,"date":"2025-09-23T13:18:55","date_gmt":"2025-09-23T20:18:55","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2939868"},"modified":"2025-10-08T22:44:42","modified_gmt":"2025-10-09T05:44:42","slug":"new-maplibre-gl-js-plugin-for-open-source-developers","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers","title":{"rendered":"New MapLibre GL JS ArcGIS Plugin for Open Source Developers"},"author":3791,"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,738191],"tags":[775832,780820,31501],"industry":[],"product":[761642,36601],"class_list":["post-2939868","blog","type-blog","status-publish","format-standard","hentry","category-announcements","category-developers","tag-arcgis-location-services","tag-maplibre-gl-js","tag-open-source","product-platform","product-developers"],"acf":{"short_description":"New MapLibre GL JS ArcGIS plugin for open source developers who want to build or migrate applications to use ArcGIS services.","flexible_content":[{"acf_fc_layout":"content","content":"<p>We are pleased to announce the <em>MapLibre ArcGIS plugin\u2014<\/em>a new plugin for open source web developers who want to use MapLibre GL JS with ArcGIS!<\/p>\n<p>The plugin makes it easy to build interactive mapping applications by integrating MapLibre GL JS with ArcGIS services. If you are using <a href=\"https:\/\/location.arcgis.com\/\">ArcGIS Location Platform<\/a>, it also provides new development options for how your applications consume basemaps.<\/p>\n<p>The plugin is officially supported and is launching with resources including a <a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/\">developer guide,<\/a>\u00a0<a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/tutorials\/\">tutorials<\/a>,\u00a0<a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/tutorials\/\">how-tos<\/a>, and an <a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/tutorials\/api-reference\/\">API reference<\/a>.<\/p>\n<p>Keep reading to learn more about the different types of applications you can build.<\/p>\n<h2>Get the plugin<\/h2>\n<p>To access the plugin, you can add it directly to your MapLibre GL JS projects by installing the <a href=\"https:\/\/www.npmjs.com\/package\/@esri\/maplibre-arcgis\" target=\"_blank\" rel=\"noopener\">NPM package<\/a> or referencing the library on the CDN.<\/p>\n<p><strong>NPM<\/strong><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2940035,"id":2940035,"title":"npm","filename":"npm.png","filesize":15271,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/npm.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\/npm","alt":"","author":"360822","description":"","caption":"","name":"npm","status":"inherit","uploaded_to":2939868,"date":"2025-09-16 18:19:01","modified":"2025-09-16 18:20:34","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1886,"height":152,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/npm-213x152.png","thumbnail-width":213,"thumbnail-height":152,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/npm.png","medium-width":464,"medium-height":37,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/npm.png","medium_large-width":768,"medium_large-height":62,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/npm.png","large-width":1886,"large-height":152,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/npm-1536x124.png","1536x1536-width":1536,"1536x1536-height":124,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/npm.png","2048x2048-width":1886,"2048x2048-height":152,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/npm-826x67.png","card_image-width":826,"card_image-height":67,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/npm.png","wide_image-width":1886,"wide_image-height":152}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>CDN<\/strong><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2940028,"id":2940028,"title":"maplibre-plugin-npm","filename":"maplibre-plugin-npm-1.png","filesize":33662,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-plugin-npm-1.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\/maplibre-plugin-npm-2","alt":"","author":"3791","description":"","caption":"","name":"maplibre-plugin-npm-2","status":"inherit","uploaded_to":2939868,"date":"2025-09-16 18:01:15","modified":"2025-09-16 18:20:12","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1890,"height":144,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-plugin-npm-1-213x144.png","thumbnail-width":213,"thumbnail-height":144,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-plugin-npm-1.png","medium-width":464,"medium-height":35,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-plugin-npm-1.png","medium_large-width":768,"medium_large-height":59,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-plugin-npm-1.png","large-width":1890,"large-height":144,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-plugin-npm-1-1536x117.png","1536x1536-width":1536,"1536x1536-height":117,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-plugin-npm-1.png","2048x2048-width":1890,"2048x2048-height":144,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-plugin-npm-1-826x63.png","card_image-width":826,"card_image-height":63,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-plugin-npm-1.png","wide_image-width":1890,"wide_image-height":144}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>For additional information on getting started, go to the<a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/\"> MapLibre GL JS and ArcGIS developer guide<\/a>.<\/p>\n<h2>Display basemap styles<\/h2>\n<p>The plugin supports using access tokens to display styles from the ArcGIS Basemap Styles service. This is known as the <a href=\"https:\/\/developers.arcgis.com\/documentation\/mapping-and-location-services\/mapping\/basemaps\/basemap-usage-styles\/#tile-usage-model\">basemap tiles usage model<\/a>. When using <a href=\"https:\/\/location.arcgis.com\/\">ArcGIS Location Platform<\/a>, basemap usage occurs for the number of tiles consumed.<\/p>\n<p>To use the plugin to display styles with this model, you can use the<code><a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/api-reference\/BasemapStyle\/\">BasemapStyle<\/a><\/code> class with an access token. It supports accessing all styles in the ArcGIS and Open style families, along with their style preferences such as <code>places<\/code>, <code>language<\/code>, and <code>worldview<\/code>. You can also use the class to easily switch styles or update style preferences after the map is loaded.<\/p>\n<p>In addition, the class automatically updates all Esri and data attributions on the map when styles are loaded.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2940020,"id":2940020,"title":"basemap","filename":"basemap-1.gif","filesize":2061182,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/basemap-1.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\/basemap-14","alt":"A map centered on San Francisco that displays place icons as users zoom in.","author":"360822","description":"","caption":"","name":"basemap-14","status":"inherit","uploaded_to":2939868,"date":"2025-09-16 17:34:49","modified":"2025-09-16 17:36:00","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1000,"height":446,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/basemap-1-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/basemap-1.gif","medium-width":464,"medium-height":207,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/basemap-1.gif","medium_large-width":768,"medium_large-height":343,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/basemap-1.gif","large-width":1000,"large-height":446,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/basemap-1.gif","1536x1536-width":1000,"1536x1536-height":446,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/basemap-1.gif","2048x2048-width":1000,"2048x2048-height":446,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/basemap-1-826x368.gif","card_image-width":826,"card_image-height":368,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/basemap-1.gif","wide_image-width":1000,"wide_image-height":446}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"image","image":{"ID":2939926,"id":2939926,"title":"maplibre-basemap-1","filename":"maplibre-basemap-1.png","filesize":121784,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-basemap-1.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\/maplibre-basemap-1","alt":"A screenshot of code to display a map using MapLibre ArcGIS plugin.","author":"3791","description":"","caption":"","name":"maplibre-basemap-1","status":"inherit","uploaded_to":2939868,"date":"2025-09-16 12:36:22","modified":"2025-09-16 16:05:37","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1890,"height":712,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-basemap-1-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-basemap-1.png","medium-width":464,"medium-height":175,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-basemap-1.png","medium_large-width":768,"medium_large-height":289,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-basemap-1.png","large-width":1890,"large-height":712,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-basemap-1-1536x579.png","1536x1536-width":1536,"1536x1536-height":579,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-basemap-1.png","2048x2048-width":1890,"2048x2048-height":712,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-basemap-1-826x311.png","card_image-width":826,"card_image-height":311,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-basemap-1.png","wide_image-width":1890,"wide_image-height":712}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p style=\"text-align: center;\">Display a basemap style with the plugin. <a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/maps\/how-to-display-a-basemap-style\/\" target=\"_blank\" rel=\"noopener\"><em>Try the tutorial<\/em><\/a><\/p>\n<h2>Display styles with basemap sessions<\/h2>\n<p>If you are using <a href=\"https:\/\/location.arcgis.com\/\">ArcGIS Location Platform<\/a>, the plugin also supports building applications with the new <a href=\"https:\/\/developers.arcgis.com\/documentation\/mapping-and-location-services\/mapping\/basemaps\/basemap-usage-styles\/#session-usage-model\">basemap sessions usage model<\/a>. With this model, your application can access unlimited basemap tiles through a single basemap session that lasts up to 12 hours, all for a single usage charge.<\/p>\n<p>To build applications with basemap sessions, you use the <code><a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/api-reference\/BasemapSession\/\">BasemapSession<\/a><\/code> and <code><a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/api-reference\/BasemapStyle\/\">BasemapStyle<\/a><\/code> classes in the plugin. These classes make it easy to create and manage sessions, automatically refresh the session token when it expires, and update the basemap tiles as needed.<\/p>\n<p>For more information about the new support for basemap sessions, check out <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/announcements\/basemap-sessions\" target=\"_blank\" rel=\"noopener\">this blog<\/a> and the <a href=\"https:\/\/developers.arcgis.com\/documentation\/mapping-and-location-services\/mapping\/basemaps\/basemap-usage-styles\/\">Usage models<\/a> page in the developer guide.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2940021,"id":2940021,"title":"session","filename":"session.gif","filesize":1437377,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/session.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\/session-2","alt":"","author":"360822","description":"","caption":"","name":"session-2","status":"inherit","uploaded_to":2939868,"date":"2025-09-16 17:34:53","modified":"2025-09-16 17:36:02","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1000,"height":446,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/session-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/session.gif","medium-width":464,"medium-height":207,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/session.gif","medium_large-width":768,"medium_large-height":343,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/session.gif","large-width":1000,"large-height":446,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/session.gif","1536x1536-width":1000,"1536x1536-height":446,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/session.gif","2048x2048-width":1000,"2048x2048-height":446,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/session-826x368.gif","card_image-width":826,"card_image-height":368,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/session.gif","wide_image-width":1000,"wide_image-height":446}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"image","image":{"ID":2940003,"id":2940003,"title":"maplibre-sessions-2","filename":"maplibre-sessions-2-1.png","filesize":206001,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-sessions-2-1.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\/maplibre-sessions-2-2","alt":"A screenshot of code to display a map with a basemap session using MapLibre ArcGIS plugin.","author":"360822","description":"","caption":"","name":"maplibre-sessions-2-2","status":"inherit","uploaded_to":2939868,"date":"2025-09-16 15:57:42","modified":"2025-09-16 16:05:47","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1982,"height":1080,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-sessions-2-1-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-sessions-2-1.png","medium-width":464,"medium-height":253,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-sessions-2-1.png","medium_large-width":768,"medium_large-height":418,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-sessions-2-1.png","large-width":1920,"large-height":1046,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-sessions-2-1-1536x837.png","1536x1536-width":1536,"1536x1536-height":837,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-sessions-2-1.png","2048x2048-width":1982,"2048x2048-height":1080,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-sessions-2-1-826x450.png","card_image-width":826,"card_image-height":450,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-sessions-2-1-1920x1046.png","wide_image-width":1920,"wide_image-height":1046}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p style=\"text-align: center;\">Display a map with a basemap session using the plugin. <a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/maps\/how-to-display-a-map-with-a-basemap-session\/\" target=\"_blank\" rel=\"noopener\"><i>Try the tutorial<\/i><\/a><\/p>\n<h2>Access and display hosted data layers<\/h2>\n<p>With the plugin, you can access and display hosted data layers from the ArcGIS portal using a service URL or an item ID. Once you add these layers to your map, you can enhance your application with interactivity, such as popups that display feature values and attributes.<\/p>\n<h3>Feature layers<\/h3>\n<p>To display hosted feature layers, you use the <code><a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/api-reference\/FeatureLayer\/\">FeatureLayer<\/a><\/code> class. This class allows you to display all features or retrieve a subset using SQL or spatial queries. It supports feature queries and paging, renders features with a predefined layer style, and manages them as GeoJSON data sources. You can also edit and customize feature styles directly in your application.<\/p>\n<p>The example below demonstrates how to display a feature layer and enable user interactions.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2940084,"id":2940084,"title":"fl","filename":"fl.gif","filesize":1407210,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/fl.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\/fl-2","alt":"","author":"360822","description":"","caption":"","name":"fl-2","status":"inherit","uploaded_to":2939868,"date":"2025-09-16 21:07:28","modified":"2025-09-16 21:07:28","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1000,"height":446,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/fl-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/fl.gif","medium-width":464,"medium-height":207,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/fl.gif","medium_large-width":768,"medium_large-height":343,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/fl.gif","large-width":1000,"large-height":446,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/fl.gif","1536x1536-width":1000,"1536x1536-height":446,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/fl.gif","2048x2048-width":1000,"2048x2048-height":446,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/fl-826x368.gif","card_image-width":826,"card_image-height":368,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/fl.gif","wide_image-width":1000,"wide_image-height":446}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"image","image":{"ID":2940085,"id":2940085,"title":"featurelayer","filename":"featurelayer.png","filesize":290179,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/featurelayer.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\/featurelayer-4","alt":"","author":"360822","description":"","caption":"","name":"featurelayer-4","status":"inherit","uploaded_to":2939868,"date":"2025-09-16 21:07:46","modified":"2025-09-16 21:07:46","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1862,"height":1358,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/featurelayer-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/featurelayer.png","medium-width":358,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/featurelayer.png","medium_large-width":768,"medium_large-height":560,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/featurelayer.png","large-width":1481,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/featurelayer-1536x1120.png","1536x1536-width":1536,"1536x1536-height":1120,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/featurelayer.png","2048x2048-width":1862,"2048x2048-height":1358,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/featurelayer-638x465.png","card_image-width":638,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/featurelayer-1481x1080.png","wide_image-width":1481,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p style=\"text-align: center;\">Create and style features with the plugin. <a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/data\/how-to-create-and-style-features\/\" target=\"_blank\" rel=\"noopener\"><em>Try the tutorial<\/em><\/a><\/p>\n<h3>Vector tile layers<\/h3>\n<p>To display hosted vector tile layers, you use the <code><a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/api-reference\/VectorTileLayer\/\" target=\"_blank\" rel=\"noopener\">VectorTileLayer<\/a><\/code> class. This class automatically loads and applies all predefined styles that you store with the item. You can style vector tiles using interactive tools such as the <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/announcements\/basemap-sessions\" target=\"_blank\" rel=\"noopener\">ArcGIS Vector Tile Style Editor<\/a>, save the vector tiles in the portal, and then access and display them in your application. This workflow saves time and reduces the need to write client-side styling code.<\/p>\n<p>The example below demonstrates how to display a styled vector tile layer and enable user interactions.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2940022,"id":2940022,"title":"vtl","filename":"vtl-1.gif","filesize":1220258,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/vtl-1.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\/vtl-2","alt":"A map with a styled vector tile layer of U.S. states that shows population counts in popups","author":"360822","description":"","caption":"","name":"vtl-2","status":"inherit","uploaded_to":2939868,"date":"2025-09-16 17:34:57","modified":"2025-09-16 17:36:02","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1000,"height":446,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/vtl-1-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/vtl-1.gif","medium-width":464,"medium-height":207,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/vtl-1.gif","medium_large-width":768,"medium_large-height":343,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/vtl-1.gif","large-width":1000,"large-height":446,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/vtl-1.gif","1536x1536-width":1000,"1536x1536-height":446,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/vtl-1.gif","2048x2048-width":1000,"2048x2048-height":446,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/vtl-1-826x368.gif","card_image-width":826,"card_image-height":368,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/vtl-1.gif","wide_image-width":1000,"wide_image-height":446}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"image","image":{"ID":2939931,"id":2939931,"title":"maplibre-layers-1","filename":"maplibre-layers-1.png","filesize":129354,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-layers-1.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\/maplibre-layers-1","alt":"A screenshot of code to display a map and a styled vector tile layer using MapLibre ArcGIS plugin.","author":"3791","description":"","caption":"","name":"maplibre-layers-1","status":"inherit","uploaded_to":2939868,"date":"2025-09-16 12:46:45","modified":"2025-09-16 16:06:00","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1890,"height":624,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-layers-1-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-layers-1.png","medium-width":464,"medium-height":153,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-layers-1.png","medium_large-width":768,"medium_large-height":254,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-layers-1.png","large-width":1890,"large-height":624,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-layers-1-1536x507.png","1536x1536-width":1536,"1536x1536-height":507,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-layers-1.png","2048x2048-width":1890,"2048x2048-height":624,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-layers-1-826x273.png","card_image-width":826,"card_image-height":273,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-layers-1.png","wide_image-width":1890,"wide_image-height":624}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p style=\"text-align: center;\">Create and style vector tiles with the plugin. <a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/data\/how-to-create-and-style-vector-tiles\/\" target=\"_blank\" rel=\"noopener\"><em>Try the tutorial<\/em><\/a><\/p>\n<h2>Learn more<\/h2>\n<p>Explore the different types of applications you can build with the plugin by checking additional tutorials and how-tos in the <a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/\" target=\"_blank\" rel=\"noopener\">MapLibre GL JS and ArcGIS developer guide<\/a>.<\/p>\n<p>If you have plugin questions, want to suggest enhancements, or contribute code, head over to the <a href=\"https:\/\/github.com\/Esri\/maplibre-arcgis\" target=\"_blank\" rel=\"noopener\">GitHub repository<\/a>.<\/p>\n<p>To start building applications with the plugin and ArcGIS Location Services, create an account at <a href=\"https:\/\/location.arcgis.com\/sign-up\/\" target=\"_blank\" rel=\"noopener\">ArcGIS Location Platform<\/a>.<\/p>\n"}],"authors":[{"ID":3791,"user_firstname":"Allan","user_lastname":"Laframboise","nickname":"Allan Laframboise","user_nicename":"alaframboise","display_name":"Allan Laframboise","user_email":"alaframboise@esri.com","user_url":"","user_registered":"2018-03-02 00:15:25","user_description":"Allan Laframboise is the product engineering lead for documentation for the Developer Experience team.","user_avatar":"<img alt='' src='https:\/\/secure.gravatar.com\/avatar\/af35f23e49f7a462c9c1b97ec1033d5804a0a99ee5b8d6ed09394c1208abf8c9?s=96&#038;d=blank&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/af35f23e49f7a462c9c1b97ec1033d5804a0a99ee5b8d6ed09394c1208abf8c9?s=192&#038;d=blank&#038;r=g 2x' class='avatar avatar-96 photo' height='96' width='96' loading='lazy' decoding='async'\/>"},{"ID":360822,"user_firstname":"Sheryl","user_lastname":"Tania","nickname":"Sheryl Tania","user_nicename":"stania","display_name":"Sheryl Tania","user_email":"stania@esri.com","user_url":"","user_registered":"2024-08-27 19:29:29","user_description":"Sheryl Tania is a product engineer on the Developer Experience team.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/09\/profile-465x465.jpeg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"},{"ID":338372,"user_firstname":"George","user_lastname":"Owen","nickname":"George Owen","user_nicename":"gowen","display_name":"George Owen","user_email":"gowen@esri.com","user_url":"https:\/\/geowen.dev\/","user_registered":"2023-05-02 18:08:00","user_description":"George is a product engineer for the Developer Experience team. He is responsible for maintaining Esri's documentation on open source libraries.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/05\/george-owen-headshot-700kb-2-465x465.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"},{"ID":351262,"user_firstname":"Mark","user_lastname":"Torrey","nickname":"Mark Torrey","user_nicename":"mtorrey","display_name":"Mark Torrey","user_email":"mtorrey@esri.com","user_url":"https:\/\/developers.arcgis.com","user_registered":"2024-01-10 00:32:59","user_description":"Mark Torrey is a product engineer on the Developer Experience team.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/09\/my-avatar-213x200.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"related_articles":[{"ID":2938619,"post_author":"290882","post_date":"2025-09-10 09:48:02","post_date_gmt":"2025-09-10 16:48:02","post_content":"","post_title":"Introducing basemap sessions for ArcGIS Location Platform","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"basemap-sessions","to_ping":"","pinged":"","post_modified":"2025-09-16 11:10:59","post_modified_gmt":"2025-09-16 18:10:59","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2938619","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"show_article_image":false,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/blog-banner-1.png","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>New MapLibre GL JS ArcGIS Plugin for Open Source Developers<\/title>\n<meta name=\"description\" content=\"Learn about the new MapLibre ArcGIS plugin for MapLibre GL JS, designed to simplify building interactive web apps with ArcGIS services.\" \/>\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\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"New MapLibre GL JS ArcGIS Plugin for Open Source Developers\" \/>\n<meta property=\"og:description\" content=\"Learn about the new MapLibre ArcGIS plugin for MapLibre GL JS, designed to simplify building interactive web apps with ArcGIS services.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\" \/>\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-10-09T05:44:42+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=\"6 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\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\"},\"author\":{\"name\":\"Allan Laframboise\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/75ba757d8916c44e793e6d2a7963fdac\"},\"headline\":\"New MapLibre GL JS ArcGIS Plugin for Open Source Developers\",\"datePublished\":\"2025-09-23T20:18:55+00:00\",\"dateModified\":\"2025-10-09T05:44:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\"},\"wordCount\":10,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"ArcGIS Location Services\",\"maplibre gl js\",\"open source\"],\"articleSection\":[\"Announcements\",\"Developers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\",\"name\":\"New MapLibre GL JS ArcGIS Plugin for Open Source Developers\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2025-09-23T20:18:55+00:00\",\"dateModified\":\"2025-10-09T05:44:42+00:00\",\"description\":\"Learn about the new MapLibre ArcGIS plugin for MapLibre GL JS, designed to simplify building interactive web apps with ArcGIS services.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"New MapLibre GL JS ArcGIS Plugin for Open Source Developers\"}]},{\"@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\/75ba757d8916c44e793e6d2a7963fdac\",\"name\":\"Allan Laframboise\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/af35f23e49f7a462c9c1b97ec1033d5804a0a99ee5b8d6ed09394c1208abf8c9?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/af35f23e49f7a462c9c1b97ec1033d5804a0a99ee5b8d6ed09394c1208abf8c9?s=96&d=blank&r=g\",\"caption\":\"Allan Laframboise\"},\"description\":\"Allan Laframboise is the product engineering lead for documentation for the Developer Experience team.\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/alaframboise\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"New MapLibre GL JS ArcGIS Plugin for Open Source Developers","description":"Learn about the new MapLibre ArcGIS plugin for MapLibre GL JS, designed to simplify building interactive web apps with ArcGIS services.","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\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers","og_locale":"en_US","og_type":"article","og_title":"New MapLibre GL JS ArcGIS Plugin for Open Source Developers","og_description":"Learn about the new MapLibre ArcGIS plugin for MapLibre GL JS, designed to simplify building interactive web apps with ArcGIS services.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2025-10-09T05:44:42+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers"},"author":{"name":"Allan Laframboise","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/75ba757d8916c44e793e6d2a7963fdac"},"headline":"New MapLibre GL JS ArcGIS Plugin for Open Source Developers","datePublished":"2025-09-23T20:18:55+00:00","dateModified":"2025-10-09T05:44:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers"},"wordCount":10,"commentCount":2,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["ArcGIS Location Services","maplibre gl js","open source"],"articleSection":["Announcements","Developers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers","name":"New MapLibre GL JS ArcGIS Plugin for Open Source Developers","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2025-09-23T20:18:55+00:00","dateModified":"2025-10-09T05:44:42+00:00","description":"Learn about the new MapLibre ArcGIS plugin for MapLibre GL JS, designed to simplify building interactive web apps with ArcGIS services.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"New MapLibre GL JS ArcGIS Plugin for Open Source Developers"}]},{"@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\/75ba757d8916c44e793e6d2a7963fdac","name":"Allan Laframboise","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/af35f23e49f7a462c9c1b97ec1033d5804a0a99ee5b8d6ed09394c1208abf8c9?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/af35f23e49f7a462c9c1b97ec1033d5804a0a99ee5b8d6ed09394c1208abf8c9?s=96&d=blank&r=g","caption":"Allan Laframboise"},"description":"Allan Laframboise is the product engineering lead for documentation for the Developer Experience team.","url":"https:\/\/www.esri.com\/arcgis-blog\/author\/alaframboise"}]}},"text_date":"September 23, 2025","author_name":"Multiple Authors","author_page":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/new-maplibre-gl-js-plugin-for-open-source-developers","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"ArcGIS Location Platform","tag_data":[{"term_id":775832,"name":"ArcGIS Location Services","slug":"arcgis-location-services","term_group":0,"term_taxonomy_id":775832,"taxonomy":"post_tag","description":"","parent":0,"count":28,"filter":"raw"},{"term_id":780820,"name":"maplibre gl js","slug":"maplibre-gl-js","term_group":0,"term_taxonomy_id":780820,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"},{"term_id":31501,"name":"open source","slug":"open-source","term_group":0,"term_taxonomy_id":31501,"taxonomy":"post_tag","description":"","parent":0,"count":15,"filter":"raw"}],"category_data":[{"term_id":37101,"name":"Announcements","slug":"announcements","term_group":0,"term_taxonomy_id":37101,"taxonomy":"category","description":"","parent":0,"count":1976,"filter":"raw"},{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":426,"filter":"raw"}],"product_data":[{"term_id":761642,"name":"ArcGIS Location Platform","slug":"platform","term_group":0,"term_taxonomy_id":761642,"taxonomy":"product","description":"","parent":36601,"count":215,"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=platform","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2939868","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\/3791"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2939868"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2939868\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2939868"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2939868"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2939868"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2939868"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2939868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}