{"id":2451632,"date":"2024-08-08T06:27:44","date_gmt":"2024-08-08T13:27:44","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2451632"},"modified":"2024-08-09T07:05:28","modified_gmt":"2024-08-09T14:05:28","slug":"mapping-coffee-flutter-maps-sdk","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk","title":{"rendered":"Mapping where coffee comes from with the Flutter Maps SDK beta"},"author":10242,"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],"tags":[776082,773372,776092,215372,35001],"industry":[],"product":[761642,36601],"class_list":["post-2451632","blog","type-blog","status-publish","format-standard","hentry","category-developers","tag-arcgis-maps-sdk-for-flutter","tag-flutter","tag-flutter-maps-sdk","tag-mobile-applications","tag-mobile-development","product-platform","product-developers"],"acf":{"authors":[{"ID":10242,"user_firstname":"Rachael","user_lastname":"Ellen","nickname":"Rachael Ellen","user_nicename":"rellen","display_name":"Rachael Ellen","user_email":"rellen@esri.com","user_url":"https:\/\/dev.to\/rachaele\/","user_registered":"2019-11-29 11:58:45","user_description":"Rachael is a senior product engineer in the Developer Outreach team for the ArcGIS Maps SDKs for Native Apps. Following an academic career in geology, she switched careers by learning to code and now enjoys building apps with the Native Maps SDKs. She loves sharing code examples, fun geospatial development workflows and the latest product updates with developers via blogs and talks.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/01\/LinkedIn_Photo-465x465.jpeg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"short_description":"Learn how to build a mobile application with the ArcGIS Maps SDK for Flutter beta that explores where coffee comes from!","flexible_content":[{"acf_fc_layout":"content","content":"<p style=\"text-align: center;\"><em>In this blog post you\u2019ll learn how to build a simple cross-platform mobile application using the new ArcGIS Maps SDK for Flutter beta, that shows countries around the world where coffee is produced.<\/em><\/p>\n<h2>Introduction<\/h2>\n<p>Coffee is one of the most popular beverages worldwide. The plant from which the bean is grown (genus <em>Coffea<\/em>) typically grows between the tropics of Cancer and Capricorn, at high altitudes, across five continents and over 50 countries. Brazil is the largest producer, exporting over 58 million bags of coffee annually, but did you know China, Tanzania and Nicaragua also produce coffee?<\/p>\n<p>Intrigued by the origins of specialty coffee from lesser-known coffee producing countries, I created a Flutter app using the new ArcGIS Maps SDK for Flutter beta to map coffee production worldwide.<\/p>\n<p>In this blog post (best viewed on desktop), I&#8217;ll outline how I built this app and how you can do the same, focusing on the functionality of the Flutter Maps SDK beta.<\/p>\n<h2>What you need for this app<\/h2>\n<p>To build this app, you will require the following:<\/p>\n<ul>\n<li><strong>Install Flutter<\/strong>: Follow the instructions on the Flutter documentation <a href=\"https:\/\/docs.flutter.dev\/get-started\/install\">get started guide<\/a>. Xcode and Android Studio are required for their respective platforms, and Visual Studio Code is the recommended IDE.<\/li>\n<li><strong>Download the ArcGIS Maps SDK for Flutter beta<\/strong>: Access the beta by registering on Esri\u2019s <a href=\"https:\/\/earlyadopter.esri.com\/enter\/\">Early Adopter website<\/a>. Refer to the documentation there on how to get started.<\/li>\n<li><strong>API key<\/strong>: You will require an API key access token to authenticate the basemap services used in this application. Learn how to create one on the <a href=\"https:\/\/developers.arcgis.com\/documentation\/security-and-authentication\/api-key-authentication\/tutorials\/create-an-api-key\/\">Esri Developers website<\/a>, and see an example of how to set your API key on a Flutter Maps SDK app in the <a href=\"https:\/\/developers.arcgis.com\/flutter\/beta\/api-reference\/api\/\">Flutter beta API reference documentation<\/a>.<\/li>\n<\/ul>\n<h3><strong>Data required for this app<\/strong><\/h3>\n<p>This app requires the following data:<\/p>\n<ul>\n<li><strong>Basemap<\/strong>: A basemap is required to give the data spatial context. Basemaps are provided by the Flutter Maps SDK \u2013 for this app I chose the <a href=\"https:\/\/developers.arcgis.com\/rest\/basemap-styles\/#topography-and-imagery\">ArcGIS Topographic basemap style<\/a>, though other <a href=\"https:\/\/developers.arcgis.com\/documentation\/mapping-apis-and-services\/maps\/basemap-layers\/\">basemap layers<\/a> are available.<\/li>\n<li><strong>GeoJSON data<\/strong>: This data format contains country borders as polygons and also contains non-spatial information about how much coffee is produced annually.<\/li>\n<\/ul>\n<p><em>The ArcGIS Maps SDK for Flutter beta makes it straightforward to work with data from multiple sources. For this app, I created a <a href=\"https:\/\/github.com\/Rachael-E\/coffee_crib\/blob\/main\/lib\/models\/coffee_countries.dart\">deserializer<\/a> class to transform client-side GeoJSON data to objects, but you could also work directly with server-side data from <a href=\"https:\/\/developers.arcgis.com\/documentation\/mapping-apis-and-services\/data-hosting\/\">ArcGIS hosted services<\/a>, or <a href=\"https:\/\/developers.arcgis.com\/documentation\/mapping-apis-and-services\/offline\/offline-data\/\">offline data<\/a> such as geodatabase files.<\/em><\/p>\n<p>Now you have everything you need to get started building the app! In the following sections I&#8217;ll share a high level overview of the steps required to configure the app, followed by a code snippet that shows the key points from the section. These code snippets are simplified and shortened &#8211; the best place to view the completed code in full context is on my <a href=\"https:\/\/github.com\/Rachael-E\/coffee_crib\">GitHub repo<\/a>.<\/p>\n<h2><strong>Display a map<\/strong><\/h2>\n<p>Let\u2019s start by displaying the base map.<\/p>\n<ol>\n<li>Create a <code>MyHomePage<\/code> class that extends <code>StatefulWidget<\/code> (allowing it to maintain state that might change over time).<\/li>\n<li>Create a <code>MyHomePageState<\/code> class to manage the main logic and state management for the map, and within that use <code>ArcGISMapView.createController()<\/code> to create a map view controller (required to configure the map with data and handling user interactions).<\/li>\n<li>Within a method called <code>_onMapViewReady<\/code>, create the map using the <code>ArcGISMap.withBasemapStyle(BasemapStyle)<\/code> constructor. You can also set an initial viewpoint on the map in this method.<\/li>\n<li>Assign the created map to the map view controller and add a graphics overlay (this will display the coffee country data).<\/li>\n<li>To render the UI that displays the map, use Flutter\u2019s <code>build<\/code>\u00a0method to return a <code>Scaffold<\/code> (used to design the visual layout structure of the app). Add an <code>ArcGISMapView<\/code> widget as a child to the scaffold body, using the map view controller set up earlier in the constructor.<\/li>\n<li>Set the <code>_onMapViewReady<\/code> method to the <code>onMapViewReady<\/code> property. Additionally, set up the <code>onTap<\/code>\u00a0property with a <code>_selectGraphic<\/code> function to handle user taps on the screen (we\u2019ll cover the details of this function later).<\/li>\n<\/ol>\n"},{"acf_fc_layout":"storymap","title":"","description":"","static":false,"storymap_url":"<a href=\"https:\/\/gist.github.com\/Rachael-E\/80928868d534eff6eb602e9b1330fea6.pibb\">https:\/\/gist.github.com\/Rachael-E\/80928868d534eff6eb602e9b1330fea6.pibb<\/a>"},{"acf_fc_layout":"content","content":"<p>You are now well on your way to creating your mapping app. If you were to run the app now, you should see a basemap displayed on your emulator or device like below.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2452392,"id":2452392,"title":"DisplayMapFlutterSmall","filename":"DisplayMapFlutterSmall-1.png","filesize":184153,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayMapFlutterSmall-1.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk\/displaymapfluttersmall-2","alt":"A mobile app displaying a map","author":"10242","description":"","caption":"A simple app built with the Flutter Maps SDK beta showing a topographic basemap.","name":"displaymapfluttersmall-2","status":"inherit","uploaded_to":2451632,"date":"2024-08-06 10:29:02","modified":"2024-08-06 10:29:26","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":295,"height":639,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayMapFlutterSmall-1-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayMapFlutterSmall-1.png","medium-width":120,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayMapFlutterSmall-1.png","medium_large-width":295,"medium_large-height":639,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayMapFlutterSmall-1.png","large-width":295,"large-height":639,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayMapFlutterSmall-1.png","1536x1536-width":295,"1536x1536-height":639,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayMapFlutterSmall-1.png","2048x2048-width":295,"2048x2048-height":639,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayMapFlutterSmall-1-215x465.png","card_image-width":215,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayMapFlutterSmall-1.png","wide_image-width":295,"wide_image-height":639}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>Add the data to the map<\/h2>\n<p>Next we\u2019ll display the data on the map by reading the GeoJSON country polygon and coffee producing data, and converting it to graphics to overlay on the map view.<\/p>\n<ol>\n<li>First load the GeoJSON data into the app (I did this using a <a href=\"https:\/\/github.com\/Rachael-E\/coffee_crib\/blob\/main\/lib\/models\/coffee_countries.dart\">custom deserializer<\/a> to convert the data into Dart objects).<\/li>\n<li>The country polygon data are stored as pairs of coordinates (integers), which need to be used to create <code>ArcGISPoint<\/code>\u00a0objects for drawing polygon graphics on the map. This data consists of countries represented by single-part polygons (e.g. countries with a single continuous border such as Burundi) and also multi-part polygons (e.g. countries with multiple islands, such as Indonesia).<\/li>\n<li>To handle the single-part polygons, check if the feature\u2019s geometry type is &#8220;Polygon&#8221; and then loop through each country\u2019s coordinates to create a new <code>ArcGISPoint<\/code> object and add it to a <code>PolygonBuilder<\/code>\u00a0to create a polygon. Then create a graphic from the polygon and apply a symbol style.<\/li>\n<li>To handle countries with multi-part polygons, additional logic is required. Check the geometry type is &#8220;MultiPolygon&#8221; and loop through each part to create a <code>MutablePart<\/code>, and then as before, loop through the coordinates of each part to create an <code>ArcGISPoint<\/code>. \u00a0Add each point to the <code>MutablePart<\/code>, and then build a polygon from the mutable parts.<\/li>\n<li>Finally, configure attributes for the graphics that will be used to display information about each country, and add the graphics to the graphics overlay to display the coffee boundaries on the map.<\/li>\n<\/ol>\n"},{"acf_fc_layout":"storymap","title":"","description":"","static":false,"storymap_url":"<a href=\"https:\/\/gist.github.com\/Rachael-E\/98a16974a500ed02ffa747e36fe3c0ea.pibb\">https:\/\/gist.github.com\/Rachael-E\/98a16974a500ed02ffa747e36fe3c0ea.pibb<\/a>"},{"acf_fc_layout":"content","content":"<p>The app is now configured to display the countries where coffee is produced as polygons overlaid as graphics on the map!<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2452412,"id":2452412,"title":"DisplayData","filename":"DisplayData.png","filesize":176789,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayData.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk\/displaydata","alt":"A mobile app displaying a map showing countries","author":"10242","description":"","caption":"Country polygon data displays on the map as graphics","name":"displaydata","status":"inherit","uploaded_to":2451632,"date":"2024-08-06 10:39:22","modified":"2024-08-06 10:40:16","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":295,"height":639,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayData-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayData.png","medium-width":120,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayData.png","medium_large-width":295,"medium_large-height":639,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayData.png","large-width":295,"large-height":639,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayData.png","1536x1536-width":295,"1536x1536-height":639,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayData.png","2048x2048-width":295,"2048x2048-height":639,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayData-215x465.png","card_image-width":215,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/DisplayData.png","wide_image-width":295,"wide_image-height":639}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>Interact with the data<\/h2>\n<p>Now that our app is displaying data on the map, we can set up user interactions with the <code>onTap<\/code>\u00a0callback parameter (handles taps on the map).<\/p>\n<ol>\n<li>Create a new asynchronous function that takes an `<code>Offset<\/code> parameter (this represents the local position on the screen the tap occurred). Then call <code>mapViewController.identifyGraphicsOverlay<\/code>\u00a0to asynchronously identify the graphic tapped on the map.<\/li>\n<li>After identifying the graphic, zoom to the tapped location on the map (we\u2019ll look at this in more detail in the next section).<\/li>\n<li>Finally, return and display the graphic attribute information configured in the previous section. You can then set up a custom Flutter dialog to display this information.<\/li>\n<\/ol>\n"},{"acf_fc_layout":"storymap","title":"","description":"","static":false,"storymap_url":"<a href=\"https:\/\/gist.github.com\/Rachael-E\/ddffcdfb34b90eb24153d567d5950e36.pibb\">https:\/\/gist.github.com\/Rachael-E\/ddffcdfb34b90eb24153d567d5950e36.pibb<\/a>"},{"acf_fc_layout":"content","content":"<p>Now when you tap a coffee producing country on the map, it displays a dialog that shows the country name and the amount of coffee bags produced.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2452482,"id":2452482,"title":"InteractWithData","filename":"InteractWithData.png","filesize":174175,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/InteractWithData.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk\/interactwithdata","alt":"Dialog pop up on phone displaying information","author":"10242","description":"","caption":"A custom dialog displays information about the graphic selected by the user.","name":"interactwithdata","status":"inherit","uploaded_to":2451632,"date":"2024-08-06 12:56:49","modified":"2024-08-06 12:57:36","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":295,"height":639,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/InteractWithData-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/InteractWithData.png","medium-width":120,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/InteractWithData.png","medium_large-width":295,"medium_large-height":639,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/InteractWithData.png","large-width":295,"large-height":639,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/InteractWithData.png","1536x1536-width":295,"1536x1536-height":639,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/InteractWithData.png","2048x2048-width":295,"2048x2048-height":639,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/InteractWithData-215x465.png","card_image-width":215,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/InteractWithData.png","wide_image-width":295,"wide_image-height":639}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>Zoom to a country<\/h2>\n<p>Now the app allows a user to interact with the data and show information about it, we can fine tune this further by zooming to the country that was tapped on.<\/p>\n<ol>\n<li>To zoom to the country that was tapped on , use <code>mapViewController.setViewPointAnimated<\/code>\u00a0, passing in a <code>Viewpoint<\/code> created from a target extent (i.e. the country tapped).<\/li>\n<li>This will result in the extent of the country filling the screen, possibly obscuring that country\u2019s context. Add a buffer around the extent using <code>EnvelopeBuilder<\/code>\u00a0to build an expanded envelope.<\/li>\n<\/ol>\n"},{"acf_fc_layout":"storymap","title":"","description":"","static":false,"storymap_url":"<a href=\"https:\/\/gist.github.com\/Rachael-E\/a4246f78f491eb6634f8548bc3f94ff4.pibb\">https:\/\/gist.github.com\/Rachael-E\/a4246f78f491eb6634f8548bc3f94ff4.pibb<\/a>"},{"acf_fc_layout":"content","content":"<p>Now when you tap on a country, the map view will zoom to that country&#8217;s extent, leaving a margin between the edges of the polygon and the device screen.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2453412,"id":2453412,"title":"ExpandedEnvelope","filename":"ExpandedEnvelope.png","filesize":431586,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/ExpandedEnvelope.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk\/expandedenvelope","alt":"Two mobile phone screens displaying a map.","author":"10242","description":"","caption":"Left \u2013 before adding an expanded envelope around the country, the extent fills the screen. Right \u2013 using an expanded envelope, the country has a buffer around the edge which may suit wrap around phone screens better from a UI perspective.","name":"expandedenvelope","status":"inherit","uploaded_to":2451632,"date":"2024-08-07 11:04:39","modified":"2024-08-07 11:06:30","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":588,"height":619,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/ExpandedEnvelope-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/ExpandedEnvelope.png","medium-width":248,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/ExpandedEnvelope.png","medium_large-width":588,"medium_large-height":619,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/ExpandedEnvelope.png","large-width":588,"large-height":619,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/ExpandedEnvelope.png","1536x1536-width":588,"1536x1536-height":619,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/ExpandedEnvelope.png","2048x2048-width":588,"2048x2048-height":619,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/ExpandedEnvelope-442x465.png","card_image-width":442,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/ExpandedEnvelope.png","wide_image-width":588,"wide_image-height":619}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>Flutter widgets and user interactions<\/h2>\n<p>The main functionality of the app is complete! All that remains is to add some Flutter widgets to allow further user interactions. These UI changes can be configured and changed quickly and easily thanks to Flutter\u2019s <a href=\"https:\/\/docs.flutter.dev\/tools\/hot-reload\">hot reload feature<\/a>, meaning you don\u2019t have to recompile the app to view your UI changes.<\/p>\n<ol>\n<li>When the user taps on a country, the viewpoint of that country is preserved when the custom dialog is closed. To make it easier for the user to zoom out, add a <a href=\"https:\/\/api.flutter.dev\/flutter\/material\/FloatingActionButton-class.html\">floating action button<\/a> to navigate the view point back to a world view.<\/li>\n<li>Then to give the user more ways to explore countries where coffee is produced, add an interactive grid view using a third party <a href=\"https:\/\/pub.dev\/packages\/flutter_sliding_up_panel\">sliding up panel widget<\/a>. Configure the widget so that when a country name is tapped, the map automatically zooms to that country by checking the country\u2019s name against the graphic attribute name.<\/li>\n<\/ol>\n"},{"acf_fc_layout":"storymap","title":"","description":"","static":false,"storymap_url":"<a href=\"https:\/\/gist.github.com\/Rachael-E\/4efecd244c3e5a9c00075967828ab895.pibb\">https:\/\/gist.github.com\/Rachael-E\/4efecd244c3e5a9c00075967828ab895.pibb<\/a>"},{"acf_fc_layout":"content","content":"<p>Now the finished app has additional UI improvements which allow the user to not only interact with the map, but also a floating action button to reset the map view, and a list of coffee countries to browse via the sliding up panel.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2453432,"id":2453432,"title":"WidgetBuilding","filename":"WidgetBuilding.png","filesize":1669553,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/WidgetBuilding.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk\/widgetbuilding","alt":"A mobile phone screen displaying maps and information","author":"10242","description":"","caption":"Left - a floating action button is added to the UI, enabling the user to reset the map view. Middle - A sliding up panel is added for the user to swipe up to view a list of coffee countries. Right - the sliding up panel is maximised displaying a list of countries where coffee is produced. ","name":"widgetbuilding","status":"inherit","uploaded_to":2451632,"date":"2024-08-07 11:21:42","modified":"2024-08-07 11:23:57","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":1790,"height":1286,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/WidgetBuilding-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/WidgetBuilding.png","medium-width":363,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/WidgetBuilding.png","medium_large-width":768,"medium_large-height":552,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/WidgetBuilding.png","large-width":1503,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/WidgetBuilding-1536x1104.png","1536x1536-width":1536,"1536x1536-height":1104,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/WidgetBuilding.png","2048x2048-width":1790,"2048x2048-height":1286,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/WidgetBuilding-647x465.png","card_image-width":647,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/WidgetBuilding-1503x1080.png","wide_image-width":1503,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>Summary<\/h2>\n<p>You now have a cross-platform mobile app built with the ArcGIS Maps SDK for Flutter beta, which can used as a quick reference guide to discover the countries coffee comes from! We\u2019ve covered a lot here, so here is a high level recap of what we\u2019ve done:<\/p>\n<ol>\n<li>Installed Flutter and the ArcGIS Maps SDK for Flutter beta, and created an API key for location services authentication.<\/li>\n<li>Displayed a map on a cross-platform mobile app<\/li>\n<li>Loaded GeoJSON data as single and multipart polygons<\/li>\n<li>Displayed polygons as graphics on a graphics overlay on the map<\/li>\n<li>Added identify operations to the graphics for querying data information<\/li>\n<li>Set up interactions with the map view and other Flutter UI elements to navigate around the map easily.<\/li>\n<\/ol>\n<h3>What&#8217;s next?<\/h3>\n<p style=\"text-align: left;\"><strong>If you haven\u2019t already, you can access the ArcGIS Maps SDK for Flutter beta from the Esri <a href=\"https:\/\/earlyadopter.esri.com\/enter\/\">Early Adopter Site<\/a>. If you\u2019d like to view the source code and\/or give this app a try for yourself, you can find it <a href=\"https:\/\/github.com\/Rachael-E\/coffee_crib\">here on GitHub<\/a>.<\/strong><\/p>\n<p style=\"text-align: left;\"><strong>I hope this has inspired you to play around with building your own Flutter mapping applications \u2013 we\u2019d love to hear your feedback on how you find using the Flutter Maps SDK beta. You can leave feedback on our dedicated developer forum on the <a href=\"https:\/\/earlyadopter.esri.com\/enter\/\">Early Adopter<\/a> site, which is monitored and responded to regularly by our developers.<\/strong><\/p>\n<p style=\"text-align: left;\"><strong>If you haven\u2019t already, you can sign up for an ArcGIS Location Platform account to <a href=\"https:\/\/developers.arcgis.com\/documentation\/security-and-authentication\/api-key-authentication\/tutorials\/create-an-api-key\/\">generate an API key<\/a>.<\/strong><\/p>\n"}],"related_articles":[{"ID":2300912,"post_author":"10242","post_date":"2024-04-17 08:42:11","post_date_gmt":"2024-04-17 15:42:11","post_content":"","post_title":"Announcing the new ArcGIS Maps SDK for Flutter beta","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"announcing-arcgis-maps-sdk-for-flutter-beta","to_ping":"","pinged":"","post_modified":"2024-05-06 11:34:17","post_modified_gmt":"2024-05-06 18:34:17","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2300912","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2229422,"post_author":"10242","post_date":"2024-01-22 10:01:15","post_date_gmt":"2024-01-22 18:01:15","post_content":"","post_title":"Coming up: ArcGIS Maps SDK for Flutter beta release","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"arcgis-maps-sdk-flutter-beta-coming-up","to_ping":"","pinged":"","post_modified":"2024-01-26 09:01:37","post_modified_gmt":"2024-01-26 17:01:37","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2229422","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2454782,"post_author":"3811","post_date":"2024-08-09 07:02:55","post_date_gmt":"2024-08-09 14:02:55","post_content":"","post_title":"ArcGIS Maps SDK for Flutter beta 2 is here","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"arcgis-maps-sdk-for-flutter-beta-2-is-here","to_ping":"","pinged":"","post_modified":"2024-08-09 07:10:06","post_modified_gmt":"2024-08-09 14:10:06","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2454782","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/FlutterCoffeeCard2.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/FlutterCoffeeBanner2.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>Mapping where coffee comes from with the Flutter Maps SDK beta<\/title>\n<meta name=\"description\" content=\"Learn how to build a mobile application with the ArcGIS Maps SDK for Flutter beta that explores where coffee comes from.\" \/>\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\/developers\/developers\/mapping-coffee-flutter-maps-sdk\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mapping where coffee comes from with the Flutter Maps SDK beta\" \/>\n<meta property=\"og:description\" content=\"Learn how to build a mobile application with the ArcGIS Maps SDK for Flutter beta that explores where coffee comes from.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk\" \/>\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=\"2024-08-09T14:05:28+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=\"9 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\/developers\/developers\/mapping-coffee-flutter-maps-sdk#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk\"},\"author\":{\"name\":\"Rachael Ellen\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/d12aeaaab25c748cdf66a320bf0e72cd\"},\"headline\":\"Mapping where coffee comes from with the Flutter Maps SDK beta\",\"datePublished\":\"2024-08-08T13:27:44+00:00\",\"dateModified\":\"2024-08-09T14:05:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk\"},\"wordCount\":11,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"ArcGIS Maps SDK for Flutter\",\"flutter\",\"Flutter Maps SDK\",\"mobile applications\",\"mobile development\"],\"articleSection\":[\"Developers\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk\",\"name\":\"Mapping where coffee comes from with the Flutter Maps SDK beta\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2024-08-08T13:27:44+00:00\",\"dateModified\":\"2024-08-09T14:05:28+00:00\",\"description\":\"Learn how to build a mobile application with the ArcGIS Maps SDK for Flutter beta that explores where coffee comes from.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mapping where coffee comes from with the Flutter Maps SDK beta\"}]},{\"@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\/d12aeaaab25c748cdf66a320bf0e72cd\",\"name\":\"Rachael Ellen\",\"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\/2024\/01\/LinkedIn_Photo-465x465.jpeg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/01\/LinkedIn_Photo-465x465.jpeg\",\"caption\":\"Rachael Ellen\"},\"description\":\"Rachael is a senior product engineer in the Developer Outreach team for the ArcGIS Maps SDKs for Native Apps. Following an academic career in geology, she switched careers by learning to code and now enjoys building apps with the Native Maps SDKs. She loves sharing code examples, fun geospatial development workflows and the latest product updates with developers via blogs and talks.\",\"sameAs\":[\"https:\/\/dev.to\/rachaele\/\",\"https:\/\/www.linkedin.com\/in\/rachael-ellen-8a852729\/\",\"https:\/\/x.com\/Geolocoder\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/rellen\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Mapping where coffee comes from with the Flutter Maps SDK beta","description":"Learn how to build a mobile application with the ArcGIS Maps SDK for Flutter beta that explores where coffee comes from.","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\/developers\/developers\/mapping-coffee-flutter-maps-sdk","og_locale":"en_US","og_type":"article","og_title":"Mapping where coffee comes from with the Flutter Maps SDK beta","og_description":"Learn how to build a mobile application with the ArcGIS Maps SDK for Flutter beta that explores where coffee comes from.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2024-08-09T14:05:28+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","twitter_misc":{"Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk"},"author":{"name":"Rachael Ellen","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/d12aeaaab25c748cdf66a320bf0e72cd"},"headline":"Mapping where coffee comes from with the Flutter Maps SDK beta","datePublished":"2024-08-08T13:27:44+00:00","dateModified":"2024-08-09T14:05:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk"},"wordCount":11,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["ArcGIS Maps SDK for Flutter","flutter","Flutter Maps SDK","mobile applications","mobile development"],"articleSection":["Developers"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk","name":"Mapping where coffee comes from with the Flutter Maps SDK beta","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2024-08-08T13:27:44+00:00","dateModified":"2024-08-09T14:05:28+00:00","description":"Learn how to build a mobile application with the ArcGIS Maps SDK for Flutter beta that explores where coffee comes from.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/mapping-coffee-flutter-maps-sdk#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Mapping where coffee comes from with the Flutter Maps SDK beta"}]},{"@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\/d12aeaaab25c748cdf66a320bf0e72cd","name":"Rachael Ellen","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\/2024\/01\/LinkedIn_Photo-465x465.jpeg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/01\/LinkedIn_Photo-465x465.jpeg","caption":"Rachael Ellen"},"description":"Rachael is a senior product engineer in the Developer Outreach team for the ArcGIS Maps SDKs for Native Apps. Following an academic career in geology, she switched careers by learning to code and now enjoys building apps with the Native Maps SDKs. She loves sharing code examples, fun geospatial development workflows and the latest product updates with developers via blogs and talks.","sameAs":["https:\/\/dev.to\/rachaele\/","https:\/\/www.linkedin.com\/in\/rachael-ellen-8a852729\/","https:\/\/x.com\/Geolocoder"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/rellen"}]}},"text_date":"August 8, 2024","author_name":"Rachael Ellen","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/rellen","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/08\/FlutterCoffeeBanner2.png","primary_product":"Developers","tag_data":[{"term_id":776082,"name":"ArcGIS Maps SDK for Flutter","slug":"arcgis-maps-sdk-for-flutter","term_group":0,"term_taxonomy_id":776082,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"},{"term_id":773372,"name":"flutter","slug":"flutter","term_group":0,"term_taxonomy_id":773372,"taxonomy":"post_tag","description":"","parent":0,"count":6,"filter":"raw"},{"term_id":776092,"name":"Flutter Maps SDK","slug":"flutter-maps-sdk","term_group":0,"term_taxonomy_id":776092,"taxonomy":"post_tag","description":"","parent":0,"count":5,"filter":"raw"},{"term_id":215372,"name":"mobile applications","slug":"mobile-applications","term_group":0,"term_taxonomy_id":215372,"taxonomy":"post_tag","description":"","parent":0,"count":8,"filter":"raw"},{"term_id":35001,"name":"mobile development","slug":"mobile-development","term_group":0,"term_taxonomy_id":35001,"taxonomy":"post_tag","description":"","parent":0,"count":8,"filter":"raw"}],"category_data":[{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":420,"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":213,"filter":"raw"},{"term_id":36601,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":36601,"taxonomy":"product","description":"","parent":0,"count":761,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=developers","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2451632","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\/10242"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2451632"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2451632\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2451632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2451632"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2451632"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2451632"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2451632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}