1"use strict";(self.webpackChunkgeoapify_home=self.webpackChunkgeoapify_home||[]).push([[2904],{7099:function(e,n,a){a.r(n),a.d(n,{default:function(){return H}});var t=a(8453),s=a(6540);function o(e){const n=Object.assign({p:"p",em:"em",a:"a",strong:"strong",ul:"ul",li:"li",ol:"ol",span:"span",code:"code"},(0,t.RP)(),e.components),{TableOfContent:a,PageList:o,FAQWithStructuredData:r}=n;return r||l("FAQWithStructuredData",!0),o||l("PageList",!0),a||l("TableOfContent",!0),s.createElement(s.Fragment,null,s.createElement(n.p,null,"Reverse geocoding is the process of converting geographic coordinates (latitude and longitude) into a human-readable address or place name. For example, instead of working with raw coordinates like ",s.createElement(n.em,null,"(40.748817, -73.985428)"),", ",s.createElement(n.a,{href:"/reverse-geocoding-api/"},"reverse geocoding")," can return a readable result such as ",s.createElement(n.em,null,'"Empire State Building, New York."')),"\n",s.createElement(n.p,null,s.createElement(n.strong,null,"Geocode Meaning vs Reverse Geocode Meaning"),":"),"\n",s.createElement(n.p,null,"These terms sound similar, but they represent opposite directions of the same conversion:"),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Geocode meaning:")," convert a readable address (for example, ",s.createElement(n.em,null,'"1600 Amphitheatre Parkway"'),") into coordinates."),"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Reverse geocode meaning:")," convert coordinates (for example, ",s.createElement(n.em,null,"37.423021, -122.083739"),") into a readable address or place."),"\n"),"\n",s.createElement(n.p,null,"In everyday usage, people also use ",s.createElement(n.strong,null,'"reverse geocode"'),' as a verb ("reverse geocode this point"), which refers to the same reverse geocoding process.'),"\n",s.createElement(n.p,null,"In this guide, you will learn:"),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,"what reverse geocoding means in practice"),"\n",s.createElement(n.li,null,"how the reverse geocoding process works"),"\n",s.createElement(n.li,null,"where reverse geocoding is used and how to choose a suitable implementation approach"),"\n"),"\n",s.createElement(a,{titles:[{label:"What Is Reverse Geocoding?",id:"what-is-reverse-geocoding"},{label:"How Reverse Geocoding Works",id:"how-reverse-geocoding-works"},{label:"What Reverse Geocoding Returns",id:"what-reverse-geocoding-returns"},{label:"Find City, Postcode, and Country by Coordinates",id:"find-city-postcode-country-by-coordinates"},{label:"Reverse Geocoding Accuracy",id:"reverse-geocoding-accuracy"},{label:"How to Reverse Geocode?",id:"how-to-reverse-geocode"},{label:"Learn More",id:"learn-more"},{label:"FAQ",id:"faq"}]}),"\n",s.createElement("h2",{className:"sticky-anchor",id:"what-is-reverse-geocoding"},"What Is Reverse Geocoding?"),"\n",s.createElement(n.p,null,"Imagine yourself standing in an unfamiliar place, and all you have are numbers like ",s.createElement(n.em,null,"(51.50349, -0.12770)")," on your smartphoneâs GPS to describe your location. What do these numbers mean? This is where reverse geocoding steps in. It takes these geographic coordinatesânow easily provided by any smart deviceâand converts them into meaningful place information, like ",s.createElement(n.em,null,"â10 Downing Street, London, UK.â")),"\n",s.createElement(n.p,null,"In other words, ",s.createElement(n.strong,null,"reverse geocoding turns raw location data into a human-readable format")," that you can easily understand and use."),"\n",s.createElement("h3",{className:"sticky-anchor",id:"how-reverse-geocoding-works"},"How Reverse Geocoding Works"),"\n",s.createElement(n.p,null,"Reverse geocoding starts with a pair of coordinates (latitude and longitude), usually collected by smartphones, GPS trackers, or connected vehicles."),"\n",s.createElement(n.ol,null,"\n",s.createElement(n.li,null,"\n",s.createElement(n.p,null,s.createElement(n.strong,null,"Collect coordinates"),"\nYour device determines its location using GPS and network signals, then outputs latitude/longitude values."),"\n"),"\n",s.createElement(n.li,null,"\n",s.createElement(n.p,null,s.createElement(n.strong,null,"Match coordinates to geodata"),"\nA reverse geocoding service searches its geospatial database for the nearest known address or place."),"\n"),"\n",s.createElement(n.li,null,"\n",s.createElement(n.p,null,s.createElement(n.strong,null,"Return a readable result"),"\nThe service responds with structured location data such as address, city, postcode, country, and a formatted display string."),"\n"),"\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/d32af8797df3995f3fcb0f0c139e0392/ac99c/how-reverse-geocoding-works.jpg' style='display: block' target='_blank' rel='noopener'>\n <span class='gatsby-resp-image-background-image' style=\"padding-bottom: 55.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/webp;base64,UklGRmIAAABXRUJQVlA4IFYAAACwAwCdASoUAAsAPtFWo0uoJKMhsAgBABoJZwAAXg0S6nbg+cm/AAD+8Enhjxuxw4M4QUSFFdH4QtBrk5/Cs82gBZ
1dwHIEAjQ8qHZi0fjVwT0wkQIAAAA=='); background-size: cover; display: block;\"></span>\n <img class='gatsby-resp-image-image' alt='How reverse geocoding works: converting coordinates into a readable address' title='' src='/static/d32af8797df3995f3fcb0f0c139e0392/b4294/how-reverse-geocoding-works.jpg' srcset='/static/d32af8797df3995f3fcb0f0c139e0392/f93b5/how-reverse-geocoding-works.jpg 300w,\n/static/d32af8797df3995f3fcb0f0c139e0392/20e5d/how-reverse-geocoding-works.jpg 450w,\n/static/d32af8797df3995f3fcb0f0c139e0392/b4294/how-reverse-geocoding-works.jpg 600w,\n/static/d32af8797df3995f3fcb0f0c139e0392/ac99c/how-reverse-geocoding-works.jpg 1536w' 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("div",{className:"image-caption"},"Reverse geocoding in three steps: collect coordinates, match them to geospatial data, and return a readable address or place."),"\n",s.createElement(n.p,null,"If you want to test reverse geocoding quickly, a minimal API request looks like this:"),"\n",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/v1/geocode/reverse?lat=40.748817&lon=-73.985428&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="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>reverse<span class="token operator">?</span>lat<span class="token operator">=</span><span class="token number">40.748817</span><span class="token operator">&</span>lon<span class="token operator">=</span><span class="token operator">-</span><span class="token number">73.985428</span><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>'}})),"\n",s.createElement(n.p,null,"You can also try the request interactively in the ",s.createElement(n.a,{href:"https://apidocs.geoapify.com/playground/geocoding/#reverse",target:"_blank",rel:"nofollow"},"Reverse Geocoding Playground"),"."),"\n",s.createElement(n.p,null,"In the response, three fields are useful for a quick sanity check:"),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,s.createElement(n.strong,null,s.createElement(n.code,null,"formatted"))," - the final human-readable address string."),"\n",s.createElement(n.li,null,s.createElement(n.strong,null,s.createElement(n.code,null,"result_type"))," - whether the match is a building, street, postcode, city, amenity, and so on."),"\n",s.createElement(n.li,null,s.createElement(n.strong,null,s.createElement(n.code,null,"distance"))," - how far the returned result is from the original coordinates."),"\n"),"\n",s.createElement("h3",{className:"sticky-anchor",id:"what-reverse-geocoding-returns"}
1,"What Reverse Geocoding Returns"),"\n",s.createElement(n.p,null,"The reverse geocoding meaning is often misunderstood as being limited to finding postal addresses, but it can do much more. Depending on your needs, reverse geocoding can provide:"),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"City Names:")," Useful for determining a user's general location for services like weather apps."),"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Postal Codes:")," Important for shipping and delivery logistics."),"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Country Information:")," Crucial for displaying location context in international applications."),"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Neighborhoods or Points of Interest:")," Ideal for local search applications or mapping services. You can also use our ",s.createElement(n.a,{href:"/places-api/"},"Place Search API")," to gather points of interest data."),"\n"),"\n",s.createElement(n.p,null,"For example, a building-level reverse geocoding response can look like this:"),"\n",s.createElement("div",{className:"width-default"},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">"results"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n <span class="token punctuation">{</span>\n <span class="token property">"country_code"</span><span class="token operator">:</span> <span class="token string">"us"</span><span class="token punctuation">,</span>\n <span class="token property">"housenumber"</span><span class="token operator">:</span> <span class="token string">"2615"</span><span class="token punctuation">,</span>\n <span class="token property">"street"</span><span class="token operator">:</span> <span class="token string">"Larsen Road"</span><span class="token punctuation">,</span>\n <span class="token property">"country"</span><span class="token operator">:</span> <span class="token string">"United States"</span><span class="token punctuation">,</span>\n <span class="token property">"county"</span><span class="token operator">:</span> <span class="token string">"Duval County"</span><span class="token punctuation">,</span>\n <span class="token property">"datasource"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n <span class="token property">"sourcename"</span><span class="token operator">:</span> <span class="token string">"openaddresses"</span><span class="token punctuation">,</span>\n <span class="token property">"attribution"</span><span class="token operator">:</span> <span class="token string">"© OpenAddresses contributors"</span><span class="token punctuation">,</span>\n <span class="token property">"license"</span><span class="token operator">:</span> <span class="token string">"BSD-3-Clause License"</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token property">"postcode"</span><span class="token operator">:</span> <span class="token string">"32207"</span><span class="token punctuation">,</span>\n <span class="token property">"state"</span><span class="token operator">:</span> <span class="token string">"Florida"</span><span class="token punctuation">,</span>\n <span class="token property">"state_code"</span><span class="token operator">:</span> <span class="token string">"FL"</span><span class="token punctuation">,</span>\n <span class="token property">"county_code"</span><span class="token operator">:</span> <span class="token string">"DU"</span><span class="token punctuation">,</span>\n <span class="token property">"city"</span><span class="token operator">:</span> <span class="token string">"Jacksonville"</span><span class="token punctuation">,</span>\n <span class="token property">"suburb"</span><span class="token operator">:</span> <span class="token string">"South Metro"</span><span class="token punctuation">,</span>
1\n <span class="token property">"lon"</span><span class="token operator">:</span> <span class="token number">-81.632622</span><span class="token punctuation">,</span>\n <span class="token property">"lat"</span><span class="token operator">:</span> <span class="token number">30.275913</span><span class="token punctuation">,</span>\n <span class="token property">"distance"</span><span class="token operator">:</span> <span class="token number">13.183589003305176</span><span class="token punctuation">,</span>\n <span class="token property">"result_type"</span><span class="token operator">:</span> <span class="token string">"building"</span><span class="token punctuation">,</span>\n <span class="token property">"formatted"</span><span class="token operator">:</span> <span class="token string">"2615 Larsen Road, Jacksonville, FL 32207, United States of America"</span><span class="token punctuation">,</span>\n <span class="token property">"address_line1"</span><span class="token operator">:</span> <span class="token string">"2615 Larsen Road"</span><span class="token punctuation">,</span>\n <span class="token property">"address_line2"</span><span class="token operator">:</span> <span class="token string">"Jacksonville, FL 32207, United States of America"</span><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">
1"America/New_York"</span><span class="token punctuation">,</span>\n <span class="token property">"offset_STD"</span><span class="token operator">:</span> <span class="token string">"-05: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">-18000</span><span class="token punctuation">,</span>\n <span class="token property">"offset_DST"</span><span class="token operator">:</span> <span class="token string">"-04: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">-14400</span><span class="token punctuation">,</span>\n <span class="token property">"abbreviation_STD"</span><span class="token operator">:</span> <span class="token string">"EST"</span><span class="token punctuation">,</span>\n <span class="token property">"abbreviation_DST"</span><span class="token operator">:</span> <span class="token string">"EDT"</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token property">"plus_code"</span><span class="token operator">:</span> <span class="token string">"862W79G8+9X"</span><span class="token punctuation">,</span>\n <span class="token property">"plus_code_short"</span><span class="token operator">:</span> <span class="token string">"79G8+9X, 32207 Jacksonville, United States"</span><span class="token punctuation">,</span>\n <span class="token property">"iso3166_2"</span><span class="token operator">:</span> <span class="token string">"US-FL"</span><span class="token punctuation">,</span>\n <span class="token property">"rank"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n <span class="token property">"popularity"</span><span class="token operator">:</span> <span class="token number">3.272529819605514</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token property">"place_id"</span><span class="token operator">:</span> <span class="token string">"51ba2efce07c6854c0598f8aff3ba2463e40c00203e203436f70656e6164647265737365733a616464726573733a75732f666c2f647576616c2d6164647265737365732d636f756e74793a33356331643433666234623831616630"</span>\n <span class="token punctuation">}</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token property">"query"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n <span class="token property">"lat"</span><span class="token operator">:</span> <span class="token number">30.27602580130811</span><span class="token punctuation">,</span>\n <span class="token property">"lon"</span><span class="token operator">:</span> <span class="token number">-81.63266427615059</span><span class="token punctuation">,</span>\n <span class="token property">"plus_code"</span><span class="token operator">:</span> <span class="token string">"862W79G8+CW"</span>\n <span class="token punctuation">}</span>\n<span class="token punctuation">}</span></code></pre></div>'}})),"\n",s.createElement("h3",{className:"sticky-anchor",id:"find-city-postcode-country-by-coordinates"},"Find City, Postcode, and Country by Coordinates"),"\n",s.createElement(n.p,null,"Reverse geocoding can return different location levels from the same latitude/longitude pair. For example, you can use it to find the nearest ",s.createElement(n.strong,null,"city"),", ",s.createElement(n.strong,null,"postcode"),", ",s.createElement(n.strong,null,"street"),", or ",s.createElement(n.strong,null,"country")," based on what your app needs to display."),"\n",s.createElement(n.p,null,"If you want to test this behavior, use the ",s.createElement(n.a,{href:"/reverse-geocoding-api/"},"Reverse Geocoding API")," and request the result type you need, such as ",s.createElement(n.code,null,"type=city"),", ",s.createElement(n.code,null,"type=postcode"),", or ",s.createElement(n.code,null,"type=country"),"."),"\n",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/v1/geocode/reverse?lat=26.359584312432958&lon=-80.09044513840178&type=postcode&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">
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"><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>reverse<span class="token operator">?</span>lat<span class="token operator">=</span><span class="token number">26.359584312432958</span><span class="token operator">&</span>lon<span class="token operator">=</span><span class="token operator">-</span><span class="token number">80.09044513840178</span><span class="token operator">&</span>type<span class="token operator">=</span>postcode<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>'}})),"\n",s.createElement("div",{className:"width-default"},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">"results"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n <span class="token punctuation">{</span>\n <span class="token property">"country"</span><span class="token operator">:</span> <span class="token string">"United States"</span><span class="token punctuation">,</span>\n <span class="token property">"country_code"</span><span class="token operator">:</span> <span class="token string">"us"</span><span class="token punctuation">,</span>\n <span class="token property">"state"</span><span class="token operator">:</span> <span class="token string">"Florida"</span><span class="token punctuation">,</span>\n <span class="token property">"county"</span><span class="token operator">:</span> <span class="token string">"Palm Beach County"</span><span class="token punctuation">,</span>\n <span class="token property">"city"</span><span class="token operator">:</span> <span class="token string">"Boca Raton"</span><span class="token punctuation">,</span>\n <span class="token property">"postcode"</span><span class="token operator">:</span> <span class="token string">"33432"</span><span class="token punctuation">,</span>\n <span class="token property">"state_code"</span><span class="token operator">:</span> <span class="token string">"FL"</span><span class="token punctuation">,</span>\n <span class="token property">"result_type"</span><span class="token operator">:</span> <span class="token string">"postcode"</span><span class="token punctuation">,</span>\n <span class="token property">"lon"</span><span class="token operator">:</span> <span class="token number">-80.086949702</span><span class="token punctuation">,</span>\n <span class="token property">"lat"</span><span class="token operator">:</span> <span class="token number">26.348770704</span><span class="token punctuation">,</span>\n <span class="token property">"distance"</span><span class="token operator">:</span> <span class="token number">1251.8435889094628</span><span class="token punctuation">,</span>\n <span class="token property">"formatted"</span><span class="token operator">:</span> <span class="token string">"Boca Raton, FL 33432, United States of America"</span><span class="token punctuation">,</span>\n <span class="token property">"address_line1"</span><span class="token operator">:</span> <span class="token string">"Boca Raton, FL 33432"</span><span class="token punctuation">,</span>
1\n <span class="token property">"address_line2"</span><span class="token operator">:</span> <span class="token string">"United States of America"</span>\n <span class="token punctuation">}</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n <span class="token property">"query"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n <span class="token property">"lat"</span><span class="token operator">:</span> <span class="token number">26.359584312432958</span><span class="token punctuation">,</span>\n <span class="token property">"lon"</span><span class="token operator">:</span> <span class="token number">-80.09044513840178</span><span class="token punctuation">,</span>\n <span class="token property">"plus_code"</span><span class="token operator">:</span> <span class="token string">"76RX9W55+RR"</span>\n <span class="token punctuation">}</span>\n<span class="token punctuation">}</span></code></pre></div>'}})),"\n",s.createElement("h2",{className:"sticky-anchor",id:"reverse-geocoding-accuracy"},"Reverse Geocoding Accuracy"),"\n",s.createElement(n.p,null,"Reverse geocoding does not always return the exact same coordinates you submitted, and that is expected behavior. The service returns the ",s.createElement(n.strong,null,"best matching known place")," (building, street, postcode area, city, etc.), which can have its own representative point."),"\n",s.createElement("h3",{className:"sticky-anchor",id:"why-input-and-returned-coordinates-can-differ"},"Why Input and Returned Coordinates Can Differ"),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Nearest known feature:")," Your input point may be on a road, parking lot, or open area, while the result is mapped to a nearby address feature."),"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Feature geometry:")," Postcodes, cities, and administrative areas are polygons; the response can use a representative point inside that area."),"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"GPS noise and precision:")," Mobile and IoT coordinates can drift, especially indoors or in dense urban areas."),"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Data coverage level:")," Some regions support building-level precision; others only support street- or city-level precision."),"\n"),"\n",s.createElement("h3",{className:"sticky-anchor",id:"use-distance-to-make-decisions"},"Use ",s.createElement(n.code,null,"distance")," to Make Decisions"),"\n",s.createElement(n.p,null,"Reverse geocoding responses include a ",s.createElement(n.code,null,"distance")," value (in meters) between your input coordinates and the matched result. Use this field to set acceptance rules in production."),"\n",s.createElement(n.ul,null,"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Define thresholds by use case:")," For example, stricter thresholds for delivery confirmation and looser thresholds for city-level analytics."),"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Handle outliers:")," If ",s.createElement(n.code,null,"distance")," is above your threshold, ask for user confirmation or fall back to broader levels like street/city."),"\n",s.createElement(n.li,null,s.createElement(n.strong,null,"Monitor quality over time:")," Track distance distributions per country/region to tune your thresholds and UX."),"\n"),"\n",s.createElement("h2",{className:"sticky-anchor",id:"how-to-reverse-geocode"},"How to Reverse Geocode?"),"\n",s.createElement(n.p,null,"You can reverse geocode in three common ways, depending on your volume and workflow:"),"\n",s.createElement(n.ol,null,"\n",s.createElement(n.li,null,"\n",s.createElement(n.p,null,s.createElement(n.strong,null,"Call a reverse geocoding API (real-time)"),"\nUse the ",s.createElement(n.a,{href:"/reverse-geocoding-api/"},"Reverse Geocoding API")," for interactive lookups in web and mobile apps.\nIf you are building in JavaScript, use rate limiting to avoid bursts and 429 errors - for example with ",s.createElement(n.a,{href:"https://www.npmjs.com/package/@geoapify/request-rate-limiter",target:"_blank",rel:"nofollow"},"@geoapify/request-rate-limiter"),"."),"\n"),"\n",s.createElement(n.li,null,"\n",s.createElement(n.p,null,s.createElement(n.strong,null,"Use Batch API for larger datasets"),"\nFor bulk jobs, use the ",s.createElement(n.a,{href:"https://www.geoapify.com/solutions/batch-geocoding-requests/",target:"_blank",rel:"nofollow"},"Batch Geocoding API")," to process large coordinate lists asynchronously.\nYou can also run batch requests in Postman using ",s.createElement(n.code,null,"POST")," requests, so no coding is required."),"\n"),"\n",s.createElement(n.li,null,"\n",s.createElement(n.p,null,s.createElement(n.strong,null,"Use an online tool (no code)"),"\nFor one-off or spreadsheet-style tasks, use the ",s.createElement(n.a,{href:"https://www.geosearch.online/tools/latlon-to-address-online",target:"_blank",rel:"nofollow"},"Lat/Lon to Address Online Tool"),".\nIt supports up to 2,500 rows for free."),"\n"),"\n"),"\n",s.createElement("h2",{className:"sticky-anchor",id:"learn-more"},"Learn More"),"\n",s.createElement(n.p,null,"Related resources for reverse geocoding APIs, implementation guides, and hands-on tutorials. Use these links to compare geocoding vs reverse geocoding, test endpoints, and integrate reverse geocoding in JavaScript or Python."),"\n",s.createElement("div",{className:"tutorial-groups mb-2
10"},s.createElement(o,{keys:["geocoding-vs-reverse-geocoding","reverse-geocoding-api","tutorial/reverse-geocoding-javascript-tutorial","tutorial/reverse-geocoding-python","how-to-get-user-location-with-javascript","what-is-geolocation"]})),"\n",s.createElement("div",{className:"sticky-anchor",id:"faq"}),"\n",s.createElement(r,{className:"my-20",title:"FAQ",questions:[{question:"What is Reverse Geocoding?",answer:"Reverse Geocoding is a process of searching for an address using provided geographic coordinates. The result is a human-readable address and components such as house number, street, postcode, city, and country."},{question:"How to get city name from coordinates?",answer:'To find a city name from coordinates, you can use a <a href="/reverse-geocoding-api/">Reverse Geocoding API</a> that can convert latitude and longitude into city-level information by using the "type=city" parameter.'},{question:"How to get a postcode from coordinates?",answer:'To get a postcode from coordinates, use the <a href="/reverse-geocoding-api/">Geoapify Reverse Geocoding API</a>. By providing latitude and longitude with the "type=postcode" parameter, the API returns postcode-level results. This is helpful for verifying locations, organizing address data, or supporting delivery operations.'},{question:"How to get GPS coordinates?",answer:"You can obtain GPS coordinates from your smartphone, GPS devices, or any personal computer. These values can then be used in reverse geocoding to find addresses or detailed location information."},{question:"How accurate is reverse geocoding?",answer:'The accuracy of reverse geocoding depends on the quality of the geospatial data used. Some services, like the <a href="/reverse-geocoding-api/">Geoapify Reverse Geocoder</a>, provide a "distance to original coordinates" value to indicate the proximity of the matched address to the given coordinates, helping you estimate the precision of the result.'},{question:"Why can returned coordinates differ from my input coordinates?",answer:"Reverse geocoding returns the best matching known feature (for example, a building, street, or postcode area), not always the exact same point you submitted. Small differences are common because GPS can be noisy and many results represent polygons or nearby mapped features."},{question:'What does the "distance" field mean in reverse geocoding results?',answer:'The "distance" field is the distance in meters between your input coordinates and the matched result. You can use it to define acceptance thresholds in production, for example auto-accepting close matches and flagging larger distances for review.'},{question:"Can I return only city, postcode, or country from coordinates?",answer:'Yes. Use the <a href="/reverse-geocoding-api/">Reverse Geocoding API</a> with the "type" parameter, such as "type=city", "type=postcode", or "type=country", to request the level you need.'},{question:"How can I reverse geocode large datasets without writing code?",answer:'For bulk jobs, use <a href="https://www.geoapify.com/solutions/batch-geocoding-requests/">Batch Geocoding API</a> and run POST requests in Postman. For one-off files, you can also use online tools like <a href="https://www.geosearch.online/tools/latlon-to-address-online">Lat/Lon to Address Online Tool</a>.'},{question:"How do I avoid reverse geocoding rate-limit errors in JavaScript?",answer:'Throttle request bursts and queue API calls on the client or backend. If you use JavaScript, <a href="https://www.npmjs.com/package/@geoapify/request-rate-limiter">@geoapify/request-rate-limiter</a> helps control request rate and reduce 429 errors.'},{question:"What is the difference between Geocoding and Reverse Geocoding?",answer:"The difference between geocoding and reverse geocoding lies in the direction of conversion. Geocoding transforms a human-readable address into geographic coordinates (latitude and longitude), while reverse geocoding converts coordinates back into an address or location name. Essentially, geocoding helps locate positions on a map using addresses, whereas reverse geocoding reveals what a specific set of coordinates represents."},{question:"How many coordinates can I process for free with Geoapify?",answer:'Geoapify offers a generous free tier for both its <a href="/tools/reverse-geocoding-online/">Reverse Geocoding Tool</a> and <a href="/reverse-geocoding-api/">API</a>. You can process up to 500 coordinates at once for free with the tool, and the API allows up to 3,000 requests per day, making it ideal for individual projects or small-scale commercial use.'}]}))}var r=function(e){void 0===e&&(e={});const{wrapper:n}=Object.assign({},(0,t.RP)(),e.components);return n?s.createElement(n,e,s.createElement(o,e)):o(e)};function l(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}var c=a(4794),p=a(2532),i=a(8154),u=a(1574),d=a(7127),m=a(1543),g=a(3428),h=a(369),k=a(2992),f=a(3481),y=a(9911),v=a(9856),w=a(529),E=a(8818),b=a(1435),A=a(5898),I=a(2389),_=a(118),S=a(2833),x=a(9816),T=a(3008),P=a(3960),N=a(7358),R=a(6649);
1const F={Link:c.Link,SplitSection:f.A,BackgroundPanel:y.A,Card:v.A,Button:w.A,ButtonGroup:E.A,Banner:b.A,PageList:A.A,FAQStructutedData:T.A,HowToStructuredData:I.A,FAQWithStructuredData:_.A,InputCheckbox:S.A,TryGeolocation:x.A,JSONTree:u.d,TableOfContent:P.A,PostImage:N.A,VerticalTimeline:R.VerticalTimeline,VerticalTimelineElement:R.VerticalTimelineElement},G=e=>{let{data:{post:n,logo:a,siteData:o,postFormattedData:r,prevPost:l,nextPost:c},children:u,pageContext:{modifiedTime:f}}=e;const y=n.frontmatter.featuredImage?n.frontmatter.featuredImage.childImageSharp.original:{},v=n.frontmatter.twitterImage2x1?n.frontmatter.twitterImage2x1.childImageSharp.original:{},w=n.frontmatter.categories?n.frontmatter.categories.map((e=>g.A.find((n=>n.id===e)))):null,E=n.frontmatter.tags?n.frontmatter.tags.map((e=>h.A.find((n=>n.id===e)))):null,b=E?E.map((e=>e.label)):null,A=v.src||y.src,I=A?[`https://www.geoapify.com${A}`]:null,_=r.frontmatter.featuredImage?r.frontmatter.featuredImage.childImageSharp.gatsbyImageData:null,S="home"===n.frontmatter.slug.split("/").join("")?"https://www.geoapify.com/":`https://www.geoapify.com/${n.frontmatter.slug}/`;return s.createElement(s.Fragment,null,s.createElement(i.m,null,s.createElement("link",{rel:"canonical",href:S,"data-baseprotocol":"https:","data-basehost":"www.geoapify.com"})),s.createElement(m.A,{webpageTitle:n.frontmatter.title_60,webpageDescription:n.frontmatter.description_120,slug:n.frontmatter.slug,imageSrc:y.src,imageWidth:y.width,imageHeight:y.height,imageAlt:n.frontmatter.featuredImageAlt_120,ogType:"article",twitterImageSrc:v.src,twitterTitle:n.frontmatter.twitterTitle_70,twitterImageAlt:n.frontmatter.twitterImageAlt_420,twitterDescription:n.frontmatter.twitterDescription_200,articleSection:"Geo information systems (GIS)",articleTags:b,created:n.frontmatter.first_publiched_date||n.frontmatter.date,modified:f}),s.createElement(k.A,{geoapifySlogan:o.siteMetadata.slogan,companyName:o.siteMetadata.company,logoSrc:a.childImageSharp.gatsbyImageData.src,logoWidth:a.childImageSharp.gatsbyImageData.width,logoHeight:a.childImageSharp.gatsbyImageData.height,slug:n.frontmatter.slug,articleName:n.frontmatter.title_60,articleHeadline:n.frontmatter.headline_110,published:n.frontmatter.first_publiched_date||n.frontmatter.date,modified:f,images:I}),s.createElement(d.A,null,s.createElement("article",{className:"geoapify-post"},s.createElement("header",{className:"geoapify-post-header"},s.createElement("div",{className:"geoapify-post-meta"},s.createElement("span",null,r.frontmatter.date),s.createElement("span",{className:"mx-1"}," / "),n.frontmatter.author?s.createElement("span",null,"by ",s.createElement("a",{rel:"noopener noreferrer",target:"_blank",href:n.frontmatter.authorUrl},n.frontmatter.author)):s.createElement("span",null,"by Geoapify"),w&&w.length?s.createElement("span",{className:"ml-1"}," / in "):null,w&&w.length?w.map(((e,n)=>s.createElement("span",{key:e.id},n?s.createElement("span",null,", "):null,s.createElement("a",{href:`/category/${e.slug}/`},e.label)))):null),s.createElement("h1",null,n.frontmatter.title),n.frontmatter.subtitle?s.createElement("h2",{className:"text-xl text-gray-700 mx-2 font-light"},n.frontmatter.subtitle):null,_?s.createElement("div",{className:"geoapify-post-featured-image"},s.createElement(p.G,{image:_,alt:n.frontmatter.featuredImageAlt_120})):null,n.frontmatter.featuredImageAlt_120?s.createElement("div",{className:"text-center mt-2 mb-10 text-sm italic text-gray-600",dangerouslySetInnerHTML:{__html:n.frontmatter.featuredImageAlt_120}}):s.createElement("div",{className:"mb-10"})),s.createElement("section",{className:"geoapify-post-body"},s.createElement(t.xA,{components:F},u))),s.createElement("div",{className:"mx-5 lg:mx-auto tag-list"},E?E.map((e=>s.createElement("a",{className:"tag",href:`/tag/${e.slug}/`,key:e.id},e.label))):null),s.createElement("div",{className:"post-navigation"},s.createElement("div",{className:"post-navigation-buttons flex flex-col md:flex-row"},l?s.createElement("div",{className:"previous-post"},s.createElement("a",{href:`/${l.frontmatter.slug}/`,rel:"prev"},s.createElement("div",{className:"previous"},s.createElement("span",{className:"chevron lnr lnr-chevron-left"}),s.createElement("div",{className:"title"},s.createElement("span",{className:"meta"},"Previous Post"),s.createElement("span",{className:"post-title"},l.frontmatter.title))))):null,c?s.createElement("div",{className:"next-post"},s.createElement("a",{href:`/${c.frontmatter.slug}/`,rel:"next"},s.createElement("div",{className:"next"},s.createElement("div",{className:"title"},s.createElement("span",{className:"meta"},"Next Post"),s.createElement("span",{className:"post-title"},c.frontmatter.title)),s.createElement("span",{className:"chevron lnr lnr-chevron-right"})))):null))))};function H(e){return s.createElement(G,e,s.createElement(r,e))}}}]); 2//# sourceMappingURL=component---src-template-post-js-content-file-path-src-posts-2024-09-30-what-is-reverse-geocoding-index-mdx-17cefdb0ee20a5b93dab.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.