1"use strict";(self.webpackChunkgeoapify_home=self.webpackChunkgeoapify_home||[]).push([[8843],{7273:function(e,n,t){t.r(n),t.d(n,{default:function(){return N}});var a=t(8453),s=t(6540);function l(e){const n=Object.assign({div:"div",h1:"h1",p:"p",i:"i",h2:"h2",h6:"h6",h3:"h3",a:"a",ul:"ul",li:"li",strong:"strong",span:"span",code:"code",blockquote:"blockquote",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",br:"br",em:"em"},(0,a.RP)(),e.components),{SplitSection:t,PageImage:l,Button:o}=n;return o||c("Button",!0),l||c("PageImage",!0),t||c("SplitSection",!0),s.createElement(s.Fragment,null,s.createElement(t,{reverseOrder:!0,textSlot:s.createElement(n.div,null,s.createElement(n.h1,{className:"text-5xl"},"What's new"),s.createElement(n.p,null,"Stay up-to-date with the latest news and updates about the ",s.createElement(n.i,null,"Geoapify Location Platform"),"."),s.createElement(n.p,null,"This is your go-to source for information on new features, important announcements, and other helpful resources related to Geoapify.")),mediaSlot:s.createElement(l,{dir:"whats-new",name:"geoapify-news-no-frame",alt:"Geoapify news and updates"})}),"\n",s.createElement(n.h2,null,"October 2026"),"\n",s.createElement(n.h6,null,"1 October 2026"),"\n",s.createElement(n.h3,null,"Open Geospatial Program Batch #2: AI Ã Geospatial"),"\n",s.createElement(n.p,null,"Applications are open for ",s.createElement(n.a,{href:"/open-geospatial-program/#batch-2-ai-geospatial"},"Open Geospatial Program â Batch #2: AI Ã Geospatial"),"."),"\n",s.createElement(n.p,null,"Build an application, AI agent, developer tool, script, workflow, automation, or experiment using ",s.createElement(n.a,{href:"https://apidocs.geoapify.com/open-api/",target:"_blank",rel:"nofollow"},"Geoapify OpenAPI specifications"),", ",s.createElement(n.a,{href:"/mcp/"},"Geoapify MCP"),", or both. We especially welcome projects that document their prompts, AI client configuration, what worked, and where AI needed human guidance."),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,"Applications close: ",s.createElement(n.strong,null,"October 20, 2026, at 23:59 UTC")),"\n",s.createElement(n.li,null,"Selected completed projects receive a ",s.createElement(n.strong,null,"EUR 300 sponsorship"),", with ",s.createElement(n.strong,null,"EUR 500 bonuses")," for the best tutorial and the best app, agent, or workflow"),"\n",s.createElement(n.li,null,"Apply by email: ",s.createElement(n.a,{href:"mailto:[email protected]?subject=Geoapify%20Open%20Geospatial%20Program%20-%20Batch%20%232%20Application",target:"_blank",rel:"nofollow"},"[email protected]")),"\n"),"\n",s.createElement(n.span,{dangerouslySetInnerHTML:{__html:"<span class='gatsby-resp-image-wrapper' style='position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 600px; '>\n <a class='gatsby-resp-image-link' href='/static/5db17bbc4df7dc2586746a3e99eadf6c/29114/batch-2.png' style='display: block' target='_blank' rel='noopener'>\n <span class='gatsby-resp-image-background-image' style=\"padding-bottom: 56.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/webp;base64,UklGRogAAABXRUJQVlA4IHwAAAAQBACdASoUAAsAPtFUo0uoJKMhsAgBABoJQBOgMYYcJUfo5REC/R3QYAD9uy/KXcu7tGWKia/d9iNV/uReVqcnu6dU52UHnazfRrHBJX0YpK+EFklSyx/3YNg3nNW+1bJpdrvEMc6BmpG5rbjUC0H3NmmtQ3wvUOajvCQA'); background-size: cover; display: block;\"></span>\n <img class='gatsby-resp-image-image' alt='Open Geospatial Program Batch #2 banner showing AI, OpenAPI, MCP, and example project formats' title='' src='/static/5db17bbc4df7dc2586746a3e99eadf6c/0a47e/batch-2.png' srcset='/static/5db17bbc4df7dc2586746a3e99eadf6c/5a46d/batch-2.png 300w,\n/static/5db17bbc4df7dc2586746a3e99eadf6c/fc2a6/batch-2.png 450w,\n/static/5db17bbc4df7dc2586746a3e99eadf6c/0a47e/batch-2.png 600w,\n/static/5db17bbc4df7dc2586746a3e99eadf6c/29114/batch-2.png 1920w' sizes='(max-width: 600px) 100vw, 600px' style='width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;' loading='lazy' decoding='async'>\n </a>\n </span>"}}),"\n",s.createElement(n.h2,null,"September 2026"),"\n",s.createElement(n.h6,null,"21 September 2026"),"\n",s.createElement(n.h3,null,"A Fresh Look for the Geoapify APIDocs Portal"),"\n",s.createElement(n.p,null,"Weâve updated the look and feel of our ",s.createElement(n.a,{href:"https://apidocs.geoapify.com/",target:"_blank",rel:"nofollow"},"APIDocs portal"),". Explore the refreshed portal for API documentation, interactive playgrounds, integration guides, MCP tools, and OpenAPI specifications."),"\n",s.createElement(n.p,null,"Weâve also introduced ",s.createElement(n.a,{href:"https://apidocs.geoapify.com/how-to",target:"_blank",rel:"nofollow"},"how-to guides")," with practical examples for geocoding, maps, routing, geometry operations, and AI integrations."),"\n",s.createElement(n.span,{dangerouslySetInnerHTML:{__html:"<span class='gatsby-resp-image-wrapper' style='position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 600px; '>\n <a class='gatsby-resp-image-link' href='/static/fed6fd0341e02a82ef08cc21daf4c119/2749c/new-apidocs-design.png' style='display: block' target='_blank' rel='noopener'>\n <span class='gatsby-resp-image-background-image' style=\"padding-bottom: 58.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/webp;base64,UklGRmIAAABXRUJQVlA4IFYAAADQAwCdASoUAAwAPtFYpEwoJSOiMAgBABoJZwAAW+0rsNDIpot2AAAA/rbJVZbs6PldVvUQrov7VZhNxunE1qrQREkgKxQcNIkYlmgqKoT0kOHEwAAAAA=='); background-size: cover; display: block;\"></span>\n <img class='gatsby-resp-image-image' alt='Redesigned Geoapify APIDocs portal with API documentation, playgrounds, and how-to guides.' title='' src='/static/fed6fd0341e02a82ef08cc21daf4c119/0a47e/new-apidocs-design.png' srcset='/static/fed6fd0341e02a82ef08cc21daf4c119/5a46d/new-apidocs-design.png 300w,\n/static/fed6fd0341e02a82ef08cc21daf4c119/fc2a6/new-apidocs-design.png 450w,\n/static/fed6fd0341e02a82ef08cc21daf4c119/0a47e/new-apidocs-design.png 600w,\n/static/fed6fd0341e02a82ef08cc21daf4c119/2749c/new-apidocs-design.png 3222w' sizes='(max-width: 600px) 100v
1w, 600px' style='width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;' loading='lazy' decoding='async'>\n </a>\n </span>"}}),"\n",s.createElement(n.h2,null,"August 2026"),"\n",s.createElement(n.h6,null,"28 August 2026"),"\n",s.createElement(n.h3,null,"Geometry Operations Are Now Available Through Geoapify MCP"),"\n",s.createElement(n.p,null,s.createElement(n.strong,null,"Geometry Operations are now available through ",s.createElement(n.a,{href:"/mcp/"},"Geoapify MCP"),".")," AI applications can combine, measure, compare, and transform GeoJSON geometriesâincluding intersections, buffers, spatial predicates, distances, areas, and line lengths."),"\n",s.createElement(n.p,null,"Example MCP tool call:"),"\n",s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`{\n "name": "measure_geometry",\n "arguments": {\n "operation": "length",\n "geometry": {\n "type": "LineString",\n "coordinates": [[13.38, 52.5], [13.44, 52.54]]\n },\n "units": "meters"\n }\n}`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="json"><pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"measure_geometry"</span><span class="token punctuation">,</span>\n <span class="token property">"arguments"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n <span class="token property">"operation"</span><span class="token operator">:</span> <span class="token string">"length"</span><span class="token punctuation">,</span>\n <span class="token property">"geometry"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n <span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"LineString"</span><span class="token punctuation">,</span>\n <span class="token property">"coordinates"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token number">13.38</span><span class="token punctuation">,</span> <span class="token number">52.5</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token number">13.44</span><span class="token punctuation">,</span> <span class="token number">52.54</span><span class="token punctuation">]</span><span class="token punctuation">]</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token property">"units"</span><span class="token operator">:</span> <span class="token string">"meters"</span>\n <span class="token punctuation">}</span>\n<span class="token punctuation">}</span></code></pre></div>'}})),"\n",s.createElement(n.p,null,"See the available tools and connection instructions in the ",s.createElement(n.a,{href:"https://apidocs.geoapify.com/mcp/",target:"_blank",rel:"nofollow"},"Geoapify MCP documentation"),"."),"\n",s.createElement(n.h6,null,"6 August 2026"),"\n",s.createElement(n.h3,null,"Geoapify MCP Server Adds Places and Routing Tools"),"\n",s.createElement(n.p,null,"We expanded ",s.createElement(n.a,{href:"/mcp/"},"Geoapify MCP Server")," from three geocoding tools to seven location tools. AI assistants can now discover place categories, find places near coordinates, c
1alculate routes, and build travel time and distance matrices in addition to geocoding and reverse geocoding."),"\n",s.createElement(n.p,null,"The new tools are:"),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,s.createElement(n.code,null,"search_places")," to find places and points of interest by category."),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"list_place_categories")," to discover the categories supported by place search."),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"calculate_route")," to calculate routes for driving, trucks, cycling, walking, hiking, and public transit."),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"calculate_route_matrix")," to calculate travel times and distances between multiple sources and targets."),"\n"),"\n",s.createElement(n.p,null,"Connect the server to an MCP-compatible AI client, then try requests such as âFind cafés within 1 km of these coordinatesâ or âCalculate a bicycle route between these locations.â See all available tools and example prompts on the ",s.createElement(n.a,{href:"/mcp/"},"Geoapify MCP Server page"),"."),"\n",s.createElement(n.h2,null,"July 2026"),"\n",s.createElement(n.h6,null,"10 July 2026"),"\n",s.createElement(n.h3,null,"Geoapify MCP Server for AI Assistants"),"\n",s.createElement(n.p,null,"We launched ",s.createElement(n.a,{href:"/mcp/"},"Geoapify MCP Server"),", a remote Maps MCP server that lets AI assistants use Geoapify geocoding and reverse geocoding tools."),"\n",s.createElement(n.p,null,"Connect it to an MCP-compatible AI client and ask location questions in natural language."),"\n",s.createElement(n.p,null,"Example AI request:"),"\n",s.createElement(n.blockquote,null,"\n",s.createElement(n.p,null,"Find coordinates for 1000 5th Avenue, New York, NY."),"\n"),"\n",s.createElement(n.p,null,"Learn how to connect the server, authenticate with a Geoapify API key, and try example prompts on the ",s.createElement(n.a,{href:"/mcp/"},"Geoapify MCP Server page"),"."),"\n",s.createElement(n.h2,null,"May 2026"),"\n",s.createElement(n.h6,null,"29 May 2026"),"\n",s.createElement(n.h3,null,"New NPM Library: ",s.createElement(n.code,null,"@geoapify/route-waypoint-selector")),"\n",s.createElement(n.p,null,"Weâve created ",s.createElement(n.strong,null,s.createElement(n.a,{href:"https://www.npmjs.com/package/@geoapify/route-waypoint-selector",target:"_blank",rel:"nofollow"},s.createElement(n.code,null,"@geoapify/route-waypoint-selector"))),", a TypeScript wayp
1oint selector UI component for route planning with Geoapify Autocomplete."),"\n",s.createElement(n.p,null,"Use it to help users add, reorder, and manage route waypoints in applications that rely on route planning workflows."),"\n",s.createElement(n.p,null,"Explore the package on ",s.createElement(n.a,{href:"https://www.npmjs.com/package/@geoapify/route-waypoint-selector",target:"_blank",rel:"nofollow"},"npm")," or view the source on ",s.createElement(n.a,{href:"https://github.com/geoapify/route-waypoint-selector",target:"_blank",rel:"nofollow"},"GitHub"),"."),"\n",s.createElement(n.h6,null,"17 May 2026"),"\n",s.createElement(n.h3,null,"New NPM Library: ",s.createElement(n.code,null,"@geoapify/batch-geocoding")),"\n",s.createElement(n.p,null,"Weâve also released ",s.createElement(n.strong,null,s.createElement(n.a,{href:"https://www.npmjs.com/package/@geoapify/batch-geocoding",target:"_blank",rel:"nofollow"},s.createElement(n.code,null,"@geoapify/batch-geocoding"))),", a library for batch geocoding with the Geoapify API."),"\n",s.createElement(n.p,null,"It helps geocode address lists and reverse geocode latitude/longitude coordinates in bulk, making it easier to process larger datasets programmatically."),"\n",s.createElement(n.p,null,"Explore the package on ",s.createElement(n.a,{href:"https://www.npmjs.com/package/@geoapify/batch-geocoding",target:"_blank",rel:"nofollow"},"npm")," or view the source on ",s.createElement(n.a,{href:"https://github.com/geoapify/batch-geocoding",target:"_blank",rel:"nofollow"},"GitHub"),"."),"\n",s.createElement(n.h6,null,"14 May 2026"),"\n",s.createElement(n.h3,null,"Geoapify Open Geospatial Program: Batch #1 Is Open"),"\n",s.createElement(n.p,null,"Batch #1 of the ",s.createElement(n.a,{href:"/open-geospatial-program/"},"Geoapify Open Geospatial Program")," is now open."),"\n",s.createElement(n.p,null,"This batch focuses on practical ",s.createElement(n.strong,null,"maps and places")," projects built with Geoapify APIs."),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,"Application deadline: ",s.createElement(n.strong,null,"June 10, 2026, 23:59 UTC")),"\n",s.createElement(n.li,null,"Program page: ",s.createElement(n.a,{href:"/open-geospatial-program/"},"Geoapify Open Geospatial Program")),"\n",s.createElement(n.li,null,"Apply by email: ",s.createElement(n.a,{href:"mailto:[email protected]?subject=Geoapify%20Open%20Geospatial%20Program%20-%20Batch%20%231%20Application",target:"_blank",rel:"nofollow"},"[email protected]")),"\n"),"\n",s.createElement(n.span,{dangerouslySetInnerHTML:{__html:"<span class='gatsby-resp-image-wrapper' style='position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 600px; '>\n <a class='gatsby-resp-image-link' href='/static/17a4a8727fd54626f73d218263715442/29114/batch-1.png' style='display: block' target='_blank' rel='noopener'>\n <span class='gatsby-resp-image-background-image' style=\"padding-bottom: 56.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/webp;base64,UklGRowAAABXRUJQVlA4IIAAAADQAwCdASoUAAsAPtFUo0uoJKMhsAgBABoJZQAAXlc46ECmPSAOCoAA/vBAyzkZJoDFgNqNwQEd1pw+yD7sXggWUajNJ11LXoilWsD2cv8DQXT6fhr4NnPtmDf0102uDz+LK9092EoueuCtfW6y2FbTyMuPNz7W2nAjOpGlACBAAA=='); background-size: cover; display: block;\"></span>\n <img class='gatsby-resp-image-image' alt='Geoapify Open Geospatial Program Batch #1' title='' src='/static/17a4a8727fd54626f73d218263715442/0a47e/batch-1.png' srcset='/static/17a4a8727fd54626f73d218263715442/5a46d/batch-1.png 300w,\n/static/17a4a8727fd54626f73d218263715442/fc2a6/batch-1.png 450w,\n/static/17a4a8727fd54626f73d218263715442/0a47e/batch-1.png 600w,\n/static/17a4a8727fd54626f73d218263715442/29114/batch-1.png 1920w' sizes='(max-width: 600px) 100vw, 600px' style='width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;' loading='lazy' decoding='async'>\n </a>\n </span>"}}),"\n",s.createElement(n.h6,null,"8 May 2026"),"\n",s.createElement(n.h3,null,"Routing API: ",s.createElement(n.code,null,"intermediate_waypoint_mode")," Added"),"\n",s.createElement(n.p,null,"We added a new Routing API parameter: ",s.createElement(n.code,null,"intermediate_waypoint_mode"),"."),"\n",s.createElement(n.p,null,"It controls how ",s.createElement(n.strong,null,"intermediate waypoints")," are treated when a route contains ",s.createElement(n.strong,null,"3 or more waypoints"),". Supported values are:"),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,s.createElement(n.code,null,"stopover")," (default)"),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"through_stop")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"pass_through")),"\n"),"\n",s.createElement(n.p,null,"Example request:"),"\n",s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`https://api.geoapify.com/v1/routing?waypoints=49.266798,4.0152071|49.267243,4.0166331|49.267668,4.0181211&mode=drive&format=json&intermediate_waypoint_mode=through_stop&apiKey=YOUR_API_KEY`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
1<path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="bash"><pre class="language-bash"><code class="language-bash">https://api.geoapify.com/v1/routing?waypoints<span class="token operator">=</span><span class="token number">49.266798</span>,4.0152071<span class="token operator">|</span><span class="token number">49.267243</span>,4.0166331<span class="token operator">|</span><span class="token number">49.267668</span>,4.0181211<span class="token operator">&</span><span class="token assign-left variable">mode</span><span class="token operator">=</span>drive<span class="token operator">&</span><span class="token assign-left variable">format</span><span class="token operator">=</span>json<span class="token operator">&</span><span class="token assign-left variable">intermediate_waypoint_mode</span><span class="token operator">=</span>through_stop<span class="token operator">&</span><span class="token assign-left variable">apiKey</span><span class="token operator">=</span>YOUR_API_KEY</code></pre></div>'}})),"\n",s.createElement(n.p,null,"See the full details in the ",s.createElement(n.a,{href:"https://apidocs.geoapify.com/docs/routing/",target:"_blank",rel:"nofollow"},"Routing API documentation"),"."),"\n",s.createElement(n.h6,null,"6 May 2026"),"\n",s.createElement(n.h3,null,"Places API Categories Expanded to 800+"),"\n",s.createElement(n.p,null,"Weâve added more categories and subcategories to the ",s.createElement(n.strong,null,"Places API"),". The catalog now includes ",s.createElement(n.strong,null,"more than 800 categories and subcategories"),", giving you more precise ways to search for places and amenities."),"\n",s.createElement(n.p,null,"Examples of newly available categories:"),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,s.createElement(n.code,null,"activity.events_venue")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"activity.hackerspace")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"airport.terminal")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"amenity.toilet.changing_table")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"highway.roundabout")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"maritime.marina")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"memorial.cemetery")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"memorial.christian.catholic")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"natural.desert")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"natural.water.bay")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"office.government.embassy")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"pet.animal_shelter")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"production.distillery")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"public_transport.platform")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"service.post.parcel_locker")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"service.social_facility.nursing_home")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"sport.fitness.gym")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"tourism.attraction.artwork.mural")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"tourism.sights.wreck")),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"waterway.whitewater")),"\n"),"\n",s.createElement(n.p,null,"See the full list in the ",s.createElement(n.a,{href:"https://apidocs.geoapify.com/docs/places/#categories",target:"_blank",rel:"nofollow"},"Places API categories documentation"),"."),"\n",s.createElement(n.h6,null,"4 May 2026"),"\n",s.createElement(n.h3,null,"Elevation API Is Now in Production"),"\n",s.createElement(n.p,null,"Geoapify ",s.createElement(n.strong,null,"Elevation API")," is now in production. Use it to look up terrain elevation for latitude/longitude coordinates and integrate elevation data into mapping, routing, outdoor, and analytics workflows."),"\n",s.createElement(n.p,null,"Example request:"),"\n",s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`curl -X POST "https://api.geoapify.com/v1/geodata/elevation?apiKey=YOUR_API_KEY" \\\n -H "Content-Type: application/json" \\\n -d \'{\n "locations": [\n { "lat": 46.5774, "lon": 8.3855 },\n { "lat": 45.9763, "lon": 7.6586 }\n ]\n }\'`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
1<path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="bash"><pre class="language-bash"><code class="language-bash"><span class="token function">curl</span> <span class="token parameter variable">-X</span> POST <span class="token string">"https://api.geoapify.com/v1/geodata/elevation?apiKey=YOUR_API_KEY"</span> <span class="token punctuation">\\</span>\n <span class="token parameter variable">-H</span> <span class="token string">"Content-Type: application/json"</span> <span class="token punctuation">\\</span>\n <span class="token parameter variable">-d</span> <span class="token string">\'{\n "locations": [\n { "lat": 46.5774, "lon": 8.3855 },\n { "lat": 45.9763, "lon": 7.6586 }\n ]\n }\'</span></code></pre></div>'}})),"\n",s.createElement(n.p,null,"Learn more on the ",s.createElement(n.a,{href:"/elevation-api/"},"Elevation API page")," or see the full ",s.createElement(n.a,{href:"https://apidocs.geoapify.com/docs/elevation/",target:"_blank",rel:"nofollow"},"Elevation API docs"),"."),"\n",s.createElement(n.h2,null,"March 2026"),"\n",s.createElement(n.h6,null,"12 March 2026"),"\n",s.createElement(n.h3,null,"Batch API Priority Parameter Added"),"\n",s.createElement(n.p,null,"We added a ",s.createElement(n.code,null,"priority")," parameter to ",s.createElement(n.a,{href:"/batch-api/"},"Batch API")," requests. It lets you run asynchronous jobs with higher queue priority when faster processing is required."),"\n",s.createElement(n.p,null,"Set ",s.createElement(n.code,null,"priority")," from ",s.createElement(n.code,null,"0.5")," to ",s.createElement(n.code,null,"1")," (default is ",s.createElement(n.code,null,"0.5"),"), where ",s.createElement(n.code,null,"1")," is the highest priority."),"\n",s.createElement(n.p,null,"Cost impact:"),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,"Batch cost includes ",s.createElement(n.code,null,"1")," credit to create the job, ",s.createElement(n.code,null,"1")," credit to get status/result, plus wrapped API credits multiplied by ",s.createElement(n.code,null,"priority"),"."),"\n",s.createElement(n.li,null,"Lower priority (for example ",s.createElement(n.code,null,"0.5"),") reduces wrapped API cost but may take longer."),"\n",s.createElement(n.li,null,"Higher priority (",s.createElement(n.code,null,"1"),") processes faster under load, with no price reduction."),"\n"),"\n",s.createElement(n.p,null,"Formula: ",s.createElement(n.code,null,"Total credits = 1 + 1 + (wrapped API credits à priority)")),"\n",s.createElement(n.p,null,"Example request body:"),"\n",s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`{\n "api": "/v1/geocode/search",\n "priority": 1,\n "params": {\n "format": "json",\n "filter": "countrycode:us"\n },\n "inputs": [\n {\n "id": "addr-1",\n "params": {\n "text": "5201 Julianna Drive, Norfolk, VA 23502, United States of America"\n }\n }\n ]\n}`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
1<path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="json"><pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n <span class="token property">"api"</span><span class="token operator">:</span> <span class="token string">"/v1/geocode/search"</span><span class="token punctuation">,</span>\n <span class="token property">"priority"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n <span class="token property">"params"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n <span class="token property">"format"</span><span class="token operator">:</span> <span class="token string">"json"</span><span class="token punctuation">,</span>\n <span class="token property">"filter"</span><span class="token operator">:</span> <span class="token string">"countrycode:us"</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token property">"inputs"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n <span class="token punctuation">{</span>\n <span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"addr-1"</span><span class="token punctuation">,</span>\n <span class="token property">"params"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n <span class="token property">"text"</span><span class="token operator">:</span> <span class="token string">"5201 Julianna Drive, Norfolk, VA 23502, United States of America"</span>\n <span class="token punctuation">}</span>\n <span class="token punctuation">}</span>\n <span class="token punctuation">]</span>\n<span class="token punctuation">}</span></code></pre></div>'}})),"\n",s.createElement(n.p,null,"Use this body in ",s.createElement(n.code,null,"POST https://api.geoapify.com/v1/batch?apiKey=YOUR_API_KEY"),".\nTry it in the ",s.createElement(n.a,{href:"https://apidocs.geoapify.com/playground/batch/",target:"_blank",rel:"nofollow"},"Batch Playground")," or see full details in the ",s.createElement(n.a,{href:"https://apidocs.geoapify.com/docs/batch/",target:"_blank",rel:"nofollow"},"Batch API docs"),"."),"\n",s.createElement(n.h2,null,"December 2025"),"\n",s.createElement(n.h6,null,"16 December 2025"),"\n",s.createElement(n.h3,null,"Downloadable Timezone Dataset (IANA + GeoJSON)"),"\n",s.createElement(n.p,null,"Weâve published a new ",s.createElement(n.strong,null,"Timezone dataset")," that pairs IANA timezone metadata with GeoJSON polygons so you can run timezone lookups offline, sync local-time rules, and render world timezone maps without extra processing."),"\n",s.createElement(n.p,null,"Highlights:"),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,s.createElement(n.code,null,"timezone-info.json")," with canonical + alias identifiers, ISO country coverage, offsets, abbreviations, and DST flags."),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"timezone-geojson.zip")," containing dissolved Polygon/MultiPolygon geometries per timezone (",s.createElement(n.code,null,"tzid")," in properties) for point-in-polygon queries."),"\n"),"\n",s.createElement(n.p,null,"Use it to power scheduling tools, travel and logistics dashboards, compliance workflows, or any application that needs a reliable âtimezone by coordinatesâ lookup."),"\n",s.createElement("div",{className:"width-default mb-8"},s.createElement(o,{type:"secondary",text:"Download Timezone Dataset",url:"/download-timezones
1/"})),"\n",s.createElement(n.h2,null,"November 2025"),"\n",s.createElement(n.h6,null,"14 November 2025"),"\n",s.createElement(n.h3,null,"Updated UN/LOCODE Dataset in ",s.createElement(n.code,null,"@geoapify/un-locode")),"\n",s.createElement(n.p,null,"Weâve released a new version of ",s.createElement(n.strong,null,s.createElement(n.code,null,"@geoapify/un-locode"))," with a fully refreshed ",s.createElement(n.strong,null,"UN/LOCODE dataset")," â updated entries, improved consistency, and cleaner structure for easier lookups in logistics and supply-chain apps."),"\n",s.createElement(n.p,null,"Example:"),"\n",s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`const { query } = require(\'@geoapify/un-locode\');\n\nconst aberdeen = query(\'US\', \'APG\');\nconsole.log(aberdeen?.locationName); // "Aberdeen"`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="javascript"><pre class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> <span class="token punctuation">{</span> query <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">\'@geoapify/un-locode\'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n<span class="token keyword">const</span> aberdeen <span class="token operator">=</span> <span class="token function">query</span><span class="token punctuation">(</span><span class="token string">\'US\'</span><span class="token punctuation">,</span> <span class="token string">\'APG\'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\nconsole<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>aberdeen<span class="token operator">?.</span>locationName<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// "Aberdeen"</span></code></pre></div>'}})),"\n",s.createElement(n.p,null,"Use UN/LOCODE with routing, geocoding, or mapping workflows to standardize global locations efficiently."),"\n",s.createElement(n.h6,null,"3 November 2025"),"\n",s.createElement(n.h3,null,"Geocoder Autocomplete v3 RC: Category Search"),"\n",s.createElement(n.p,null,"We are preparing a major update of the ",s.createElement(n.code,null,"@geoapify/geocoder-autocomplete")," library. The release candidate for version 3 adds support for category-based search so you can suggest POIs (e.g., emergency services) in addition to addresses."),"\n",s.createElement(n.p,null,"Try the RC:"),"\n",s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`npm i @geoapify/geocoder-autocomplete@next`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
1<path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="bash"><pre class="language-bash"><code class="language-bash"><span class="token function">npm</span> i @geoapify/geocoder-autocomplete@next</code></pre></div>'}})),"\n",s.createElement(n.p,null,"Highlights:"),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,'Category search with Places API categories (e.g., "cafes", "hotels", "restaurants").'),"\n",s.createElement(n.li,null,"Works alongside existing filters and bias options."),"\n"),"\n",s.createElement(n.p,null,"Minimal example:"),"\n",s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`import { GeocoderAutocomplete } from \'@geoapify/geocoder-autocomplete\';\n\nconst apiKey = \'YOUR_API_KEY\';\nconst container = document.getElementById(\'autocomplete\');\n\nconst ac = new GeocoderAutocomplete(container, apiKey, {\n // New in v3\n addCategorySearch: true,\n limit: 5,\n placesLimit: 20\n});\n\nac.on(\'select\', (feature) => {\n console.log(\'Selected:\', feature.properties);\n});`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="js"><pre class="language-js"><code class="language-js"><span class="token keyword">import</span> <span class="token punctuation">{</span> GeocoderAutocomplete <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">\'@geoapify/geocoder-autocomplete\'</span><span class="token punctuation">;</span>\n\n<span class="token keyword">const</span> apiKey <span class="token operator">=</span> <span class="token string">\'YOUR_API_KEY\'</span><span class="token punctuation">;</span>\n<span class="token keyword">const</span> container <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">\'autocomplete\'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n<span class="token keyword">const</span> ac <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">GeocoderAutocomplete</span><span class="token punctuation">(</span>container<span class="token punctuation">,</span> apiKey<span class="token punctuation">,</span> <span class="token punctuation">{</span>\n <span class="token comment">// New in v3</span>\n <span class="token literal-property property">addCategorySearch</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n <span class="token literal-property property">limit</span><span class="token operator">:</span> <span class="token number">5</span><span class="token punctuation">,</span>\n <span class="token literal-property property">placesLimit</span><span class="token operator">:</span> <span class="token number">20</span>\n<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\nac<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">\'select\'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">feature</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">\'Selected:\'</span><span class="token punctuation">,</span> feature<span class="token punctuation">.</span>properties<span class="token punctuation">)</span><span class="token punctuation">;</span>\n<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre></div>'}})),"\n",s.createElement(n.p,null,"We welcome feedback on the RC to help finalize v3."),"\n",s.createElement(n.h6,null,"2 November 2025"),"\n",s.createElement(n.h3,null,"Rect and Circle Bias in Places API"),"\n",s.createElement(n.p,null,"We added two new bias modes to the Places API so you can prefer results near a map view or within a radius while still allowing results just outside the area if needed to satisfy ",s.createElement(n.code,null,"limit"),"."),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,s.createElement(n.code,null,"bias=rect:west,south,east,north")," â prefers results within a viewport or map bounds"),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"bias=circle:lon,lat,radius")," â prefers results within a radius (meters)"),"\n"),"\n",s.createElement(n.p,null,"Examples:"),"\n",s.createElement(n.p,null,"Prefer results inside a map view (rectangular viewport):"),"\n",s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`https://api.geoapify.com/v2/places?categories=catering.restaurant&bias=rect:-122.52,37.70,-122.35,37.83&limit=20&apiKey=YOUR_API_KEY`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
1<path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="bash"><pre class="language-bash"><code class="language-bash">https://api.geoapify.com/v2/places?categories<span class="token operator">=</span>catering.restaurant<span class="token operator">&</span><span class="token assign-left variable">bias</span><span class="token operator">=</span>rect:-122.52,37.70,-122.35,37.83<span class="token operator">&</span><span class="token assign-left variable">limit</span><span class="token operator">=</span><span class="token number">20</span><span class="token operator">&</span><span class="token assign-left variable">apiKey</span><span class="token operator">=</span>YOUR_API_KEY</code></pre></div>'}})),"\n",s.createElement(n.p,null,"Prefer results within 3 km of a center point:"),"\n",s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`https://api.geoapify.com/v2/places?categories=accommodation.hotel&bias=circle:-0.1276,51.5072,3000&limit=20&apiKey=YOUR_API_KEY`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="bash"><pre class="language-bash"><code class="language-bash">https://api.geoapify.com/v2/places?categories<span class="token operator">=</span>accommodation.hotel<span class="token operator">&</span><span class="token assign-left variable">bias</span><span class="token operator">=</span>circle:-0.1276,51.5072,3000<span class="token operator">&</span><span class="token assign-left variable">limit</span><span class="token operator">=</span><span class="token number">20</span><span class="token operator">&</span><span class="token assign-left variable">apiKey</span><span class="token operator">=</span>YOUR_API_KEY</code></pre></div>'}})),"\n",s.createElement(n.p,null,"Tip: combine ",s.createElement(n.code,null,"bias")," with ",s.createElement(n.code,null,"filter")," for hard boundaries when needed (e.g., ",s.createElement(n.code,null,"filter=rect:...")," or ",s.createElement(n.code,null,"filter=circle:..."),")."),"\n",s.createElement(n.h6,null,"1 November 2025"),"\n",s.createElement(n.h3,null,"Emergency Services Categories Added to Places API"),"\n",s.createElement(n.p,null,"We expanded the Places API taxonomy with emergency- and rescue-related categories. Use them to discover critical infrastructure and service points with precise filtering."),"\n",s.createElement(n.p,null,"New categories:"),"\n",s.createElement("div",{className:"width-default mb-12"},s.createElement(n.table,null,s.createElement(n.thead,null,s.createElement(n.tr,null,s.createElement(n.th,null,"Category"),s.createElement(n.th,null,"Description"))),s.createElement(n.tbody,null,s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.access_point"),s.createElement(n.td,null,"Signed emergency access/meeting point to guide responders.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.air_rescue_service"),s.createElement(n.td,null,"Facility or base for helicopter/air rescue operations.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.ambulance_station"),s.createElement(n.td,null,"Ambulance station or depot for EMS crews and vehicles.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.bleed_control_kit"),s.createElement(n.td,null,"Public bleed control kit (StopâtheâBleed) location.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.control_centre"),s.createElement(n.td,null,"Emergency control/dispatch coordination center.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.disaster_help_point"),s.createElement(n.td,null,"Designated help/assembly point for disaster situations.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.disaster_response"),s.createElement(n.td,null,"Disaster response hub or logistics site.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.drinking_water"),s.createElement(n.td,null,"Emergency drinking water point or tap.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.dry_riser_inlet"),s.createElement(n.td,null,"Dry riser inlet for fire brigade connection.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.emergency_ward_entrance"),s.createElement(n.td,null,"Hospital emergency department entrance (ER/A&E).")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.fire_alarm_box"),s.createElement(n.td,null,"Manual fire alarm call point/alarm box.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.fire_detection_system"),s.createElement(n.td,null,"Fire detection/control panel or sensor infrastru
1cture.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.fire_flapper"),s.createElement(n.td,null,"Fire beater/flapper for wildfire suppression.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.fire_hose"),s.createElement(n.td,null,"Fire hose cabinet or reel location.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.fire_lookout"),s.createElement(n.td,null,"Fire lookout tower or observation post.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.fire_water_pond"),s.createElement(n.td,null,"Firefighting water pond/cistern access.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.first_aid"),s.createElement(n.td,null,"First aid station/room providing basic care.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.first_aid_kit"),s.createElement(n.td,null,"Publicly accessible first aid kit.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.key_depot"),s.createElement(n.td,null,"Emergency key depot/box for responders.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.landing_site"),s.createElement(n.td,null,"Marked emergency helicopter landing site.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.life_ring"),s.createElement(n.td,null,"Life ring/buoy for water rescue.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.lifeguard"),s.createElement(n.td,null,"Lifeguard post/stand (on-duty position).")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.lifeguard_base"),s.createElement(n.td,null,"Lifeguard base/station with equipment and staff.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.marine_rescue"),s.createElement(n.td,null,"Marine/coast water rescue facility.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.mountain_rescue"),s.createElement(n.td,null,"Mountain rescue base or hut.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.rescue_box"),s.createElement(n.td,null,"Box with emergency/rescue equipment.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.siren"),s.createElement(n.td,null,"Civil defense/emergency warning siren.")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.slipway"),s.createElement(n.td,null,"Boat slipway/launch ramp (emergency access).")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.water_rescue"),s.createElement(n.td,null,"Water rescue station or service."))))),"\n",s.createElement(n.p,null,"Example: list ambulance stations in an area"),"\n",s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`https://api.geoapify.com/v2/places?categories=emergency.ambulance_station&filter=rect:-0.55,51.72,-0.05,51.40&limit=20&apiKey=YOUR_API_KEY`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="bash"><pre class="language-bash"><code class="language-bash">https://api.geoapify.com/v2/places?categories<span class="token operator">=</span>emergency.ambulance_station<span class="token operator">&</span><span class="token assign-left variable">filter</span><span class="token operator">=</span>rect:-0.55,51.72,-0.05,51.40<span class="token operator">&</span><span class="token assign-left variable">limit</span><span class="token operator">=</span><span class="token number">20</span><span class="token operator">&</span><span class="token assign-left variable">apiKey</span><span class="token operator">=</span>YOUR_API_KEY</code></pre></div>'}})),"\n",s.createElement(n.p,null,"Refer to the Places API category reference for full hierarchy and combine with filters such as ",s.createElement(n.code,null,"countrycode"),", ",s.createElement(n.code,null,"bbox"),", and ",s.createElement(n.code,null,"lang"),"."),"\n",s.createElement(n.h2,null,"September 2025"),"\n",s.createElement(n.h6,null,"16 September 2025"),"\n",s.createElement(n.h3,null,"Worldwide Cities & Towns Dataset Refreshed"),"\n",s.createElement(n.p,null,"Weâve refreshed the ",s.createElement(n.a,{href:"/download-all-the-cities-towns-villages/"},"All Cities, Towns, Villages, and Hamlets dataset")," with the latest OpenStreetMap edits. The update improves administrative boundary matching, adds localized naming guidance, and expands the documentation with new examples so you can plug the data into analytics or GIS tools faster. Download the new country archives and explore the enriched FAQ section for localization tips."),"\n",s.createElement(n.h6,null,"12 September 2025"),"\n",s.createElement(n.h3,null,"Memorial & Funeral Service Categories Added to Places API"),"\n",s.createElement(n.p,null,"Weâve expanded the ",s.createElement(n.a,{href:"/places-api/"},"Places API")," taxonomy to cover memorial grounds, crematoria, and mourning services. The new categories let you surface culturally specific burial sites and funeral infrastru
1cture with a single query."),"\n",s.createElement("div",{className:"width-default mb-12"},s.createElement(n.table,null,s.createElement(n.thead,null,s.createElement(n.tr,null,s.createElement(n.th,null,"Category"),s.createElement(n.th,null,"Description"))),s.createElement(n.tbody,null,s.createElement(n.tr,null,s.createElement(n.td,null,"memorial"),s.createElement(n.td,null,"Generic memorial points of interest")),s.createElement(n.tr,null,s.createElement(n.td,null,"memorial.graveyard"),s.createElement(n.td,null,"Graveyards without formal boundaries")),s.createElement(n.tr,null,s.createElement(n.td,null,"memorial.cemetery"),s.createElement(n.td,null,"Cemeteries and burial complexes")),s.createElement(n.tr,null,s.createElement(n.td,null,"memorial.cemetery.sector"),s.createElement(n.td,null,"Individual sectors inside large cemeteries")),s.createElement(n.tr,null,s.createElement(n.td,null,"memorial.christian[.*]"),s.createElement(n.td,null,"Christian memorial sites (Catholic, Orthodox, Protestant)")),s.createElement(n.tr,null,s.createElement(n.td,null,"memorial.jewish"),s.createElement(n.td,null,"Jewish memorial grounds")),s.createElement(n.tr,null,s.createElement(n.td,null,"memorial.muslim"),s.createElement(n.td,null,"Muslim memorial grounds")),s.createElement(n.tr,null,s.createElement(n.td,null,"memorial.buddhist"),s.createElement(n.td,null,"Buddhist memorial sites")),s.createElement(n.tr,null,s.createElement(n.td,null,"memorial.hindu"),s.createElement(n.td,null,"Hindu memorial sites")),s.createElement(n.tr,null,s.createElement(n.td,null,"pet.crematorium"),s.createElement(n.td,null,"Crematoria dedicated to pets")),s.createElement(n.tr,null,s.createElement(n.td,null,"service.crematorium[.*]"),s.createElement(n.td,null,"Human and pet cremation services")),s.createElement(n.tr,null,s.createElement(n.td,null,"service.funeral_hall"),s.createElement(n.td,null,"Funeral halls and chapels")),s.createElement(n.tr,null,s.createElement(n.td,null,"service.mortuary"),s.createElement(n.td,null,"Mortuaries and morgues")),s.createElement(n.tr,null,s.createElement(n.td,null,"service.place_of_mourning"),s.createElement(n.td,null,"Dedicated mourning or wake facilities")),s.createElement(n.tr,null,s.createElement(n.td,null,"tourism.sights.memorial.necropolis"),s.createElement(n.td,null,"Historical necropolises")),s.createElement(n.tr,null,s.createElement(n.td,null,"tourism.sights.memorial.tumulus"),s.createElement(n.td,null,"Burial mounds and tumuli"))))),"\n",s.createElement(n.p,null,"Sample query returning memorial cemeteries within a bounding box:"),"\n",s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`https://api.geoapify.com/v2/places?categories=memorial.cemetery&filter=rect:-122.517,37.832,-122.355,37.708&limit=20&apiKey=YOUR_API_KEY`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="bash"><pre class="language-bash"><code class="language-bash">https://api.geoapify.com/v2/places?categories<span class="token operator">=</span>
1memorial.cemetery<span class="token operator">&</span><span class="token assign-left variable">filter</span><span class="token operator">=</span>rect:-122.517,37.832,-122.355,37.708<span class="token operator">&</span><span class="token assign-left variable">limit</span><span class="token operator">=</span><span class="token number">20</span><span class="token operator">&</span><span class="token assign-left variable">apiKey</span><span class="token operator">=</span>YOUR_API_KEY</code></pre></div>'}})),"\n",s.createElement(n.p,null,"Refer to the ",s.createElement(n.a,{href:"https://apidocs.geoapify.com/docs/places/categories/",target:"_blank",rel:"nofollow"},"Places API category reference")," for the full hierarchy and combine the new tags with existing filters (e.g., ",s.createElement(n.code,null,"countrycode"),", ",s.createElement(n.code,null,"lang"),") to localize results."),"\n",s.createElement(n.h2,null,"July 2025"),"\n",s.createElement(n.h6,null,"20 July 2025"),"\n",s.createElement(n.h3,null,"Marker Icon API v2 Released: Custom Sizes + Lucide Icon Support"),"\n",s.createElement(n.p,null,"Weâve released ",s.createElement(n.strong,null,"Map Marker Icon API v2"),", which brings more flexibility and visual customization for your map markers."),"\n",s.createElement(n.p,null,s.createElement(n.strong,null,"What's new in version 2:")),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,"\n",s.createElement(n.p,null,s.createElement(n.strong,null,"Numeric size support")," â Instead of fixed size keywords like ",s.createElement(n.code,null,"small"),", ",s.createElement(n.code,null,"medium"),", or ",s.createElement(n.code,null,"x-large"),", you can now set precise values in pixels using ",s.createElement(n.code,null,"size")," and ",s.createElement(n.code,null,"contentSize"),".",s.createElement(n.br),"\n","Example:"),"\n",s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="bash"><pre class="language-bash"><code class="language-bash">https://api.geoapify.com/v2/icon/?type<span class="token operator">=</span>awesome<span class="token operator">&</span><span class="token assign-left variable">color</span><span class="token operator">=</span>%2375f1ef<span class="token operator">&</span><span class="token assign-left variable">size</span><span class="token operator">=</span><span class="token number">100</span><span class="token operator">&</span><span class="token assign-left variable">icon</span><span class="token operator">=</span>cloud<span class="token operator">&</span><span class="token assign-left variable">contentSize</span><span class="token operator">=</span><span class="token number">40</span><span class="token operator">&</span>noWhiteCircle<span class="token operator">&</span><span class="token assign-left variable">scaleFactor</span><span class="token operator">=</span><span class="token number">2</span><span class="token operator">&</span><span class="token assign-left variable">apiKey</span><span class="token operator">=</span>YOUR_API_KEY</code></pre></div>'}}),"\n"),"\n"),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Lucide icons support")," â Weâve added support for the open-source ",s.createElement(n.a,{href:"https://lucide.dev/icons/",target:"_blank",rel:"nofollow"},"Lucide Icons")," set. Use ",s.createElement(n.code,null,"icontype=lucide")," and access a clean, modern set of line icons."),"\n"),"\n",s.createElement(n.p,null,"Now you can fully customize your marker icons in terms of:"),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,"shape and background (",s.createElement(n.code,null,"type"),")"),"\n",s.createElement(n.li,null,"main color and stroke"),"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"icon type"),": ",s.createElement(n.code,null,"awesome"),", ",s.createElement(n.code,null,"material"),", or ",s.createElement(n.code,null,"lucide")),"\n",s.createElement(n.li,null,"icon size and layout"),"\n",s.createElement(n.li,null,"retina display supp
1ort via ",s.createElement(n.code,null,"scaleFactor")),"\n"),"\n",s.createElement(n.p,null,"Learn more and experiment with different styles in the ",s.createElement(n.a,{href:"/map-marker-icon-api/"},"Marker Icon API documentation"),"."),"\n",s.createElement(n.h2,null,"March 2025"),"\n",s.createElement(n.h6,null,"28 March 2025"),"\n",s.createElement(n.h3,null,"New Categories Added to Places API"),"\n",s.createElement(n.p,null,"Weâve extended the ",s.createElement(n.a,{href:"/places-api/"},"Places API")," with new categories focused on ",s.createElement(n.strong,null,"emergency infrastructure")," and ",s.createElement(n.strong,null,"road network details"),". These categories help you access more specific and detailed location data for critical infrastructure and navigation purposes."),"\n",s.createElement(n.p,null,"Hereâs the list of new categories:"),"\n",s.createElement("div",{className:"width-default mb-12"},s.createElement(n.table,null,s.createElement(n.thead,null,s.createElement(n.tr,null,s.createElement(n.th,null,"Category"),s.createElement(n.th,null,"Description"))),s.createElement(n.tbody,null,s.createElement(n.tr,null,s.createElement(n.td,null,"emergency"),s.createElement(n.td,null,"General emergency-related locations")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.fire_hydrant"),s.createElement(n.td,null,"Fire hydrant locations")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.fire_service_inlet"),s.createElement(n.td,null,"Fire service water inlet points")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.suction_point"),s.createElement(n.td,null,"Fire department suction points")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.defibrillator"),s.createElement(n.td,null,"Publicly accessible defibrillator devices")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.water_tank"),s.createElement(n.td,null,"Water tanks for firefighting")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.phone"),s.createElement(n.td,null,"Emergency telephones")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.assembly_point"),s.createElement(n.td,null,"Emergency assembly points")),s.createElement(n.tr,null,s.createElement(n.td,null,"emergency.fire_extinguisher"),s.createElement(n.td,null,"Fire extinguisher locations")),s.createElement(n.tr,null,s.createElement(n.td,null,"highway.primary.link"),s.createElement(n.td,null,"Primary road link (connection)")),s.createElement(n.tr,null,s.createElement(n.td,null,"highway.secondary.link"),s.createElement(n.td,null,"Secondary road link")),s.createElement(n.tr,null,s.createElement(n.td,null,"highway.tertiary.link"),s.createElement(n.td,null,"Tertiary road link")),s.createElement(n.tr,null,s.createElement(n.td,null,"highway.trunk.link"),s.createElement(n.td,null,"Trunk road link")),s.createElement(n.tr,null,s.createElement(n.td,null,"highway.motorway.junction"),s.createElement(n.td,null,"Motorway junctions")),s.createElement(n.tr,null,s.createElement(n.td,null,"highway.motorway.link"),s.createElement(n.td,null,"Motorway link roads")),s.createElement(n.tr,null,s.createElement(n.td,null,"service.fire_station"),s.createElement(n.td,null,"Fire station services")),s.createElement(n.tr,null,s.createElement(n.td,null,"service.ambulance_station"),s.createElement(n.td,null,"Ambulance station services"))))),"\n",s.createElement(n.p,null,"You can now search for these categories using the ",s.createElement(n.strong,null,"Places API"),". Learn more in the ",s.createElement(n.a,{href:"https://apidocs.geoapify.com/docs/places/",target:"_blank",rel:"nofollow"},"Places API documentation"),"."),"\n",s.createElement(n.h6,null,"5 March 2025"),"\n",s.createElement(n.h3,null,"New NPM Library for Route Planner API"),"\n",s.createElement(n.p,null,"We are excited to introduce the official ",s.createElement(n.strong,null,"@geoapify/route-planner-sdk")," NPM package â a developer-friendly SDK for working with the Geoapify ",s.createElement(n.a,{href:"/route-planner-api/"},"Route Planner API"),"."),"\n",s.createElement(n.p,null,"The library helps you easily integrate advanced route optimization and delivery planning into your applications. It supports both frontend (browser) and backend (Node.js) environments and provides a simple interface to create, configure, and execute route optimization tasks."),"\n",s.createElement(n.p,null,"Learn more about the package and see usage examples on the ",s.createElement(n.a,{href:"https://www.npmjs.com/package/@geoapify/route-planner-sdk",target:"_blank",rel:"nofollow"},"NPM package page"),"."),"\n",s.createElement(n.h2,null,"January 2025"),"\n",s.createElement(n.h6,null,"27 January 2025"),"\n",s.createElement(n.h3,null,"Code Samples Repository Launched on GitHub"),"\n",s.createElement(n.p,null,"We are happy to announce the launch of our official Geoapify Code Samples repository on GitHub. The repository contains ready-to-use code examples for working with Geoapify APIs in ",s.createElement(n.strong,null,"JavaScript")," and ",s.createElement(n.strong,null,"Python"),"."),"\n",s.createElement(n.p,null,"These samples will help you quickly get started, understand typical use cases, and easily integrate Geoapify Location Platform into your projects."),"\n",s.createElement(n.p,null,"You can explore the repository and start building: ",s.createElement(n.a,{href:"https://github.com/geoapify/maps-api-code-samples",target:"_blank",rel:"nofollow"},"https://github.com/geoapify/maps-api-code-samples")),"\n",s.createElement(n.p,null,"We will continue updating the repository with new examples and best practices. Stay tuned!"),"\n",s.createElement("details",{className:"mt-10 width-default"},s.createElement("summary",{className:"text-lg font-semibold cursor-pointer"},"2024 Release Highlights"),s.createElement(n.h2,null,"November 2024"),s.createElement(n.h6,null,"5 November 2024"),s.createElement(n.h3,null,"Enhanced Netherlands Address Search Supp
1ort in the Autocomplete API"),s.createElement(n.p,null,"We have enhanced the Autocomplete API to include searching by postcode and house number specifically for addresses in the Netherlands. This update significantly improves precision and the overall user experience for location searches within the region. This functionality can be accessed using filter=countrycode:nl in your requests."),s.createElement(n.p,null,"To illustrate, here is an example of a request URL:"),s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="javascript"><pre class="language-javascript"><code class="language-javascript"><span class="token literal-property property">https</span><span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span>api<span class="token punctuation">.</span>geoapify<span class="token punctuation">.</span>com<span class="token operator">/</span>v1<span class="token operator">/</span>geocode<span class="token operator">/</span>autocomplete<span class="token operator">?</span>text<span class="token operator">=</span><span class="token number">3012</span><span class="token operator">%</span>20CL<span class="token operator">%</span>2C<span class="token operator">%</span><span class="token number">2025</span><span class="token operator">&</span>limit<span class="token operator">=</span><span class="token number">5</span><span class="token operator">&</span>filter<span class="token operator">=</span>countrycode<span class="token operator">:</span>nl<span class="token operator">&</span>apiKey<span class="token operator">=</span><span class="token constant">YOUR_API_KEY</span></code></pre></div>'}})),s.createElement(n.h3,null,"Support for UN/LOCODE Codes in the Geocoding and Autocomplete APIs"),s.createElement(n.p,null,"We are excited to announce that both the Geocoding API and the Autocomplete API now support searches using UN/LOCODE codes. This enhancement enables users to find locations more efficiently and consistently by leveraging standardized UN/LOCODEs."),s.createElement(n.p,null,"For example, you can use the following request URL to search with UN/LOCODE:"),s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="javascript"><pre class="language-javascript"><code class="language-javascript"><span class="token literal-property property">https</span><span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span>api<span class="token punctuation">.</span>geoapify<span class="token punctuation">.</span>com<span class="token operator">/</span>v1<span class="token operator">/</span>geocode<span class="token operator">/</span>search<span class="token operator">?</span>text<span class="token operator">=</span><span class="token constant">US</span><span class="token operator">%</span>20JBE<span class="token operator">&</span>format<span class="token operator">=</span>json<span class="token operator">&</span>apiKey<span class="token operator">=</span><span class="token constant">YOUR_API_KEY</span></code></pre></div>'}})),s.createElement(n.p,null,"To learn more about UN/LOCODE and its applications, please refer to ",s.createElement(n.a,{href:"https://unece.org/trade/cefact/unlocode-code-list-country-and-territory",target:"_blank",rel:"nofollow"},"UN/LOCODE documentation"),"."),s.createElement(n.h2,null,"September 2024"),s.createElement(n.h6,null,"30 September 2024"),s.createElement(n.h3,null,"We Added the ",s.createElement(n.code,null,'"confidence_building_level"')," to Geocoding/Autocomplete Results"),s.createElement(n.p,null,"We have added a new property called ",s.createElement(n.code,null,"confidence_building_level")," as part of the Geocoding/Autocomplete response. This enhancement provides more granular information about the validation confidence specifically at the building level, helping differentiate address validation between the building, street, and city levels."),s.createElement(n.p,null,"How ",s.createElement(n.code,null,"confidence_building_level")," works:"),s.createElement(n.ul,null,"\n",s.createElement(n.li,null,s.createElement(n.code,null,"confidence_building_level = 1"),": The building is fully confirmed."),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"confidence_building_level = 0"),": The building is not found, but the street and city may
1still be valid."),"\n",s.createElement(n.li,null,s.createElement(n.code,null,"0 < confidence_building_level < 1"),": There are doubts about the exact position of the building."),"\n"),s.createElement(n.p,null,"Here is an example of usage for address validation:"),s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="javascript"><pre class="language-javascript"><code class="language-javascript"><span class="token keyword">let</span> message <span class="token operator">=</span> <span class="token string">\'\'</span><span class="token punctuation">;</span>\n\n<span class="token keyword">if</span> <span class="token punctuation">(</span>foundAddress<span class="token punctuation">.</span>properties<span class="token punctuation">.</span>rank<span class="token punctuation">.</span>confidence <span class="token operator">===</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n message <span class="token operator">=</span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">We verified the address you entered. The formatted address is: </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>foundAddress<span class="token punctuation">.</span>properties<span class="token punctuation">.</span>formatted<span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">;</span>\n<span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>foundAddress<span class="token punctuation">.</span>properties<span class="token punctuation">.</span>rank<span class="token punctuation">.</span>confidence_street_level <span class="token operator">===</span> <span class="token number">1</span> <span class="token operator">&&</span> foundAddress<span class="token punctuation">.</span>properties<span class="token punctuation">.</span>rank<span class="token punctuation">.</span>confidence_building_level <span class="token operator">===</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n message <span class="token operator">=</span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">We verified the address up to street level, but the building could not be found: </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>foundAddress<span class="token punctuation">.</span>properties<span class="token punctuation">.</span>formatted<span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">;</span>\n<span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>foundAddress<span class="token punctuation">.</span>properties<span class="token punctuation">.</span>rank<span class="token punctuation">.</span>confidence_street_level <span class="token operator">===</span> <span class="token number">1</span> <span class="token operator">&&</span> foundAddress<span class="token punctuation">.</span>properties<span class="token punctuation">.</span>rank<span class="token punctuation">.</span>confidence_building_level <span class="token operator">></span> <span class="token number">0</span> <span class="token operator">&&</span> foundAddress<span class="token punctuation">.</span>properties<span class="token punctuation">.</span>rank<span class="token punctuation">.</span>confidence_building_level <span class="token operator"><</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n message <span class="token operator">=</span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">The address is valid up to street level, but there are doubts about the building\'s exact position: </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>foundAddress<span class="token punctuation">.</span>properties<span class="token punctuation">.</span>formatted<span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">;</span>\n<span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>foundAddress<span class="token punctuation">.</span>properties<span class="token punctuation">.</span>rank<span class="token punctuation">.</span>
1confidence_street_level <span class="token operator">===</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n message <span class="token operator">=</span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">We can confirm the address up to street level: </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>foundAddress<span class="token punctuation">.</span>properties<span class="token punctuation">.</span>formatted<span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">;</span>\n<span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>\n message <span class="token operator">=</span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">We can only verify your address partially. The address we found is </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>foundAddress<span class="token punctuation">.</span>properties<span class="token punctuation">.</span>formatted<span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">;</span>\n<span class="token punctuation">}</span></code></pre></div>'}})),s.createElement(n.h2,null,"May 2024"),s.createElement(n.h6,null,"20 May 2024"),s.createElement(n.h3,null,"Introducing Enhanced Map Customization and Functionality"),s.createElement(n.p,null,"We're excited to introduce some major updates to enhance your mapping experience:"),s.createElement(n.ul,null,"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Custom Map Style Customization"),": We've listened to your feedback and are thrilled to announce that we've added the ability to customize map styles in our Static Maps API. Now, you can tailor the look and feel of your maps to match your unique preferences or branding."),"\n"),s.createElement(n.p,null,"Here is an example of customized map picture:\n",s.createElement(n.span,{dangerouslySetInnerHTML:{__html:"<span class='gatsby-resp-image-wrapper' style='position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 600px; '>\n <a class='gatsby-resp-image-link' href='/static/f310a7996e3174c59a775b204d2210cc/e5166/static-map-example.jpg' style='display: block' target='_blank' rel='noopener'>\n <span class='gatsby-resp-image-background-image' style=\"padding-bottom: 66.66666666666666%; position: relative; bottom: 0; left: 0; background-image: url('data:image/webp;base64,UklGRqYAAABXRUJQVlA4IJoAAAAwBACdASoUAA0APtFUo0uoJKMhsAgBABoJbACsH8GJ/gOousLqDaDamgAA/tYNJiT4vV07UpNjObrhcQxldyCoeW4FDNVE8DyQ35NyC4ieQQMc3uHKPTKYnm/necRixniyXDKVPi6ya+/YJH3Dy6LmUFNjBDA+YpBHHPpM/srEntXu0x6K8VLBs7ifzrmCwLTopeh9CWBAAAAA'); background-size: cover; display: block;\"></span>\n <img class='gatsby-resp-image-image' alt='Static map with customized style' title='' src='/static/f310a7996e3174c59a775b204d2210cc/b4294/static-map-example.jpg' srcset='/static/f310a7996e3174c59a775b204d2210cc/f93b5/static-map-example.jpg 300w,\n/static/f310a7996e3174c59a775b204d2210cc/20e5d/static-map-example.jpg 450w,\n/static/f310a7996e3174c59a775b204d2210cc/b4294/static-map-example.jpg 600w,\n/static/f310a7996e3174c59a775b204d2210cc/e5166/static-map-example.jpg 1200w' sizes='(max-width: 600px) 100vw, 600px' style='width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;' loading='lazy' decoding='async'>\n </a>\n </span>"}})),s.createElement(n.p,null,"Here is an example of a map URL with style customization:"),s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`https://maps.geoapify.com/v1/staticmap?style=osm-bright&width=600&height=400¢er=lonlat:-122.300301,47.522805&zoom=14&styleCustomization=background:%23caa27b|water:%23cedbe7|water-pattern:none|waterway-name:%233f5a75|highway-name-major:27&scaleFactor=2&apiKey=YOUR_API_KEY`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
1<path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="bash"><pre class="language-bash"><code class="language-bash">https://maps.geoapify.com/v1/staticmap?style<span class="token operator">=</span>osm-bright<span class="token operator">&</span><span class="token assign-left variable">width</span><span class="token operator">=</span><span class="token number">600</span><span class="token operator">&</span><span class="token assign-left variable">height</span><span class="token operator">=</span><span class="token number">400</span><span class="token operator">&</span><span class="token assign-left variable">center</span><span class="token operator">=</span>lonlat:-122.300301,47.522805<span class="token operator">&</span><span class="token assign-left variable">zoom</span><span class="token operator">=</span><span class="token number">14</span><span class="token operator">&</span><span class="token assign-left variable">styleCustomization</span><span class="token operator">=</span>background:%23caa27b<span class="token operator">|</span>water:%23cedbe7<span class="token operator">|</span>water-pattern:none<span class="token operator">|</span>waterway-name:%233f5a75<span class="token operator">|</span>highway-name-major:27<span class="token operator">&</span><span class="token assign-left variable">scaleFactor</span><span class="token operator">=</span><span class="token number">2</span><span class="token operator">&</span><span class="token assign-left variable">apiKey</span><span class="token operator">=</span>YOUR_API_KEY</code></pre></div>'}})),s.createElement(n.ul,null,"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Improved Map Playground"),": Our ",s.createElement(n.a,{href:"https://apidocs.geoapify.com/playground/maps/",target:"_blank",rel:"nofollow"},"Map Playground")," just got even better! You can now dynamically change map styles interactively within the Playground. Not only does this allow you to see immediate visual changes, but the Playground also generates Static Maps API URLs and code snippets for updating styles in interactive maps. It's never been easier to experiment with different map aesthetics."),"\n"),s.createElement(n.p,null,"Here is an example of a customization code for interactive maps:"),s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`map.on(\'load\', () => {\n map.setPaintProperty(\'background\', \'background-color\', \'#cdc2b8\');\n map.setPaintProperty(\'landcover-grass\', \'fill-color\', \'#daf4c0\');\n map.setPaintProperty(\'place-town\', \'text-color\', \'#4f3516\');\n map.setLayoutProperty(\'place-town\', \'text-size\', {"base":1.2,"stops":[[10,27.416666666666664],[15,47]]});\n map.setLayoutProperty(\'place-city\', \'text-size\', {"base":1.2,"stops":[[7,15.166666666666668],[11,26]]});\n map.setLayoutProperty(\'place-city-capital\', \'text-size\', {"base":1.2,"stops":[[7,14.583333333333334],[11,25]]});\n map.setLayoutProperty(\'place-country-other\', \'text-size\', {"stops":[[3,11.647058823529411],[7,18]]});\n});`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
1<path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="javascript"><pre class="language-javascript"><code class="language-javascript">map<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">\'load\'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n map<span class="token punctuation">.</span><span class="token function">setPaintProperty</span><span class="token punctuation">(</span><span class="token string">\'background\'</span><span class="token punctuation">,</span> <span class="token string">\'background-color\'</span><span class="token punctuation">,</span> <span class="token string">\'#cdc2b8\'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n map<span class="token punctuation">.</span><span class="token function">setPaintProperty</span><span class="token punctuation">(</span><span class="token string">\'landcover-grass\'</span><span class="token punctuation">,</span> <span class="token string">\'fill-color\'</span><span class="token punctuation">,</span> <span class="token string">\'#daf4c0\'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n map<span class="token punctuation">.</span><span class="token function">setPaintProperty</span><span class="token punctuation">(</span><span class="token string">\'place-town\'</span><span class="token punctuation">,</span> <span class="token string">\'text-color\'</span><span class="token punctuation">,</span> <span class="token string">\'#4f3516\'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n map<span class="token punctuation">.</span><span class="token function">setLayoutProperty</span><span class="token punctuation">(</span><span class="token string">\'place-town\'</span><span class="token punctuation">,</span> <span class="token string">\'text-size\'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token string-property property">"base"</span><span class="token operator">:</span><span class="token number">1.2</span><span class="token punctuation">,</span><span class="token string-property property">"stops"</span><span class="token operator">:</span><span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token number">10</span><span class="token punctuation">,</span><span class="token number">27.416666666666664</span><span class="token punctuation">]</span><span class="token punctuation">,</span><span class="token punctuation">[</span><span class="token number">15</span><span class="token punctuation">,</span><span class="token number">47</span><span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n map<span class="token punctuation">.</span><span class="token function">setLayoutProperty</span><span class="token punctuation">(</span><span class="token string">\'place-city\'</span><span class="token punctuation">,</span> <span class="token string">\'text-size\'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token string-property property">"base"</span><span class="token operator">:</span><span class="token number">1.2</span><span class="token punctuation">,</span><span class="token string-property property">"stops"</span><span class="token operator">:</span><span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token number">7</span><span class="token punctuation">,</span><span class="token number">15.166666666666668</span><span class="token punctuation">]</span><span class="token punctuation">,</span><span class="token punctuation">[</span><span class="token number">11</span><span class="token punctuation">,</span><span class="token number">26</span><span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n map<span class="token punctuation">.</span><span class="token function">setLayoutProperty</span><span class="token punctuation">(</span><span class="token string">\'place-city-capital\'</span><span class="token punctuation">,</span> <span class="token string">\'text-size\'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token string-property property">"base"</span><span class="token operator">:</span><span class="token number">1.2</span><span class="token punctuation">,</span><span class="token string-property property">"stops"</span><span class="token operator">:</span><span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token number">7</span><span class="token punctuation">,</span><span class="token number">14.583333333333334</span><span class="token punctuation">]</span><span class="token punctuation">,</span><span class="token punctuation">[</span><span class="token number">11</span><span class="token punctuation">,</span><span class="token number">25</span><span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n map<span class="token punctuation">.</span><span class="token function">setLayoutProperty</span><span class="token punctuation">(</span><span class="token string">\'place-country-other\'</span><span class="token punctuation">,</span> <span class="token string">\'text-size\'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token string-property property">"stops"</span><span class="token operator">:</span><span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">11.647058823529411</span><span class="token punctuation">]</span><span class="token punctuation">,</span><span class="token punctuation">[</span><span class="token number">7</span><span class="token punctuation">,</span><span class="token number">18</span><span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre></div>'}})),s.createElement(n.ul,null,"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Support for POST Requests in Static Maps"),": Say goodbye to URL-length limits! We've implemented support for POST requests in our Static Maps API, enabling you to create map images with complex geometries without being constrained by URL length restrictions. This opens up a world of possibilities for creating detailed and intricate map visuals."),"\n"),s.createElement(n.p,null,"These updates are designed to empower you with more flexibility and control over your mapping projects. We can't wait to see how you utilize these new features!"),s.createElement(n.h2,null,"February 2024"),s.createElement(n.h6,null,"7 February 2024"),s.createElement(n.h3,null,"Introducing the ",s.createElement(n.code,null,"max_speed")," Parameter to Our Suite of Routing APIs"),s.createElement(n.p,null,"We are excited to announce the addition of the max_speed parameter to our comprehensive range of routing services, including the\n",s.createElement(n.a,{href:"/routing-api/"},"Routing API"),", ",s.createElement(n.a,{href:"/route-matrix-api/"},"Route Matrix API"),", ",s.createElement(n.a,{href:"/route-planner-api/"},"Route Planner API"),", and ",s.createElement(n.a,{href:"/isoline-api/"},"Isoline API"),". This innovative feature is designed to enhance your routing capabilities, offering more personalized and efficie
1nt navigation solutions."),s.createElement(n.p,null,"Key Benefits of the max_speed Parameter:"),s.createElement(n.ul,null,"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Customized Routing"),": With the max_speed parameter, users can now set a maximum travel speed for their routes."),"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Efficiency and Realism"),": The inclusion of a max_speed setting contributes to more realistic route planning. It takes into account the vehicle's maximum speed capability, ensuring that the estimated arrival times are more accurate and that routes are optimized for time and fuel efficiency."),"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Versatile Application"),": Applicable across various modes of transport, including all truck modes and buses, the max_speed parameter is a versatile tool for a wide range of routing needs, from commercial logistics to personal travel planning."),"\n"),s.createElement(n.p,null,"We believe that this new feature will significantly enhance the user experience by providing more control over route planning and optimization.")),"\n",s.createElement("details",{className:"mt-10 width-default"},s.createElement("summary",{className:"text-lg font-semibold cursor-pointer"},"2023 Release Highlights"),s.createElement(n.h2,null,"November 2023"),s.createElement(n.h6,null,"8 November 2023"),s.createElement(n.h3,null,"Postcodes Dataset Unveiled"),s.createElement(n.p,null,"Elevate your location-based projects with our ",s.createElement(n.a,{href:"/download-postal-codes/"},"Open Postcodes Dataset"),"."),s.createElement(n.p,null,"We curate open data from various sources, both official and non-official, ensuring a comprehensive and accurate collection of postal code information.\nWhether you're crafting geocoding solutions, optimizing routes, or enhancing user experiences, our dataset, sourced from diverse and open data streams, provides a rich foundation."),s.createElement(n.h6,null,"1 November 2023"),s.createElement(n.h3,null,'Introducing New "Recycling" Categories in Places API'),s.createElement(n.p,null,"In a bid to enhance your location-based experiences, we're thrilled to introduce three new categories to our Places API â \"",s.createElement(n.em,null,"service.recycling"),'", "',s.createElement(n.em,null,"service.recycling.container"),'", "',s.createElement(n.em,null,"service.recycling.bin"),'", and "',s.createElement(n.em,null,"service.recycling.centre"),'".'),s.createElement(n.p,null,"Here is an example of an API URL:"),s.createElement("div",{className:"width-default"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`https://api.geoapify.com/v2/places?categories=service.recycling.centre&filter=rect:32.954431,34.754873,33.109805,34.640372&limit=20&apiKey=YOUR_API_KEY`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="bash"><pre class="language-bash"><code class="language-bash">https://api.geoapify.com/v2/places?categories<span class="token operator">=</span>service.recycling.centre<span class="token operator">&</span><span class="token assign-left variable">filter</span><span class="token operator">=</span>rect:32.954431,34.754873,33.109805,34.640372<span class="token operator">&</span><span class="token assign-left variable">limit</span><span class="token operator">=</span><span class="token number">20</span><span class="token operator">&</span><span class="token assign-left variable">apiKey</span><span class="token operator">=</span>YOUR_API_KEY</code></pre></div>'}})),s.createElement(n.h2,null,"September 2023"),s.createElement(n.h6,null,"11 September 2023"),s.createElement(n.h3,null,"OSM's Settlements Dataset"),s.createElement(n.p,null,"Explore the dynamic world of settlements with our ",s.createElement(n.a,{href:"/download-all-the-cities-towns-villages/"},"Settlements Dataset"),", derived directly from OpenStreetMap (OSM). From bustling cities to serene villages, this collection offers a comprehensive view of urban landscapes."),s.createElement(n.p,null,"Whether it's for research or commercial use, this dataset guides you through the intricate patterns of urban living."),s.createElement(n.h2,null,"July 2023"),s.createElement(n.h6,null,"10 July 2023"),s.createElement(n.h3,null,"Introducing Plus Codes for Enhanced Geocoding"),s.createElement(n.p,null,"We're excited to announce the integration of ",s.createElement(n.a,{href:"https://en.wikipedia.org/wiki/Open_Location_Code",target:"_blank",rel:"nofollow"},"Plus Codes")," into our ",s.createElement(n.a,{href:"/geocoding-api/"},"Geocoding API"),"! With this update, the Geocoding API response now includes Plus Codes, a convenient way to encode locations."),s.createElement(n.p,null,"In addition, the Geocoding API now accepts Plus Codes as input and returns the corresponding address information. This means you can utilize Plus Codes as an alternative to traditional address formats, simplifying the geocoding process and improving the overall user experience."),s.createElement(n.h6,null,"7 July 2023"),s.createElement(n.h3,null,"Enhanced Autocomplete: French Department Co
1de Support"),s.createElement(n.p,null,"We're delighted to introduce an exciting enhancement to our autocomplete feature! With the latest update, when using autocomplete with bias or filter set to France, the API returns French Department by the corresponding ",s.createElement(n.a,{href:"https://en.wikipedia.org/wiki/Departments_of_France",target:"_blank",rel:"nofollow"},"French Department code"),'. For example, if you send "08" as an input for the Autocomplete API, it will return "Ardennes, France."'),s.createElement(n.p,null,'To enable this feature, set the "bias=countrycode:fr" or "filter=countrycode:fr" parameter. Here is an example URL:'),s.createElement("div",{className:"width-default mb-12"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`https://api.geoapify.com/v1/geocode/autocomplete?text=08&bias=countrycode:fr&format=json&apiKey=YOUR_API_KEY`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="bash"><pre class="language-bash"><code class="language-bash">https://api.geoapify.com/v1/geocode/autocomplete?text<span class="token operator">=</span>08<span class="token operator">&</span><span class="token assign-left variable">bias</span><span class="token operator">=</span>countrycode:fr<span class="token operator">&</span><span class="token assign-left variable">format</span><span class="token operator">=</span>json<span class="token operator">&</span><span class="token assign-left variable">apiKey</span><span class="token operator">=</span>YOUR_API_KEY</code></pre></div>'}})),s.createElement(n.h2,null,"May 2023"),s.createElement(n.h6,null,"9 May 2023"),s.createElement(n.h3,null,"Introducing New Categories to Our Places API for Enhanced Social Inclusion"),s.createElement(n.p,null,"We're excited to announce the addition of several new categories to our Places API! These new categories include ",s.createElement(n.em,null,'"service.social_facility"'),", ",s.createElement(n.em,null,'"service.social_facility.shelter"'),",\n",s.createElement(n.em,null,'"service.social_facility.food"'),", ",s.createElement(n.em,null,'"service.social_facility.clothes"'),", ",s.createElement(n.em,null,'"amenity.give_box"'),", ",s.createElement(n.em,null,'"amenity.give_box.food"'),", and ",s.createElement(n.em,null,'"amenity.give_box.books"'),"."),s.createElement(n.p,null,"The ",s.createElement(n.em,null,'"service.social_facility"'),' category includes locations that provide social services to people in need, such as counseling, support groups, and other types of assistance. The sub-categories under this category, such as "shelter", "food", and "clothes", help to specify the type of assistance provided by each location. Here is an example of an API URL:'),s.createElement("div",{className:"width-default"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`https://api.geoapify.com/v2/places?categories=amenity.give_box&filter=rect:1.9551667274513598,49.11083222569353,2.6462152224779167,48.65832480785126&limit=20&apiKey=YOUR_API_KEY`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
1<path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="bash"><pre class="language-bash"><code class="language-bash">https://api.geoapify.com/v2/places?categories<span class="token operator">=</span>amenity.give_box<span class="token operator">&</span><span class="token assign-left variable">filter</span><span class="token operator">=</span>rect:1.9551667274513598,49.11083222569353,2.6462152224779167,48.65832480785126<span class="token operator">&</span><span class="token assign-left variable">limit</span><span class="token operator">=</span><span class="token number">20</span><span class="token operator">&</span><span class="token assign-left variable">apiKey</span><span class="token operator">=</span>YOUR_API_KEY</code></pre></div>'}})),s.createElement(n.p,null,"The ",s.createElement(n.em,null,'"amenity.give_box"'),' category includes locations where people can donate or leave items for others to take for free, such as books or food items. The sub-categories under this category, such as "food" and "books", specify the types of items that are available for donation. Here is an example of an API URL:'),s.createElement("div",{className:"width-default"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`https://api.geoapify.com/v2/places?categories=religion.place_of_worship&filter=rect:2.238261781728731,48.914334683358526,2.4285652756822813,48.78963839210784&limit=20&apiKey=YOUR_API_KEY`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="bash"><pre class="language-bash"><code class="language-bash">https://api.geoapify.com/v2/places?categories<span class="token operator">=</span>religion.place_of_worship<span class="token operator">&</span><span class="token assign-left variable">filter</span><span class="token operator">=</span>rect:2.238261781728731,48.914334683358526,2.4285652756822813,48.78963839210784<span class="token operator">&</span><span class="token assign-left variable">limit</span><span class="token operator">=</span><span class="token number">20</span><span class="token operator">&</span><span class="token assign-left variable">apiKey</span><span class="token operator">=</span>YOUR_API_KEY</code></pre></div>'}})),s.createElement(n.p,null,"We believe that these new categories will help developers to create more comprehensive and inclusive applications that cater to the needs of a wider audience. We're excited to see the innovative ways in which our customers will utilize these new categories in their location-based applications.")),"\n",s.createElement("details",{className:"mt-10 width-default"},s.createElement("summary",{className:"text-lg font-semibold cursor-pointer"},"2022 Release Highlights"),s.createElement(n.h2,null,"November 2022"),s.createElement(n.h6,null,"7 November 2022"),s.createElement(n.h3,null,"We've added a new category that will help you find places that produce something"),s.createElement(n.p,null,'The new "production" category and its "production.factory", "production.winery", "production.brewery", "production.cheese",\n"production.pottery" subcategories are available now in Places API.'),s.createElement(n.p,null,"For example, you can query all breweries in Munich now:"),s.createElement("div",{className:"width-default"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`https://api.geoapify.com/v2/places?categories=production.brewery&filter=place:51c69eecf83f18274059dd3ad3f89a134840f00101f901dcf3000000000000c002099203084dc3bc6e6368656e&limit=20&apiKey=YOUR_API_KEY`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
1<path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="bash"><pre class="language-bash"><code class="language-bash">https://api.geoapify.com/v2/places?categories<span class="token operator">=</span>production.brewery<span class="token operator">&</span><span class="token assign-left variable">filter</span><span class="token operator">=</span>place:51c69eecf83f18274059dd3ad3f89a134840f00101f901dcf3000000000000c002099203084dc3bc6e6368656e<span class="token operator">&</span><span class="token assign-left variable">limit</span><span class="token operator">=</span><span class="token number">20</span><span class="token operator">&</span><span class="token assign-left variable">apiKey</span><span class="token operator">=</span>YOUR_API_KEY</code></pre></div>'}})),s.createElement(n.p,null,"This will return:"),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:"<span class='gatsby-resp-image-wrapper' style='position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 600px; '>\n <a class='gatsby-resp-image-link' href='/static/a260b827e9afdd4903855205bd6e5522/1e088/places-api-query-breweries-in-munich.png' style='display: block' target='_blank' rel='noopener'>\n <span class='gatsby-resp-image-background-image' style=\"padding-bottom: 67.33333333333333%; position: relative; bottom: 0; left: 0; background-image: url('data:image/webp;base64,UklGRoIAAABXRUJQVlA4IHYAAABQBACdASoUAA0APtFUo0uoJKMhsAgBABoJZQC7ACP344SjMlgz0HQ3plbAAP5mRiKWLxB1zmZQUCaxc2NbDjp0+JhzseXBYuFn31OGhjYPpLtEUIrbWprRA00tlXp6jOotVerTt/oAkeFYvuT5LJPFyhm4AAAA'); background-size: cover; display: block;\"></span>\n <img class='gatsby-resp-image-image' alt='Breweries in Munich with Places API' title='' src='/static/a260b827e9afdd4903855205bd6e5522/0a47e/places-api-query-breweries-in-munich.png' srcset='/static/a260b827e9afdd4903855205bd6e5522/5a46d/places-api-query-breweries-in-munich.png 300w,\n/static/a260b827e9afdd4903855205bd6e5522/fc2a6/places-api-query-breweries-in-munich.png 450w,\n/static/a260b827e9afdd4903855205bd6e5522/0a47e/places-api-query-breweries-in-munich.png 600w,\n/static/a260b827e9afdd4903855205bd6e5522/1e088/places-api-query-breweries-in-munich.png 840w' sizes='(max-width: 600px) 100vw, 600px' style='width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;' loading='lazy' decoding='async'>\n </a>\n </span>"}}),s.createElement(n.h2,null,"October 2022"),s.createElement(n.h6,null,"24 October 2022"),s.createElement(n.h3,null,"Improved navigation in the API Documentation"),s.createElement(n.p,null,"We've made navigation in our ",s.createElement(n.em,null,"API Documentation")," portal easier and more convenient. In the ",s.createElement(n.em,null,"API Documentation"),", you can read the detailed documentation for our APIs and try them without registration."),s.createElement(n.p,null,s.createElement(n.a,{href:"https://apidocs.geoapify.com/",target:"_blank",rel:"nofollow"},"Go to API Documentation >>")),s.createElement(n.h2,null,"September 2022"),s.createElement(n.h6,null,"28 September 2022"),s.createElement(n.h3,null,"New code samples generator"),s.createElement(n.p,null,"We've made the API Playground even better. You can now generate code samples in the playground, including CURL, JavaScript, Node.js, Python, and more:"),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:"<span class='gatsby-resp-image-wrapper' style='position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 600px; '>\n <a class='gatsby-resp-image-link' href='/static/3044fccaa5c15f45351c5165752d3458/eac55/playground-code-samples-28-09-2022.png' style='display: block' target='_blank' rel='noopener'>\n <span class='gatsby-resp-image-background-image' style=\"padding-bottom: 27.333333333333332%; position: relative; bottom: 0; left: 0; background-image: url('data:image/webp;base64,UklGRjwAAABXRUJQVlA4IDAAAACwAgCdASoUAAUAPtFUo0uoJKMhsAgBABoJaQAAeyAA/vFDi85/2Co9G5BXhv1AAAA='); background-size: cover; display: block;\"></span>\n <img class='gatsby-resp-image-image' alt='Code samples in the API Playground' title='' src='/static/3044fccaa5c15f45351c516
15752d3458/0a47e/playground-code-samples-28-09-2022.png' srcset='/static/3044fccaa5c15f45351c5165752d3458/5a46d/playground-code-samples-28-09-2022.png 300w,\n/static/3044fccaa5c15f45351c5165752d3458/fc2a6/playground-code-samples-28-09-2022.png 450w,\n/static/3044fccaa5c15f45351c5165752d3458/0a47e/playground-code-samples-28-09-2022.png 600w,\n/static/3044fccaa5c15f45351c5165752d3458/eac55/playground-code-samples-28-09-2022.png 887w' sizes='(max-width: 600px) 100vw, 600px' style='width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;' loading='lazy' decoding='async'>\n </a>\n </span>"}}),s.createElement(n.p,null,s.createElement(n.a,{href:"https://apidocs.geoapify.com/",target:"_blank",rel:"nofollow"},"Try it out >>")),s.createElement(n.h6,null,"20 September 2022"),s.createElement(n.h3,null,"Timezones added"),s.createElement(n.p,null,"We've added information about time zones to the ",s.createElement(n.strong,null,"Geocoding")," / ",s.createElement(n.strong,null,"Reverse Geocoding")," / ",s.createElement(n.strong,null,"Address Autocomplete")," / ",s.createElement(n.strong,null,"Place Details")," results. The time zone data includes names, time zone offsets for standard and daylight saving times, and abbreviations. Here is an example of a time zone object:"),s.createElement("div",{className:"mb-5 width-default"},s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-remark-copy-button-container">\n <button\n class="gatsby-remark-copy-button"\n onClick="copyToClipboard(`{\n "timezone": {\n "name": "Europe/London",\n "offset_STD": "+00:00",\n "offset_STD_seconds": 0,\n "offset_DST": "+01:00",\n "offset_DST_seconds": 3600,\n "abbreviation_STD": "GMT",\n "abbreviation_DST": "BST"\n }\n}`, this)"\n >\n <svg class="copy-icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">\x3c!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--\x3e<path fill="#FFFFFF" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg><svg class="success-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>\n </button>\n </div>'}}),s.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="json"><pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n <span class="token property">"timezone"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Europe/London"</span><span class="token punctuation">,</span>\n <span class="token property">"offset_STD"</span><span class="token operator">:</span> <span class="token string">"+00:00"</span><span class="token punctuation">,</span>\n <span class="token property">"offset_STD_seconds"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n <span class="token property">"offset_DST"</span><span class="token operator">:</span> <span class="token string">"+01:00"</span><span class="token punctuation">,</span>\n <span class="token property">"offset_DST_seconds"</span><span class="token operator">:</span> <span class="token number">3600</span><span class="token punctuation">,</span>\n <span class="token property">"abbreviation_STD"</span><span class="token operator">:</span> <span class="token string">"GMT"</span><span class="token punctuation">,</span>\n <span class="token property">"abbreviation_DST"</span><span class="token operator">:</span> <span class="token string">"BST"</span>\n <span class="token punctuation">}</span>\n<span class="token punctuation">}</span></code></pre></div>'}})),s.createElement(n.p,null,"You can test the functionality with ",s.createElement(n.a,{href:"https://apidocs.geoapify.com/playground/geocoding/",target:"_blank",rel:"nofollow"},"Geocoding API Playground >>"))),"\n",s.createElement("div",{className:"pt-10"}),"\n",s.createElement(n.h3,null,"Next steps"),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,"Learn more about ",s.createElement(n.a,{href:"/products-and-services/"},"Geoapify APIs and services >>")),"\n",s.createElement(n.li,null,"Try our APIs without registration with our ",s.createElement(n.a,{href:"https://apidocs.geoapify.com/",target:"_blank",rel:"nofollow"},"Playground >>")),"\n",s.createElement(n.li,null,"Sign up and ",s.createElement(n.a,{href:"/get-started-with-ma
1ps-api/"},"get a Free API key >>")),"\n"))}var o=function(e={}){const{wrapper:n}=Object.assign({},(0,a.RP)(),e.components);return n?s.createElement(n,e,s.createElement(l,e)):l(e)};function c(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}var r=t(4794),p=t(8154),i=t(627),u=t(1574),m=t(7127),d=t(1963),g=t(1562),h=t(1543),f=t(3428),y=t(3008),k=t(3133),E=t(633),b=t(3481),w=t(9911),v=t(5841),A=t(9856),_=t(3007),x=t(529),H=t(8818),P=t(5898),I=t(1435),F=t(118),M=t(8314),L=t(9310),z=t(3960),V=t(5130),S=t(2833),C=t(8261);const T=(0,t(2259).Ay)((()=>Promise.all([t.e(1869),t.e(3773)]).then(t.bind(t,3773)))),q=({data:{page:e,logo:n,siteData:t},children:l,pageContext:{modifiedTime:o}})=>{const c={Link:r.Link,SplitSection:b.A,GeoapifyCleanCookiesButton:d.A,FAQStructutedData:y.A,PageImage:k.A,PageGifImage:E.A,BackgroundPanel:w.A,SocialButtons:v.A,Card:A.A,PageCard:_.A,Button:x.A,ButtonGroup:H.A,Banner:I.A,PageList:P.A,FAQWithStructuredData:F.A,TableOfContent:z.A,Tab:i.oz,Tabs:i.tU,TabList:i.wb,TabPanel:i.Kp,Swiper:T,PricingList:M.A,CreditsCalculator:L.A,PricingCalculator:V.A,InputCheckbox:S.A,StatefulChecklist:C.A,JSONTree:u.d},q=e.frontmatter.featuredImage?e.frontmatter.featuredImage.childImageSharp.original:{},N=e.frontmatter.twitterImage2x1?e.frontmatter.twitterImage2x1.childImageSharp.original:{},B=e.frontmatter.categories&&e.frontmatter.categories.length?e.frontmatter.categories.map((e=>f.A.find((n=>n.id===e)).label)):null,U="home"===e.frontmatter.slug.split("/").join("")?"https://www.geoapify.com/":`https://www.geoapify.com/${e.frontmatter.slug}/`,O=!!e.frontmatter.hideHeaderFooter,R=!!e.frontmatter.hideCookieBanner;return s.createElement(s.Fragment,null,s.createElement(p.m,null,s.createElement("link",{rel:"canonical",href:U,"data-baseprotocol":"https:","data-basehost":"www.geoapify.com"})),s.createElement(h.A,{webpageTitle:e.frontmatter.title_60,webpageDescription:e.frontmatter.description_120,slug:e.frontmatter.slug,imageSrc:q.src,imageWidth:q.width,imageHeight:q.height,imageAlt:e.frontmatter.featuredImageAlt_120,ogType:"website",twitterImageSrc:N.src,twitterTitle:e.frontmatter.twitterTitle_70,twitterImageAlt:e.frontmatter.twitterImageAlt_420,twitterDescription:e.frontmatter.twitterDescription_200,articleTags:B,created:e.frontmatter.date,modified:o}),s.createElement(g.A,{geoapifyTitle:t.siteMetadata.title_60,geoapifyDescription:t.siteMetadata.description_120,geoapifySlogan:t.siteMetadata.slogan,companyName:t.siteMetadata.company,webpageTitle:e.frontmatter.title_60,webpageDescription:e.frontmatter.description,slug:e.frontmatter.slug,logoSrc:n.childImageSharp.gatsbyImageData.src,logoWidth:n.childImageSharp.gatsbyImageData.presentationWidth,logoHeight:n.childImageSharp.gatsbyImageData.presentationHeight,imageSrc:q.src,imageWidth:q.width,imageHeight:q.height,additionalData:e.frontmatter.structuredData}),s.createElement(m.A,{hideHeader:O,hideFooter:O,hideCookieBanner:R},s.createElement("div",{className:"geoapify-page"},s.createElement(a.xA,{components:c},l))))};function N(e){return s.createElement(q,e,s.createElement(o,e))}}}]); 2//# sourceMappingURL=component---src-template-page-js-content-file-path-src-pages-whats-new-index-mdx-509bfd61a3115f4ca472.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.