CINXE.COM
Geohash - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Geohash - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"a6163984-3238-4d6c-9f83-ec4b5ed15d2a","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Geohash","wgTitle":"Geohash","wgCurRevisionId":1256966629,"wgRevisionId":1256966629,"wgArticleId":15974212,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Webarchive template wayback links","Articles with short description","Short description is different from Wikidata","Geographic coordinate systems","Geocodes","2008 introductions"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Geohash","wgRelevantArticleId":15974212,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia", "wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":30000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q3101207","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false, "wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.math.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","mediawiki.page.media","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init", "ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.math.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/3/3d/Geohash-grid.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="774"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Geohash-grid.png/800px-Geohash-grid.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="516"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Geohash-grid.png/640px-Geohash-grid.png"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="413"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Geohash - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Geohash"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Geohash&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Geohash"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Geohash rootpage-Geohash skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=Geohash" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=Geohash" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=Geohash" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Geohash" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-History" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#History"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>History</span> </div> </a> <ul id="toc-History-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Typical_and_main_usages" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Typical_and_main_usages"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Typical and main usages</span> </div> </a> <ul id="toc-Typical_and_main_usages-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Technical_description" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Technical_description"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Technical description</span> </div> </a> <button aria-controls="toc-Technical_description-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Technical description subsection</span> </button> <ul id="toc-Technical_description-sublist" class="vector-toc-list"> <li id="toc-Textual_representation" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Textual_representation"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>Textual representation</span> </div> </a> <ul id="toc-Textual_representation-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Geometrical_representation" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Geometrical_representation"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span> <span>Geometrical representation</span> </div> </a> <ul id="toc-Geometrical_representation-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Algorithm_and_example" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Algorithm_and_example"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.3</span> <span>Algorithm and example</span> </div> </a> <ul id="toc-Algorithm_and_example-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Digits_and_precision_in_km" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Digits_and_precision_in_km"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4</span> <span>Digits and precision in km</span> </div> </a> <ul id="toc-Digits_and_precision_in_km-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Limitations_when_used_for_deciding_proximity" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Limitations_when_used_for_deciding_proximity"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Limitations when used for deciding proximity</span> </div> </a> <button aria-controls="toc-Limitations_when_used_for_deciding_proximity-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Limitations when used for deciding proximity subsection</span> </button> <ul id="toc-Limitations_when_used_for_deciding_proximity-sublist" class="vector-toc-list"> <li id="toc-Edge_cases" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Edge_cases"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>Edge cases</span> </div> </a> <ul id="toc-Edge_cases-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Non-linearity" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Non-linearity"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>Non-linearity</span> </div> </a> <ul id="toc-Non-linearity-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Similar_indexing_systems" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Similar_indexing_systems"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Similar indexing systems</span> </div> </a> <ul id="toc-Similar_indexing_systems-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Licensing" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Licensing"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Licensing</span> </div> </a> <ul id="toc-Licensing-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Formal_Standard" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Formal_Standard"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Formal Standard</span> </div> </a> <ul id="toc-Formal_Standard-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">10</span> <span>External links</span> </div> </a> <ul id="toc-External_links-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Geohash</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 2 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-2" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">2 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Geohash" title="Geohash – French" lang="fr" hreflang="fr" data-title="Geohash" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%82%B8%E3%82%AA%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5" title="ジオハッシュ – Japanese" lang="ja" hreflang="ja" data-title="ジオハッシュ" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q3101207#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Geohash" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Geohash" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Geohash"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Geohash&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Geohash&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Geohash"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Geohash&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Geohash&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Geohash" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Geohash" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Geohash&oldid=1256966629" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Geohash&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=Geohash&id=1256966629&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FGeohash"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FGeohash"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=Geohash&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Geohash&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q3101207" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Public domain geocoding invented in 2008</div> <style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">This article is about the system for encoding geographic coordinates. For the game, see <a href="/wiki/Geohashing" title="Geohashing">Geohashing</a>.</div> <figure typeof="mw:File/Thumb"><a href="/wiki/File:Geohash-grid.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Geohash-grid.png/320px-Geohash-grid.png" decoding="async" width="320" height="206" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Geohash-grid.png/480px-Geohash-grid.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Geohash-grid.png/640px-Geohash-grid.png 2x" data-file-width="1043" data-file-height="673" /></a><figcaption>The <a rel="nofollow" class="external text" href="https://geohash.softeng.co/6g">6g</a> cell and its sub-grid.</figcaption></figure> <p><b>Geohash</b> is a <a href="/wiki/Public_domain" title="Public domain">public domain</a> <a href="/wiki/Geocode#Geocode_system" title="Geocode">geocode system</a> invented in 2008 by Gustavo Niemeyer<sup id="cite_ref-first2008_1-0" class="reference"><a href="#cite_note-first2008-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> which encodes a geographic location into a short string of letters and digits. Similar ideas were introduced by G.M. Morton in 1966.<sup id="cite_ref-morton66_2-0" class="reference"><a href="#cite_note-morton66-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> It is a hierarchical spatial data structure which subdivides space into buckets of <a href="/wiki/Grid_(spatial_index)" title="Grid (spatial index)">grid</a> shape, which is one of the many applications of what is known as a <a href="/wiki/Z-order_curve" title="Z-order curve">Z-order curve</a>, and generally <a href="/wiki/Space-filling_curves" class="mw-redirect" title="Space-filling curves">space-filling curves</a>. </p><p>Geohashes offer properties like arbitrary precision and the possibility of gradually removing characters from the end of the code to reduce its size (and gradually lose precision). Geohashing guarantees that the longer a shared prefix between two geohashes is, the spatially closer they are together. The reverse of this is not guaranteed, as two points can be very close but have a short or no shared prefix. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="History">History</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Geohash&action=edit&section=1" title="Edit section: History"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The core part of the Geohash algorithm and the first initiative to similar solution was documented in a report of G.M. Morton in 1966, "A Computer Oriented Geodetic Data Base and a New Technique in File Sequencing".<sup id="cite_ref-morton66_2-1" class="reference"><a href="#cite_note-morton66-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> The Morton work was used for efficient implementations of <a href="/wiki/Z-order_curve" title="Z-order curve">Z-order curve</a>, like in <a rel="nofollow" class="external text" href="https://github.com/yinqiwen/geohash-int">this modern (2014) Geohash-integer version</a> (based on directly interleaving <a href="/wiki/64-bit_computing" title="64-bit computing">64-bit integers</a>), but his <a href="/wiki/Geocode" title="Geocode">geocode</a> proposal was not <a href="/wiki/Human-readable" class="mw-redirect" title="Human-readable">human-readable</a> and was not popular. </p><p>Apparently, in the late 2000s, G. Niemeyer still didn't know about Morton's work, and reinvented it, adding the use of <a href="/wiki/Base32" title="Base32">base32</a> representation. In February 2008, together with the announcement of the system,<sup id="cite_ref-first2008_1-1" class="reference"><a href="#cite_note-first2008-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> he launched the website <code><a rel="nofollow" class="external free" href="http://geohash.org">http://geohash.org</a></code>, which allows users to convert geographic coordinates to short <a href="/wiki/Uniform_Resource_Locator" class="mw-redirect" title="Uniform Resource Locator">URLs</a> which uniquely identify positions on the <a href="/wiki/Earth" title="Earth">Earth</a>, so that referencing them in <a href="/wiki/Email" title="Email">emails</a>, <a href="/wiki/Internet_forum" title="Internet forum">forums</a>, and <a href="/wiki/Website" title="Website">websites</a> is more convenient. </p><p>Many variations have been developed, including <a href="/wiki/OpenStreetMap" title="OpenStreetMap">OpenStreetMap</a>'s <i>short link</i><sup id="cite_ref-osm_short_link_3-0" class="reference"><a href="#cite_note-osm_short_link-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> (using <a href="/wiki/Base64" title="Base64">base64</a> instead of base32) in 2009, the <i>64-bit Geohash</i><sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> in 2014, the exotic <i>Hilbert-Geohash</i><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> in 2016, and others. </p> <div class="mw-heading mw-heading2"><h2 id="Typical_and_main_usages">Typical and main usages</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Geohash&action=edit&section=2" title="Edit section: Typical and main usages"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>To obtain the Geohash, the user provides an address to be <a href="/wiki/Geocode" title="Geocode">geocoded</a>, or <a href="/wiki/Latitude_and_longitude" class="mw-redirect" title="Latitude and longitude">latitude and longitude</a> coordinates, in a single input box (most commonly used formats for latitude and longitude pairs are accepted), and performs the request. </p><p>Besides showing the latitude and longitude corresponding to the given Geohash, users who navigate to a Geohash at geohash.org are also presented with an embedded map, and may download a <a href="/wiki/GPX_(data_transfer)" class="mw-redirect" title="GPX (data transfer)">GPX</a> file, or transfer the waypoint directly to certain <a href="/wiki/GPS" class="mw-redirect" title="GPS">GPS</a> receivers. Links are also provided to external sites that may provide further details around the specified location. </p><p>For example, the coordinate pair <code>57.64911,10.40744</code> (near the tip of the <a href="/wiki/Peninsula" title="Peninsula">peninsula</a> of <a href="/wiki/Jutland,_Denmark" class="mw-redirect" title="Jutland, Denmark">Jutland, Denmark</a>) produces a slightly shorter hash of <code>u4pruydqqvj</code>. </p><p>The main usages of Geohashes are: </p> <ul><li>As a unique identifier.</li> <li>To represent point data, e.g. in databases.</li></ul> <p>Geohashes have also been proposed to be used for <a href="/wiki/Geotagging" title="Geotagging">geotagging</a>. </p><p>When used in a database, the structure of geohashed data has two advantages. First, data indexed by geohash will have all points for a given rectangular area in contiguous slices (the number of slices depends on the precision required and the presence of geohash "fault lines"). This is especially useful in database systems where queries on a single index are much easier or faster than multiple-index queries. Second, this index structure can be used for a quick-and-dirty proximity search: the closest points are often among the closest geohashes. </p> <div class="mw-heading mw-heading2"><h2 id="Technical_description">Technical description</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Geohash&action=edit&section=3" title="Edit section: Technical description"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A formal description for Computational and Mathematical views. </p> <div class="mw-heading mw-heading3"><h3 id="Textual_representation">Textual representation</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Geohash&action=edit&section=4" title="Edit section: Textual representation"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>For exact latitude and longitude translations Geohash is a <i>spatial index</i> of <a href="/wiki/Base_4" class="mw-redirect" title="Base 4">base 4</a>, because it transforms the continuous latitude and longitude space coordinates into a hierarchical discrete grid, using a recurrent four-partition of the space. To be a compact code it uses <a href="/wiki/Base_32" class="mw-redirect" title="Base 32">base 32</a> and represents its values by the following alphabet, that is the "standard textual representation". </p> <table class="wikitable" style="text-align:center"> <tbody><tr> <th>Decimal </th> <td>0</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>7</td> <td>8</td> <td>9</td> <td>10</td> <td>11</td> <td>12</td> <td>13</td> <td>14</td> <td>15 </td></tr> <tr> <th>Base 32 </th> <td>0</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>7</td> <td>8</td> <td>9</td> <td>b</td> <td>c</td> <td>d</td> <td>e</td> <td>f</td> <td>g </td></tr> <tr> <td style="font: 0.5em/0.5em serif;" colspan="20">  </td></tr> <tr> <th>Decimal </th> <td>16</td> <td>17</td> <td>18</td> <td>19</td> <td>20</td> <td>21</td> <td>22</td> <td>23</td> <td>24</td> <td>25</td> <td>26</td> <td>27</td> <td>28</td> <td>29</td> <td>30</td> <td>31 </td></tr> <tr> <th>Base 32 </th> <td>h</td> <td>j</td> <td>k</td> <td>m</td> <td>n</td> <td>p</td> <td>q</td> <td>r</td> <td>s</td> <td>t</td> <td>u</td> <td>v</td> <td>w</td> <td>x</td> <td>y</td> <td>z </td></tr></tbody></table> <p>The "Geohash alphabet" (32ghs) uses all digits 0-9 and all lower case letters except "a", "i", "l" and "o". </p><p>For example, using the table above and the constant <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle B=32}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>B</mi> <mo>=</mo> <mn>32</mn> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle B=32}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/c2bd453bc083476a4283af9074e5c9f9f926dcc8" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:7.187ex; height:2.176ex;" alt="{\displaystyle B=32}"></span>, the Geohash <code>ezs42</code> can be converted to a decimal representation by ordinary <a href="/wiki/Positional_notation#Base_of_the_numeral_system" title="Positional notation">positional notation</a>: </p> <dl><dd>[<code>ezs42</code>]<sub>32ghs</sub> = <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle [(e\times B^{4})+(z\times B^{3})+(s\times B^{2})+(4\times B^{1})+(2\times B^{0})]_{32ghs}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mo stretchy="false">[</mo> <mo stretchy="false">(</mo> <mi>e</mi> <mo>×<!-- × --></mo> <msup> <mi>B</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>4</mn> </mrow> </msup> <mo stretchy="false">)</mo> <mo>+</mo> <mo stretchy="false">(</mo> <mi>z</mi> <mo>×<!-- × --></mo> <msup> <mi>B</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>3</mn> </mrow> </msup> <mo stretchy="false">)</mo> <mo>+</mo> <mo stretchy="false">(</mo> <mi>s</mi> <mo>×<!-- × --></mo> <msup> <mi>B</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msup> <mo stretchy="false">)</mo> <mo>+</mo> <mo stretchy="false">(</mo> <mn>4</mn> <mo>×<!-- × --></mo> <msup> <mi>B</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>1</mn> </mrow> </msup> <mo stretchy="false">)</mo> <mo>+</mo> <mo stretchy="false">(</mo> <mn>2</mn> <mo>×<!-- × --></mo> <msup> <mi>B</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>0</mn> </mrow> </msup> <mo stretchy="false">)</mo> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>32</mn> <mi>g</mi> <mi>h</mi> <mi>s</mi> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle [(e\times B^{4})+(z\times B^{3})+(s\times B^{2})+(4\times B^{1})+(2\times B^{0})]_{32ghs}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/872930048a68246fcd6ea7f1acfe0dbc5be58d23" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:59.965ex; height:3.343ex;" alt="{\displaystyle [(e\times B^{4})+(z\times B^{3})+(s\times B^{2})+(4\times B^{1})+(2\times B^{0})]_{32ghs}}"></span></dd></dl> <dl><dd>= <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle [e]_{32ghs}\times B^{4}+[z]_{32ghs}\times B^{3}+[s]_{32ghs}\times B^{2}+[4]_{32ghs}\times B^{1}+[2]_{32ghs}\times B^{0}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mo stretchy="false">[</mo> <mi>e</mi> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>32</mn> <mi>g</mi> <mi>h</mi> <mi>s</mi> </mrow> </msub> <mo>×<!-- × --></mo> <msup> <mi>B</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>4</mn> </mrow> </msup> <mo>+</mo> <mo stretchy="false">[</mo> <mi>z</mi> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>32</mn> <mi>g</mi> <mi>h</mi> <mi>s</mi> </mrow> </msub> <mo>×<!-- × --></mo> <msup> <mi>B</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>3</mn> </mrow> </msup> <mo>+</mo> <mo stretchy="false">[</mo> <mi>s</mi> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>32</mn> <mi>g</mi> <mi>h</mi> <mi>s</mi> </mrow> </msub> <mo>×<!-- × --></mo> <msup> <mi>B</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msup> <mo>+</mo> <mo stretchy="false">[</mo> <mn>4</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>32</mn> <mi>g</mi> <mi>h</mi> <mi>s</mi> </mrow> </msub> <mo>×<!-- × --></mo> <msup> <mi>B</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>1</mn> </mrow> </msup> <mo>+</mo> <mo stretchy="false">[</mo> <mn>2</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>32</mn> <mi>g</mi> <mi>h</mi> <mi>s</mi> </mrow> </msub> <mo>×<!-- × --></mo> <msup> <mi>B</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>0</mn> </mrow> </msup> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle [e]_{32ghs}\times B^{4}+[z]_{32ghs}\times B^{3}+[s]_{32ghs}\times B^{2}+[4]_{32ghs}\times B^{1}+[2]_{32ghs}\times B^{0}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/a57ee49edb613cb08858ae544f1f78039cb2f4ef" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:73.626ex; height:3.343ex;" alt="{\displaystyle [e]_{32ghs}\times B^{4}+[z]_{32ghs}\times B^{3}+[s]_{32ghs}\times B^{2}+[4]_{32ghs}\times B^{1}+[2]_{32ghs}\times B^{0}}"></span></dd></dl> <dl><dd>= <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle [13]_{10}\times B^{4}+[31]_{10}\times B^{3}+[24]_{10}\times B^{2}+[4]_{10}\times B^{1}+[2]_{10}\times B^{0}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mo stretchy="false">[</mo> <mn>13</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>10</mn> </mrow> </msub> <mo>×<!-- × --></mo> <msup> <mi>B</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>4</mn> </mrow> </msup> <mo>+</mo> <mo stretchy="false">[</mo> <mn>31</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>10</mn> </mrow> </msub> <mo>×<!-- × --></mo> <msup> <mi>B</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>3</mn> </mrow> </msup> <mo>+</mo> <mo stretchy="false">[</mo> <mn>24</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>10</mn> </mrow> </msub> <mo>×<!-- × --></mo> <msup> <mi>B</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msup> <mo>+</mo> <mo stretchy="false">[</mo> <mn>4</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>10</mn> </mrow> </msub> <mo>×<!-- × --></mo> <msup> <mi>B</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>1</mn> </mrow> </msup> <mo>+</mo> <mo stretchy="false">[</mo> <mn>2</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>10</mn> </mrow> </msub> <mo>×<!-- × --></mo> <msup> <mi>B</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>0</mn> </mrow> </msup> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle [13]_{10}\times B^{4}+[31]_{10}\times B^{3}+[24]_{10}\times B^{2}+[4]_{10}\times B^{1}+[2]_{10}\times B^{0}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/cc6ce69cba5a441ff554e84816d57c415583bff9" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:64.804ex; height:3.176ex;" alt="{\displaystyle [13]_{10}\times B^{4}+[31]_{10}\times B^{3}+[24]_{10}\times B^{2}+[4]_{10}\times B^{1}+[2]_{10}\times B^{0}}"></span></dd></dl> <dl><dd>= <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle 13\times 1048576+31\times 32768+24\times 1024+4\times 32+2\times 1}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mn>13</mn> <mo>×<!-- × --></mo> <mn>1048576</mn> <mo>+</mo> <mn>31</mn> <mo>×<!-- × --></mo> <mn>32768</mn> <mo>+</mo> <mn>24</mn> <mo>×<!-- × --></mo> <mn>1024</mn> <mo>+</mo> <mn>4</mn> <mo>×<!-- × --></mo> <mn>32</mn> <mo>+</mo> <mn>2</mn> <mo>×<!-- × --></mo> <mn>1</mn> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle 13\times 1048576+31\times 32768+24\times 1024+4\times 32+2\times 1}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/eabb45dec5a23cf5b614551d8ee576efa8eb7944" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.505ex; width:56.95ex; height:2.343ex;" alt="{\displaystyle 13\times 1048576+31\times 32768+24\times 1024+4\times 32+2\times 1}"></span> = <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle 13631488+1015808+24576+128+2=14672002}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mn>13631488</mn> <mo>+</mo> <mn>1015808</mn> <mo>+</mo> <mn>24576</mn> <mo>+</mo> <mn>128</mn> <mo>+</mo> <mn>2</mn> <mo>=</mo> <mn>14672002</mn> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle 13631488+1015808+24576+128+2=14672002}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/7c990323e9c961b18680fbf2b44672a9585c219c" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.505ex; width:51.659ex; height:2.343ex;" alt="{\displaystyle 13631488+1015808+24576+128+2=14672002}"></span></dd></dl> <div class="mw-heading mw-heading3"><h3 id="Geometrical_representation">Geometrical representation</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Geohash&action=edit&section=5" title="Edit section: Geometrical representation"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The geometry of the Geohash has a mixed spatial representation: </p> <ul><li>Geohashes with 2, 4, 6, ... <i>e</i> digits (<a href="/wiki/Parity_(mathematics)" title="Parity (mathematics)">even</a> digits) are represented by <a href="/wiki/Z-order_curve" title="Z-order curve">Z-order curve</a> in a "regular grid" where decoded pair (latitude, longitude) has uniform uncertainty, valid as <a href="/wiki/Geo_URI_scheme#Uncertainty" title="Geo URI scheme">Geo URI</a>.</li> <li>Geohashes with 1, 3, 5, ... <i>d</i> digits (odd digits) are represented by "И-order curve". Latitude and longitude of the decoded pair has different uncertainty (longitude is truncated).</li></ul> <figure class="mw-halign-center" typeof="mw:File"><a href="/wiki/File:Geohash-OddEvenDigits.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c2/Geohash-OddEvenDigits.png/680px-Geohash-OddEvenDigits.png" decoding="async" width="680" height="327" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/c2/Geohash-OddEvenDigits.png/1020px-Geohash-OddEvenDigits.png 1.5x, //upload.wikimedia.org/wikipedia/commons/c/c2/Geohash-OddEvenDigits.png 2x" data-file-width="1307" data-file-height="629" /></a><figcaption></figcaption></figure> <figure typeof="mw:File/Thumb"><a href="/wiki/File:MortonCurve64grid-mergingCells.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/c/cf/MortonCurve64grid-mergingCells.png/320px-MortonCurve64grid-mergingCells.png" decoding="async" width="320" height="330" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/cf/MortonCurve64grid-mergingCells.png/480px-MortonCurve64grid-mergingCells.png 1.5x, //upload.wikimedia.org/wikipedia/commons/c/cf/MortonCurve64grid-mergingCells.png 2x" data-file-width="588" data-file-height="606" /></a><figcaption>The curve of the grid of 32 cells was obtained merging 2 by 2 cells of the "next level" (64 cells grid illustrated here) to obtain a geometrical representation of the "odd-digit Geohash".</figcaption></figure> <p>It is possible to build the "И-order curve" from the Z-order curve by merging neighboring cells and indexing the resulting rectangular grid by the function <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle j=\left\lfloor {\frac {i}{2}}\right\rfloor }"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>j</mi> <mo>=</mo> <mrow> <mo>⌊</mo> <mrow class="MJX-TeXAtom-ORD"> <mfrac> <mi>i</mi> <mn>2</mn> </mfrac> </mrow> <mo>⌋</mo> </mrow> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle j=\left\lfloor {\frac {i}{2}}\right\rfloor }</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/3b49b6939376adba3aec6e6f99ff7a378ba54861" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -2.505ex; margin-left: -0.027ex; width:8.792ex; height:6.176ex;" alt="{\displaystyle j=\left\lfloor {\frac {i}{2}}\right\rfloor }"></span>. The illustration shows how to obtain the grid of 32 rectangular cells from the grid of 64 square cells. </p><p>The most important property of Geohash for humans is that it <b>preserves <i>spatial hierarchy</i> in the <i>code prefixes</i></b>. <br />For example, in the "1 Geohash digit grid" illustration of 32 rectangles, above, the spatial region of the code <code>e</code> (rectangle of greyish blue circle at position 4,3) is preserved with prefix <code>e</code> in the "2 digit grid" of 1024 rectangles (scale showing <code>em</code> and greyish green to blue circles at grid). </p> <div class="mw-heading mw-heading3"><h3 id="Algorithm_and_example">Algorithm and example</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Geohash&action=edit&section=6" title="Edit section: Algorithm and example"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Using the hash <code>ezs42</code> as an example, here is how it is decoded into a decimal latitude and longitude. The first step is decoding it from textual "<a href="#Textual_representation">base 32ghs</a>", as showed above, to obtain the binary representation: </p> <dl><dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle [e]_{32ghs}=[13]_{10}=[01101]_{2}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mo stretchy="false">[</mo> <mi>e</mi> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>32</mn> <mi>g</mi> <mi>h</mi> <mi>s</mi> </mrow> </msub> <mo>=</mo> <mo stretchy="false">[</mo> <mn>13</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>10</mn> </mrow> </msub> <mo>=</mo> <mo stretchy="false">[</mo> <mn>01101</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle [e]_{32ghs}=[13]_{10}=[01101]_{2}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/8a7dd703190ec95a068162ab94929c086ee5c664" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:26.612ex; height:3.009ex;" alt="{\displaystyle [e]_{32ghs}=[13]_{10}=[01101]_{2}}"></span></dd> <dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle [z]_{32ghs}=[31]_{10}=[11111]_{2}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mo stretchy="false">[</mo> <mi>z</mi> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>32</mn> <mi>g</mi> <mi>h</mi> <mi>s</mi> </mrow> </msub> <mo>=</mo> <mo stretchy="false">[</mo> <mn>31</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>10</mn> </mrow> </msub> <mo>=</mo> <mo stretchy="false">[</mo> <mn>11111</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle [z]_{32ghs}=[31]_{10}=[11111]_{2}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/bd436e0272d265b9a5737df0001e4ff2adae825a" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:26.617ex; height:3.009ex;" alt="{\displaystyle [z]_{32ghs}=[31]_{10}=[11111]_{2}}"></span></dd> <dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle [s]_{32ghs}=[24]_{10}=[11000]_{2}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mo stretchy="false">[</mo> <mi>s</mi> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>32</mn> <mi>g</mi> <mi>h</mi> <mi>s</mi> </mrow> </msub> <mo>=</mo> <mo stretchy="false">[</mo> <mn>24</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>10</mn> </mrow> </msub> <mo>=</mo> <mo stretchy="false">[</mo> <mn>11000</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle [s]_{32ghs}=[24]_{10}=[11000]_{2}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/e22a8061075684fee9432f5127a23edd1dcd3966" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:26.619ex; height:3.009ex;" alt="{\displaystyle [s]_{32ghs}=[24]_{10}=[11000]_{2}}"></span></dd> <dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle [4]_{32ghs}=[4]_{10}=[00100]_{2}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mo stretchy="false">[</mo> <mn>4</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>32</mn> <mi>g</mi> <mi>h</mi> <mi>s</mi> </mrow> </msub> <mo>=</mo> <mo stretchy="false">[</mo> <mn>4</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>10</mn> </mrow> </msub> <mo>=</mo> <mo stretchy="false">[</mo> <mn>00100</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle [4]_{32ghs}=[4]_{10}=[00100]_{2}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/e736034ce38f1f3e8e1779280556f788180fdebd" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:25.529ex; height:3.009ex;" alt="{\displaystyle [4]_{32ghs}=[4]_{10}=[00100]_{2}}"></span></dd> <dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle [2]_{32ghs}=[2]_{10}=[00010]_{2}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mo stretchy="false">[</mo> <mn>2</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>32</mn> <mi>g</mi> <mi>h</mi> <mi>s</mi> </mrow> </msub> <mo>=</mo> <mo stretchy="false">[</mo> <mn>2</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>10</mn> </mrow> </msub> <mo>=</mo> <mo stretchy="false">[</mo> <mn>00010</mn> <msub> <mo stretchy="false">]</mo> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle [2]_{32ghs}=[2]_{10}=[00010]_{2}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/c029af7816cb780928bbd8fe3c742971835c56bf" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:25.529ex; height:3.009ex;" alt="{\displaystyle [2]_{32ghs}=[2]_{10}=[00010]_{2}}"></span>.</dd></dl> <p>This operation results in the <a href="/wiki/Bit" title="Bit">bits</a> <code>01101</code> <code>11111</code> <code>11000</code> <code>00100</code> <code>00010</code>. Starting to count from the left side with the digit 0 in the first position, the digits in the even positions form the longitude code (<code>0111110000000</code>), while the digits in the odd positions form the latitude code (<code>101111001001</code>). </p><p>Each binary code is then used in a series of divisions, considering one bit at a time, again from the left to the right side. For the latitude value, the interval −90 to +90 is divided by 2, producing two intervals: −90 to 0, and 0 to +90. Since the first bit is 1, the higher interval is chosen, and becomes the current interval. The procedure is repeated for all bits in the code. Finally, the latitude value is the center of the resulting interval. Longitudes are processed in an equivalent way, keeping in mind that the initial interval is −180 to +180. </p><p>For example, in the latitude code <code>101111001001</code>, the first bit is 1, so we know our latitude is somewhere between 0 and 90. Without any more bits, we'd guess the latitude was 45, giving us an error of ±45. Since more bits are available, we can continue with the next bit, and each subsequent bit halves this error. This table shows the effect of each bit. At each stage, the relevant half of the range is highlighted in green; a low bit selects the lower range, a high bit selects the upper range. </p><p>The column "mean value" shows the latitude, simply the mean value of the range. Each subsequent bit makes this value more precise. </p> <table class="wikitable" style="text-align:right"> <tbody><tr> <th colspan="7">Latitude code 101111001001 </th></tr> <tr style="text-align:center"> <th>bit position </th> <th>bit value </th> <th>min </th> <th>mid </th> <th>max </th> <th>mean value </th> <th>maximum error </th></tr> <tr> <td>0</td> <td>1</td> <td>−90.000</td> <td style="background:#cceecc">0.000</td> <td style="background:#cceecc">90.000</td> <td>45.000</td> <td>45.000 </td></tr> <tr> <td>1</td> <td>0</td> <td style="background:#cceecc">0.000</td> <td style="background:#cceecc">45.000</td> <td>90.000</td> <td>22.500</td> <td>22.500 </td></tr> <tr> <td>2</td> <td>1</td> <td>0.000</td> <td style="background:#cceecc">22.500</td> <td style="background:#cceecc">45.000</td> <td>33.750</td> <td>11.250 </td></tr> <tr> <td>3</td> <td>1</td> <td>22.500</td> <td style="background:#cceecc">33.750</td> <td style="background:#cceecc">45.000</td> <td>39.375</td> <td>5.625 </td></tr> <tr> <td>4</td> <td>1</td> <td>33.750</td> <td style="background:#cceecc">39.375</td> <td style="background:#cceecc">45.000</td> <td>42.188</td> <td>2.813 </td></tr> <tr> <td>5</td> <td>1</td> <td>39.375</td> <td style="background:#cceecc">42.188</td> <td style="background:#cceecc">45.000</td> <td>43.594</td> <td>1.406 </td></tr> <tr> <td>6</td> <td>0</td> <td style="background:#cceecc">42.188</td> <td style="background:#cceecc">43.594</td> <td>45.000</td> <td>42.891</td> <td>0.703 </td></tr> <tr> <td>7</td> <td>0</td> <td style="background:#cceecc">42.188</td> <td style="background:#cceecc">42.891</td> <td>43.594</td> <td>42.539</td> <td>0.352 </td></tr> <tr> <td>8</td> <td>1</td> <td>42.188</td> <td style="background:#cceecc">42.539</td> <td style="background:#cceecc">42.891</td> <td>42.715</td> <td>0.176 </td></tr> <tr> <td>9</td> <td>0</td> <td style="background:#cceecc">42.539</td> <td style="background:#cceecc">42.715</td> <td>42.891</td> <td>42.627</td> <td>0.088 </td></tr> <tr> <td>10</td> <td>0</td> <td style="background:#cceecc">42.539</td> <td style="background:#cceecc">42.627</td> <td>42.715</td> <td>42.583</td> <td>0.044 </td></tr> <tr> <td>11</td> <td>1</td> <td>42.539</td> <td style="background:#cceecc">42.583</td> <td style="background:#cceecc">42.627</td> <td>42.605</td> <td>0.022 </td></tr></tbody></table> <table class="wikitable" style="text-align:right"> <tbody><tr> <th colspan="7">Longitude code 0111110000000 </th></tr> <tr style="text-align:center"> <th>bit position </th> <th>bit value </th> <th>min </th> <th>mid </th> <th>max </th> <th>mean value </th> <th>maximum error </th></tr> <tr> <td>0</td> <td>0</td> <td style="background:#cceecc">−180.000</td> <td style="background:#cceecc">0.000</td> <td>180.000</td> <td>−90.000</td> <td>90.000 </td></tr> <tr> <td>1</td> <td>1</td> <td>−180.000</td> <td style="background:#cceecc">−90.000</td> <td style="background:#cceecc">0.000</td> <td>−45.000</td> <td>45.000 </td></tr> <tr> <td>2</td> <td>1</td> <td>−90.000</td> <td style="background:#cceecc">−45.000</td> <td style="background:#cceecc">0.000</td> <td>−22.500</td> <td>22.500 </td></tr> <tr> <td>3</td> <td>1</td> <td>−45.000</td> <td style="background:#cceecc">−22.500</td> <td style="background:#cceecc">0.000</td> <td>−11.250</td> <td>11.250 </td></tr> <tr> <td>4</td> <td>1</td> <td>−22.500</td> <td style="background:#cceecc">−11.250</td> <td style="background:#cceecc">0.000</td> <td>−5.625</td> <td>5.625 </td></tr> <tr> <td>5</td> <td>1</td> <td>−11.250</td> <td style="background:#cceecc">−5.625</td> <td style="background:#cceecc">0.000</td> <td>−2.813</td> <td>2.813 </td></tr> <tr> <td>6</td> <td>0</td> <td style="background:#cceecc">−5.625</td> <td style="background:#cceecc">−2.813</td> <td>0.000</td> <td>−4.219 </td> <td>1.406 </td></tr> <tr> <td>7</td> <td>0</td> <td style="background:#cceecc">−5.625</td> <td style="background:#cceecc">−4.219 </td> <td>−2.813</td> <td>−4.922 </td> <td>0.703 </td></tr> <tr> <td>8</td> <td>0</td> <td style="background:#cceecc">−5.625</td> <td style="background:#cceecc">−4.922 </td> <td>−4.219 </td> <td>−5.273 </td> <td>0.352 </td></tr> <tr> <td>9</td> <td>0</td> <td style="background:#cceecc">−5.625</td> <td style="background:#cceecc">−5.273 </td> <td>−4.922 </td> <td>−5.449 </td> <td>0.176 </td></tr> <tr> <td>10</td> <td>0</td> <td style="background:#cceecc">−5.625</td> <td style="background:#cceecc">−5.449 </td> <td>−5.273 </td> <td>−5.537 </td> <td>0.088 </td></tr> <tr> <td>11</td> <td>0</td> <td style="background:#cceecc">−5.625</td> <td style="background:#cceecc">−5.537 </td> <td>−5.449 </td> <td>−5.581 </td> <td>0.044 </td></tr> <tr> <td>12</td> <td>0</td> <td style="background:#cceecc">−5.625</td> <td style="background:#cceecc">−5.581 </td> <td>−5.537 </td> <td>−5.603 </td> <td>0.022 </td></tr></tbody></table> <p>(The numbers in the above table have been rounded to 3 decimal places for clarity) </p><p>Final rounding should be done carefully in a way that </p> <dl><dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \min \leq \mathrm {round} (value)\leq \max }"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mo movablelimits="true" form="prefix">min</mo> <mo>≤<!-- ≤ --></mo> <mrow class="MJX-TeXAtom-ORD"> <mi mathvariant="normal">r</mi> <mi mathvariant="normal">o</mi> <mi mathvariant="normal">u</mi> <mi mathvariant="normal">n</mi> <mi mathvariant="normal">d</mi> </mrow> <mo stretchy="false">(</mo> <mi>v</mi> <mi>a</mi> <mi>l</mi> <mi>u</mi> <mi>e</mi> <mo stretchy="false">)</mo> <mo>≤<!-- ≤ --></mo> <mo movablelimits="true" form="prefix">max</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle \min \leq \mathrm {round} (value)\leq \max }</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/6222a0d7bc6c29b2b551f5c3f6b0118de71c5570" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:27.623ex; height:2.843ex;" alt="{\displaystyle \min \leq \mathrm {round} (value)\leq \max }"></span></dd></dl> <p>So while rounding 42.605 to 42.61 or 42.6 is correct, rounding to 43 is not. </p> <div class="mw-heading mw-heading3"><h3 id="Digits_and_precision_in_km">Digits and precision in km</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Geohash&action=edit&section=7" title="Edit section: Digits and precision in km"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable"> <tbody><tr> <th>geohash length </th> <th>lat bits </th> <th>lng bits </th> <th>lat error </th> <th>lng error </th> <th>km error </th></tr> <tr> <td>1</td> <td>2</td> <td>3</td> <td>±23</td> <td>±23</td> <td><span class="nowrap"> </span>±2,500 km (1,600 mi) </td></tr> <tr> <td>2</td> <td>5</td> <td>5</td> <td><span class="nowrap"> </span>±2.8</td> <td><span class="nowrap"> </span>±5.6</td> <td><span class="nowrap"> </span>±630 km (390 mi) </td></tr> <tr> <td>3</td> <td>7</td> <td>8</td> <td><span class="nowrap"> </span>±0.70</td> <td><span class="nowrap"> </span>±0.70</td> <td><span class="nowrap"> </span><span class="nowrap"> </span>±78 km (48 mi) </td></tr> <tr> <td>4</td> <td>10</td> <td>10</td> <td><span class="nowrap"> </span>±0.087</td> <td><span class="nowrap"> </span>±0.18</td> <td><span class="nowrap"> </span><span class="nowrap"> </span>±20 km (12 mi) </td></tr> <tr> <td>5</td> <td>12</td> <td>13</td> <td><span class="nowrap"> </span>±0.022</td> <td><span class="nowrap"> </span>±0.022</td> <td><span class="nowrap"> </span><span class="nowrap"> </span><span class="nowrap"> </span>±2.4 km (1.5 mi; 2,400 m) </td></tr> <tr> <td>6</td> <td>15</td> <td>15</td> <td><span class="nowrap"> </span>±0.0027</td> <td><span class="nowrap"> </span>±0.0055</td> <td><span class="nowrap"> </span><span class="nowrap"> </span><span class="nowrap"> </span>±0.61 km (0.38 mi; 610 m) </td></tr> <tr> <td>7</td> <td>17</td> <td>18</td> <td><span class="nowrap"> </span>±0.00068</td> <td><span class="nowrap"> </span>±0.00068</td> <td><span class="nowrap"> </span><span class="nowrap"> </span><span class="nowrap"> </span>±0.076 km (0.047 mi; 76 m) </td></tr> <tr> <td>8</td> <td>20</td> <td>20</td> <td><span class="nowrap"> </span>±0.000085</td> <td><span class="nowrap"> </span>±0.00017</td> <td><span class="nowrap"> </span><span class="nowrap"> </span><span class="nowrap"> </span>±0.019 km (0.012 mi; 19 m) </td></tr></tbody></table> <div class="mw-heading mw-heading2"><h2 id="Limitations_when_used_for_deciding_proximity">Limitations when used for deciding proximity</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Geohash&action=edit&section=8" title="Edit section: Limitations when used for deciding proximity"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Edge_cases">Edge cases</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Geohash&action=edit&section=9" title="Edit section: Edge cases"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Geohashes can be used to find points in proximity to each other based on a common prefix. However, <a href="/wiki/Edge_case" title="Edge case">edge case</a> locations close to each other but on opposite sides of the 180 degree meridian will result in Geohash codes with no common prefix (different longitudes for near physical locations). Points close to the North and South poles will have very different geohashes (different longitudes for near physical locations). </p><p>Two close locations on either side of the Equator (or Greenwich meridian) will not have a long common prefix since they belong to different 'halves' of the world. Put simply, one location's binary latitude (or longitude) will be 011111... and the other 100000...., so they will not have a common prefix and most bits will be flipped. This can also be seen as a consequence of relying on the <a href="/wiki/Z-order_curve" title="Z-order curve">Z-order curve</a> (which could more appropriately be called an N-order visit in this case) for ordering the points, as two points close by might be visited at very different times. However, two points with a long common prefix will be close by. </p><p>In order to do a proximity search, one could compute the southwest corner (low geohash with low latitude and longitude) and northeast corner (high geohash with high latitude and longitude) of a bounding box and search for geohashes between those two. This search will retrieve all points in the z-order curve between the two corners, which can be far too many points. This method also breaks down at the 180 meridians and the poles. Solr uses a filter list of prefixes, by computing the prefixes of the nearest squares close to the geohash <a rel="nofollow" class="external autonumber" href="https://web.archive.org/web/20140513235817/http://lucenerevolution.org/sites/default/files/Lucene%20Rev%20Preso%20Smiley%20Spatial%20Search.pdf">[1]</a>. </p> <div class="mw-heading mw-heading3"><h3 id="Non-linearity">Non-linearity</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Geohash&action=edit&section=10" title="Edit section: Non-linearity"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Since a geohash (in this implementation) is based on <a href="/wiki/Geographical_coordinate_system" class="mw-redirect" title="Geographical coordinate system">coordinates of longitude and latitude</a> the distance between two geohashes reflects the distance in latitude/longitude coordinates between two points, which does not translate to actual distance, see <a href="/wiki/Haversine_formula" title="Haversine formula">Haversine formula</a>. </p><p>Example of non-linearity for latitude-longitude system: </p> <ul><li>At the Equator (0 Degrees) the length of a degree of longitude is 111.320 km, while a degree of latitude measures 110.574 km, an error of 0.67%.</li> <li>At 30 Degrees (Mid Latitudes) the error is 110.852/96.486 = 14.89%</li> <li>At 60 Degrees (High Arctic) the error is 111.412/55.800 = 99.67%, reaching infinity at the poles.</li></ul> <p>Note that these limitations are not due to geohashing, and not due to latitude-longitude coordinates, but due to the difficulty of mapping coordinates on a sphere (non linear and with wrapping of values, similar to modulo arithmetic) to two dimensional coordinates and the difficulty of exploring a two dimensional space uniformly. The first is related to <a href="/wiki/Geographical_coordinate_system" class="mw-redirect" title="Geographical coordinate system">Geographical coordinate system</a> and <a href="/wiki/Map_projection" title="Map projection">Map projection</a>, and the other to <a href="/wiki/Hilbert_curve" title="Hilbert curve">Hilbert curve</a> and <a href="/wiki/Z-order_curve" title="Z-order curve">z-order curve</a>. Once a coordinate system is found that represents points linearly in distance and wraps up at the edges, and can be explored uniformly, applying geohashing to those coordinates will not suffer from the limitations above. </p><p>While it is possible to apply geohashing to an area with a <a href="/wiki/Cartesian_coordinate_system" title="Cartesian coordinate system">Cartesian coordinate system</a>, it would then only apply to the area where the coordinate system applies. </p><p>Despite those issues, there are possible workarounds, and the algorithm has been successfully used in Elasticsearch,<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> MongoDB,<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> HBase, Redis,<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> and <a href="/wiki/Accumulo" class="mw-redirect" title="Accumulo">Accumulo</a><sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> to implement proximity searches. </p> <div class="mw-heading mw-heading2"><h2 id="Similar_indexing_systems">Similar indexing systems</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Geohash&action=edit&section=11" title="Edit section: Similar indexing systems"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/Geocodes" class="mw-redirect" title="Geocodes">Geocodes</a></div> <figure typeof="mw:File/Thumb"><a href="/wiki/File:Comparing-Geoash-Hilbert.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/6/67/Comparing-Geoash-Hilbert.png/520px-Comparing-Geoash-Hilbert.png" decoding="async" width="520" height="521" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/67/Comparing-Geoash-Hilbert.png/780px-Comparing-Geoash-Hilbert.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/67/Comparing-Geoash-Hilbert.png/1040px-Comparing-Geoash-Hilbert.png 2x" data-file-width="1404" data-file-height="1408" /></a><figcaption>It is possible to use same base32-Geohash codes in different indexing curves. For <a href="/wiki/Euclidean_tilings_by_convex_regular_polygons#Regular_tilings" title="Euclidean tilings by convex regular polygons">quadrilateral tiling</a> the <a href="/wiki/Hilbert_curve" title="Hilbert curve">Hilbert curve</a> is the best alternative for <a href="/wiki/Z-order_curve" title="Z-order curve">Morton curve</a>, used for example in the S2-geometry. <br />Codes with even number of digits (2, 4, ...) are mapped to regular grids, but codes of odd number (1, 3, ...) must be mapped to an irregular intermediary grid, with cells <a rel="nofollow" class="external text" href="https://mathoverflow.net/q/357117/153024">indexed by degenerated curves</a>.</figcaption></figure> <p>An alternative to storing Geohashes as strings in a database are <a rel="nofollow" class="external text" href="http://www.cs.umd.edu/~hjs/pubs/SametVisualComputer89.pdf">Locational codes</a>, which are also called spatial keys and similar to QuadTiles.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> </p><p>In some <a href="/wiki/Geographical_information_systems" class="mw-redirect" title="Geographical information systems">geographical information systems</a> and <a href="/wiki/Big_Data" class="mw-redirect" title="Big Data">Big Data</a> spatial databases, a <a href="/wiki/Hilbert_curve" title="Hilbert curve">Hilbert curve</a> based indexation can be used as an alternative to <a href="/wiki/Z-order_curve" title="Z-order curve">Z-order curve</a>, like in the <i>S2 Geometry library</i>.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> </p><p>In 2019 a front-end was designed by <a href="/w/index.php?title=QA_Locate&action=edit&redlink=1" class="new" title="QA Locate (page does not exist)">QA Locate</a><sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> in what they called GeohashPhrase<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> to use phrases to code Geohashes for easier communication via spoken English language. There were plans to make GeohashPhrase open source.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> </p> <style data-mw-deduplicate="TemplateStyles:r1184024115">.mw-parser-output .div-col{margin-top:0.3em;column-width:30em}.mw-parser-output .div-col-small{font-size:90%}.mw-parser-output .div-col-rules{column-rule:1px solid #aaa}.mw-parser-output .div-col dl,.mw-parser-output .div-col ol,.mw-parser-output .div-col ul{margin-top:0}.mw-parser-output .div-col li,.mw-parser-output .div-col dd{page-break-inside:avoid;break-inside:avoid-column}</style><div class="div-col"> <ul><li><a href="/wiki/C-squares" title="C-squares">C-squares</a> (2002)</li> <li>FixPhrase</li> <li><a href="/w/index.php?title=GeoKey&action=edit&redlink=1" class="new" title="GeoKey (page does not exist)">GeoKey</a> (2018, proprietary)</li> <li><a href="/wiki/Ghana_Post_GPS" title="Ghana Post GPS">Ghana Post GPS</a> (2017)</li> <li>International Postcode system using Cubic Meters (CubicPostcode.com)</li> <li><a href="/wiki/Maidenhead_Locator_System" title="Maidenhead Locator System">Maidenhead Locator System</a> (1980)</li> <li><a href="/w/index.php?title=Makaney_Code&action=edit&redlink=1" class="new" title="Makaney Code (page does not exist)">Makaney Code</a> (2011)</li> <li><a href="/wiki/MapCode" class="mw-redirect" title="MapCode">MapCode</a> (2008)</li> <li><a href="/wiki/Military_Grid_Reference_System" title="Military Grid Reference System">Military Grid Reference System</a></li> <li><a href="/wiki/Natural_Area_Code" title="Natural Area Code">Natural Area Code</a></li> <li><a href="/wiki/Open_Location_Code" title="Open Location Code">Open Location Code</a> (2014, aka. "plus codes", <a href="/wiki/Google_Maps" title="Google Maps">Google Maps</a>)</li> <li><a href="/wiki/QRA_locator" title="QRA locator">QRA locator</a> (1959)</li> <li><a href="/wiki/Universal_Transverse_Mercator_coordinate_system" title="Universal Transverse Mercator coordinate system">Universal Transverse Mercator coordinate system</a></li> <li>verbal-id</li> <li><a href="/wiki/What3words" title="What3words">what3words</a> (2013, proprietary)</li> <li><a href="/w/index.php?title=WhatFreeWords&action=edit&redlink=1" class="new" title="WhatFreeWords (page does not exist)">WhatFreeWords</a></li> <li>wherewords.id</li> <li>wolo.codes</li> <li><a href="/wiki/World_Geographic_Reference_System" title="World Geographic Reference System">GEOREF</a> (similar 2-digit hierarchy code)</li> <li><a href="/w/index.php?title=Xaddress&action=edit&redlink=1" class="new" title="Xaddress (page does not exist)">Xaddress</a></li> <li><a href="/w/index.php?title=3Geonames&action=edit&redlink=1" class="new" title="3Geonames (page does not exist)">3Geonames</a> (2018, open source)</li></ul> </div> <div class="mw-heading mw-heading2"><h2 id="Licensing">Licensing</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Geohash&action=edit&section=12" title="Edit section: Licensing"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The Geohash algorithm was put in the <a href="/wiki/Public_domain" title="Public domain">public domain</a> by its inventor in a public announcement on February 26, 2008.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> </p><p>While comparable algorithms have been successfully patented<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> and had copyright claimed upon,<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> GeoHash is based on an entirely different algorithm and approach. </p> <div class="mw-heading mw-heading2"><h2 id="Formal_Standard">Formal Standard</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Geohash&action=edit&section=13" title="Edit section: Formal Standard"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Geohash is standardized as CTA-5009.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>  This standard follows the Wikipedia article as of the 2023 version but provides additional detail in a formal (normative) reference. In the absence of an official specification since the creation of Geohash, the CTA WAVE organization published CTA-5009 to aid in broader adoption and compatibility across implementers in the industry. </p> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Geohash&action=edit&section=14" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/List_of_geodesic-geocoding_systems" class="mw-redirect" title="List of geodesic-geocoding systems">List of geodesic-geocoding systems</a></li> <li><a href="/wiki/Geohash-36" title="Geohash-36">Geohash-36</a> (is not a Geohash-variant)</li> <li><a href="/wiki/Grid_(spatial_index)" title="Grid (spatial index)">Grid (spatial index)</a></li> <li><a href="/wiki/Maidenhead_Locator_System" title="Maidenhead Locator System">Maidenhead Locator System</a></li> <li><a href="/wiki/Military_Grid_Reference_System" title="Military Grid Reference System">Military Grid Reference System</a></li> <li><a href="/wiki/Morton_number_(number_theory)" class="mw-redirect" title="Morton number (number theory)">Morton number (number theory)</a></li> <li><a href="/wiki/Natural_Area_Code" title="Natural Area Code">Natural Area Code</a></li> <li><a href="/wiki/Numbering_scheme" title="Numbering scheme">Numbering scheme</a></li> <li><a href="/wiki/Open_Location_Code" title="Open Location Code">Open Location Code</a> (plus code)</li> <li><a href="/wiki/Space-filling_curves" class="mw-redirect" title="Space-filling curves">space-filling curves</a></li> <li><a href="/wiki/What3words" title="What3words">what3words</a></li> <li><a href="/wiki/Z-order_curve" title="Z-order curve">Z-order curve</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Geohash&action=edit&section=15" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist reflist-columns references-column-width" style="column-width: 30em;"> <ol class="references"> <li id="cite_note-first2008-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-first2008_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-first2008_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">Evidences at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>: <ul><li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20080305223755/http://blog.labix.org/#post-85">labix.org in 2008, the G. Niemeyer's blog announcing Geohash</a>;</li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20120112004608/http://www.bigfastblog.com/geohash-intro">an article about Geohash witnessing and citing G. Niemeyer works, before 2012</a>;</li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20180309054335/https://forums.geocaching.com/GC/index.php?%2Ftopic%2F186412-geohashorg%2F">G. Niemeyer's post at forums.geocaching.com announcing Geohash in Feb. 2008</a>.</li></ul> </span></li> <li id="cite_note-morton66-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-morton66_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-morton66_2-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">G. M. Morton (1966)<a rel="nofollow" class="external text" href="https://domino.research.ibm.com/library/cyberdig.nsf/papers/0DABF9473B9C86D48525779800566A39/$File/Morton1966.pdf"><i>"A Computer Oriented Geodetic Data Base and a New Technique in File Sequencing"</i></a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190125020453/https://domino.research.ibm.com/library/cyberdig.nsf/papers/0DABF9473B9C86D48525779800566A39/$File/Morton1966.pdf">Archived</a> 2019-01-25 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>. Report in IBM Canada.</span> </li> <li id="cite_note-osm_short_link-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-osm_short_link_3-0">^</a></b></span> <span class="reference-text"> The <a href="/wiki/OpenStreetMap" title="OpenStreetMap">OpenStreetMap</a>'s <i>short link</i>, <a rel="nofollow" class="external text" href="https://wiki.openstreetmap.org/wiki/Shortlink">documented in wiki.openstreetmap.org</a>, was released <a rel="nofollow" class="external text" href="https://github.com/openstreetmap/openstreetmap-website/blob/1d8e66016c4cdf465d06198cfbbfe76613ed3bfc/lib/short_link.rb">in 2009</a>, is near the same source-code <a rel="nofollow" class="external text" href="https://github.com/openstreetmap/openstreetmap-website/blob/master/lib/short_link.rb">10 years after</a>. It is strongly based on <a href="/wiki/Z-order_curve" title="Z-order curve">Morton's interlace algorithm</a>.</span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"> The "Geohash binary 64 bits" have classic solutions, as <a rel="nofollow" class="external text" href="https://github.com/yinqiwen/geohash-int">yinqiwen/geohash-int</a>, and optimized solutions, as <a rel="nofollow" class="external text" href="https://mmcloughlin.com/posts/geohash-assembly">mmcloughlin/geohash-assembly</a>.</span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite id="CITEREFVukovic2016" class="citation thesis cs1">Vukovic, Tibor (2016). <i>Hilbert-Geohash - Hashing Geographical Point Data Using the Hilbert Space-Filling Curve</i>. <i>70</i> (Thesis). <a href="/wiki/Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://hdl.handle.net/11250%2F2404058">11250/2404058</a></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adissertation&rft.title=Hilbert-Geohash+-+Hashing+Geographical+Point+Data+Using+the+Hilbert+Space-Filling+Curve&rft.date=2016&rft_id=info%3Ahdl%2F11250%2F2404058&rft.aulast=Vukovic&rft.aufirst=Tibor&rfr_id=info%3Asid%2Fen.wikipedia.org%3AGeohash" class="Z3988"></span></span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.elastic.co/guide/en/elasticsearch/reference/current/geo-shape.html">geo_shape Datatype in Elasticsearch</a></span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.mongodb.org/display/DOCS/Geospatial+Indexing">Geospatial Indexing in MongoDB</a></span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://redis.io/commands/geohash">Redis-commands Guide</a></span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://geomesa.github.io/assets/outreach/SpatioTemporalIndexing_IEEEcopyright.pdf">Spatio-temporal Indexing in Non-relational Distributed Databases</a></span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://karussell.wordpress.com/2012/05/23/spatial-keys-memory-efficient-geohashes/">Spatial Keys</a></span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://wiki.openstreetmap.org/wiki/QuadTiles">QuadTiles</a></span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text">"S2 Geometry Library" for optimized spatial indexation, <a rel="nofollow" class="external free" href="https://s2geometry.io">https://s2geometry.io</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20231211175507/https://s2geometry.io/">Archived</a> 2023-12-11 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></span> </li> <li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.qalocate.com/">"QA Locate | The Power of Precision Location Intelligence"</a>. <i>QA Locate</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-06-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=QA+Locate&rft.atitle=QA+Locate+%7C+The+Power+of+Precision+Location+Intelligence&rft_id=https%3A%2F%2Fwww.qalocate.com%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AGeohash" class="Z3988"></span></span> </li> <li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.qalocate.com/solutions/geohashphrase/">"GeohashPhrase"</a>. <i>QA Locate</i>. 2019-09-17<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-06-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=QA+Locate&rft.atitle=GeohashPhrase&rft.date=2019-09-17&rft_id=https%3A%2F%2Fwww.qalocate.com%2Fsolutions%2Fgeohashphrase%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AGeohash" class="Z3988"></span></span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFthelittlenag2019" class="citation web cs1">thelittlenag (2019-11-11). <a rel="nofollow" class="external text" href="https://news.ycombinator.com/item?id=21219374">"At QA Locate we've been working on a solution that we call GeohashPhrase | Hacker News"</a>. <i>news.ycombinator.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-06-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=news.ycombinator.com&rft.atitle=At+QA+Locate+we%27ve+been+working+on+a+solution+that+we+call+GeohashPhrase+%7C+Hacker+News&rft.date=2019-11-11&rft.au=thelittlenag&rft_id=https%3A%2F%2Fnews.ycombinator.com%2Fitem%3Fid%3D21219374&rfr_id=info%3Asid%2Fen.wikipedia.org%3AGeohash" class="Z3988"></span></span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://forums.groundspeak.com/GC/index.php?showtopic=186412">geohash.org announcement post in groundspeak.com forum. See also Wayback of 2018 at https://web.archive.org/web/20180309054335/https://forums.geocaching.com/GC/index.php?/topic/186412-geohashorg/ web.archive.org/web/20180309054335</a></span> </li> <li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.freepatentsonline.com/20050023524.html">Compact text encoding of latitude/longitude coordinates - Patent 20050023524</a></span> </li> <li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.gps-practice-and-fun.com/nacgeo.html#Microsoft">Does Microsoft Infringe the Natural Area Coding System?</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20101228091709/http://www.gps-practice-and-fun.com/nacgeo.html">Archived</a> 2010-12-28 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></span> </li> <li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20190523074747/http://www.nacgeo.com/nacsite/licensing/">"The Natural Area Coding System - Legal and Licensing"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.nacgeo.com/nacsite/licensing/">the original</a> on 2019-05-23<span class="reference-accessdate">. Retrieved <span class="nowrap">2008-02-26</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=The+Natural+Area+Coding+System+-+Legal+and+Licensing&rft_id=http%3A%2F%2Fwww.nacgeo.com%2Fnacsite%2Flicensing%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AGeohash" class="Z3988"></span></span> </li> <li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://shop.cta.tech/products/fast-and-readable-geographical-hashing-cta-5009">"Fast and Readable Geographical Hashing (CTA-5009)"</a>. <i>Consumer Technology Association®</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-03-04</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Consumer+Technology+Association%C2%AE&rft.atitle=Fast+and+Readable+Geographical+Hashing+%28CTA-5009%29&rft_id=https%3A%2F%2Fshop.cta.tech%2Fproducts%2Ffast-and-readable-geographical-hashing-cta-5009&rfr_id=info%3Asid%2Fen.wikipedia.org%3AGeohash" class="Z3988"></span></span> </li> </ol></div> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Geohash&action=edit&section=16" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><span class="official-website"><span class="url"><a rel="nofollow" class="external text" href="http://geohash.org/">Official website</a></span></span></li> <li><a rel="nofollow" class="external text" href="https://github.com/adrianulbona/jts-discretizer">Geohash approximations for JTS geometries</a></li> <li><a rel="nofollow" class="external text" href="https://geohash.measurement.earth/">The Geohash Playground</a></li></ul> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="Geocode_systems" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Geocoding-systems" title="Template:Geocoding-systems"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Geocoding-systems" title="Template talk:Geocoding-systems"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Geocoding-systems" title="Special:EditPage/Template:Geocoding-systems"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Geocode_systems" style="font-size:114%;margin:0 4em"><a href="/wiki/Geocode" title="Geocode">Geocode systems</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Administrative codes</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/List_of_FIPS_country_codes" title="List of FIPS country codes">FIPS country code</a> (FIPS 10-4)</li> <li><a href="/wiki/Federal_Information_Processing_Standards" title="Federal Information Processing Standards">FIPS place code</a> (FIPS 55)</li> <li><a href="/wiki/FIPS_county_code" title="FIPS county code">FIPS county code</a> (FIPS 6-4)</li> <li><a href="/wiki/Federal_Information_Processing_Standard_state_code" title="Federal Information Processing Standard state code">FIPS state code</a> (FIPS 5-2)</li> <li><a href="/wiki/Nomenclature_of_Territorial_Units_for_Statistics" title="Nomenclature of Territorial Units for Statistics">NUTS</a> (EU)</li> <li><a href="/wiki/GSS_coding_system" title="GSS coding system">GSS codes</a> (United Kingdom)</li> <li><a href="/wiki/MARC_standards" title="MARC standards">MARC country codes</a></li> <li><a href="/wiki/Standard_Geographical_Classification_code_(Canada)" title="Standard Geographical Classification code (Canada)">SGC codes</a> (Canada)</li> <li><a href="/wiki/UN_M49" title="UN M49">UN M.49</a> (UN)</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Airport_code" title="Airport code">Airport codes</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/IATA_airport_code" title="IATA airport code">IATA airport code</a></li> <li><a href="/wiki/ICAO_airport_code" title="ICAO airport code">ICAO airport code</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Country_code" title="Country code">Country codes</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Country_code_top-level_domain" title="Country code top-level domain">IANA country code</a></li> <li><a href="/wiki/ISO_3166-1" title="ISO 3166-1">ISO 3166-1</a> <ul><li><a href="/wiki/ISO_3166-1_alpha-2" title="ISO 3166-1 alpha-2">alpha-2</a></li> <li><a href="/wiki/ISO_3166-1_alpha-3" title="ISO 3166-1 alpha-3">alpha-3</a></li> <li><a href="/wiki/ISO_3166-1_numeric" title="ISO 3166-1 numeric">numeric</a></li></ul></li> <li><a href="/wiki/List_of_aircraft_registration_prefixes" title="List of aircraft registration prefixes">Aircraft prefixes</a></li> <li><a href="/wiki/List_of_IOC_country_codes" title="List of IOC country codes">IOC country code</a></li> <li><a href="/wiki/List_of_FIFA_country_codes" title="List of FIFA country codes">FIFA country code</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Geodesic" title="Geodesic">Geodesic</a><br />place codes</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Discrete_global_grid" title="Discrete global grid">Global</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/C-squares" title="C-squares">C-squares</a></li> <li><a class="mw-selflink selflink">Geohash</a></li> <li><a href="/wiki/Geohash-36" title="Geohash-36">Geohash-36</a></li> <li><a href="/wiki/World_Geographic_Reference_System" title="World Geographic Reference System">GEOREF</a></li> <li><a href="/wiki/International_Map_of_the_World" title="International Map of the World">International Map of the World</a> indexing system</li> <li><a href="/wiki/Mapcode" title="Mapcode">Mapcode</a></li> <li><a href="/wiki/Marsden_square" title="Marsden square">Marsden square</a></li> <li><a href="/wiki/Military_Grid_Reference_System" title="Military Grid Reference System">Military Grid Reference System</a></li> <li><a href="/wiki/Natural_Area_Code" title="Natural Area Code">Natural Area Code</a></li> <li><a href="/wiki/Open_Location_Code" title="Open Location Code">Open Location Code</a></li> <li><a href="/wiki/QDGC" title="QDGC">QDGC</a></li> <li><a href="/wiki/UN/LOCODE" title="UN/LOCODE">UN/LOCODE</a></li> <li><a href="/wiki/Universal_Transverse_Mercator_coordinate_system" title="Universal Transverse Mercator coordinate system">UTM</a></li> <li><a href="/wiki/What3words" title="What3words">what3words</a></li> <li><a href="/wiki/World_Meteorological_Organization_squares" title="World Meteorological Organization squares">WMO squares</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Regional</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ICES_Statistical_Rectangles" title="ICES Statistical Rectangles">ICES Statistical Rectangles</a> (north-east Atlantic region)</li> <li><a href="/wiki/Irish_grid_reference_system" title="Irish grid reference system">Irish grid reference system</a></li> <li><a href="/wiki/National_Topographic_System" title="National Topographic System">National Topographic System</a> (Canada)</li> <li><a href="/wiki/Ordnance_Survey_National_Grid" title="Ordnance Survey National Grid">Ordnance Survey National Grid</a> (UK)</li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Postal_code" title="Postal code">Postal codes</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Postcodes_in_Australia" title="Postcodes in Australia">Australian post codes</a></li> <li><a href="/wiki/C%C3%B3digo_de_Endere%C3%A7amento_Postal" title="Código de Endereçamento Postal">CEP</a> (Brazil)</li> <li><a href="/wiki/Eircode" class="mw-redirect" title="Eircode">Eircodes</a> (Republic of Ireland)</li> <li><a href="/wiki/Postcodes_in_New_Zealand" title="Postcodes in New Zealand">New Zealand post codes</a></li> <li><a href="/wiki/Postal_Index_Number" title="Postal Index Number">Postal Index Number</a> (India)</li> <li><a href="/wiki/UK_post_codes" class="mw-redirect" title="UK post codes">United Kingdom post codes</a></li> <li><a href="/wiki/ZIP_Code" title="ZIP Code">ZIP Code</a> (United States)</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Telephony" title="Telephony">Telephony</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/List_of_ITU_letter_codes" title="List of ITU letter codes">ITU-R country codes</a></li> <li><a href="/wiki/List_of_country_calling_codes" title="List of country calling codes">ITU-T country calling codes</a></li> <li><a href="/wiki/Mobile_country_code" title="Mobile country code">ITU-T mobile calling codes</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Amateur_radio" title="Amateur radio">Amateur radio</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Maidenhead_Locator_System" title="Maidenhead Locator System">Maidenhead Locator System</a></li> <li>Historical : <a href="/wiki/QRA_locator" title="QRA locator">QRA locator</a></li></ul> </div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐f69cdc8f6‐5w7wd Cached time: 20241122143408 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.406 seconds Real time usage: 0.620 seconds Preprocessor visited node count: 1387/1000000 Post‐expand include size: 31629/2097152 bytes Template argument size: 714/2097152 bytes Highest expansion depth: 8/100 Expensive parser function count: 3/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 39541/5000000 bytes Lua time usage: 0.226/10.000 seconds Lua memory usage: 6238979/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 441.493 1 -total 33.12% 146.219 1 Template:Reflist 21.63% 95.515 1 Template:Geocoding-systems 20.74% 91.549 2 Template:Navbox 20.39% 90.017 1 Template:Cite_thesis 17.28% 76.269 1 Template:Short_description 10.45% 46.116 2 Template:Pagetype 7.71% 34.052 8 Template:Cvt 6.28% 27.711 1 Template:Official_website 5.79% 25.565 1 Template:About --> <!-- Saved in parser cache with key enwiki:pcache:idhash:15974212-0!canonical and timestamp 20241122143408 and revision id 1256966629. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Geohash&oldid=1256966629">https://en.wikipedia.org/w/index.php?title=Geohash&oldid=1256966629</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Geographic_coordinate_systems" title="Category:Geographic coordinate systems">Geographic coordinate systems</a></li><li><a href="/wiki/Category:Geocodes" title="Category:Geocodes">Geocodes</a></li><li><a href="/wiki/Category:2008_introductions" title="Category:2008 introductions">2008 introductions</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Webarchive_template_wayback_links" title="Category:Webarchive template wayback links">Webarchive template wayback links</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_is_different_from_Wikidata" title="Category:Short description is different from Wikidata">Short description is different from Wikidata</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 12 November 2024, at 13:44<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Geohash&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-zrkgv","wgBackendResponseTime":164,"wgPageParseReport":{"limitreport":{"cputime":"0.406","walltime":"0.620","ppvisitednodes":{"value":1387,"limit":1000000},"postexpandincludesize":{"value":31629,"limit":2097152},"templateargumentsize":{"value":714,"limit":2097152},"expansiondepth":{"value":8,"limit":100},"expensivefunctioncount":{"value":3,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":39541,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 441.493 1 -total"," 33.12% 146.219 1 Template:Reflist"," 21.63% 95.515 1 Template:Geocoding-systems"," 20.74% 91.549 2 Template:Navbox"," 20.39% 90.017 1 Template:Cite_thesis"," 17.28% 76.269 1 Template:Short_description"," 10.45% 46.116 2 Template:Pagetype"," 7.71% 34.052 8 Template:Cvt"," 6.28% 27.711 1 Template:Official_website"," 5.79% 25.565 1 Template:About"]},"scribunto":{"limitreport-timeusage":{"value":"0.226","limit":"10.000"},"limitreport-memusage":{"value":6238979,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-5w7wd","timestamp":"20241122143408","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Geohash","url":"https:\/\/en.wikipedia.org\/wiki\/Geohash","sameAs":"http:\/\/www.wikidata.org\/entity\/Q3101207","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q3101207","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2008-02-26T23:35:49Z","dateModified":"2024-11-12T13:44:30Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/3\/3d\/Geohash-grid.png","headline":"A similarity-hashing function invented in 2008, specific for geographic coordinates compressing or for location clustering"}</script> </body> </html>