{"id":27019314,"url":"https://github.com/opencagedata/perl-geo-what3words","last_synced_at":"2025-10-24T00:24:02.535Z","repository":{"id":18999600,"uuid":"22221792","full_name":"OpenCageData/perl-Geo-What3Words","owner":"OpenCageData","description":"Perl module to access the what3words.com HTTPS API","archived":false,"fork":false,"pushed_at":"2024-06-17T18:54:55.000Z","size":114,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-07-28T22:42:15.451Z","etag":null,"topics":["perl","what3words"],"latest_commit_sha":null,"homepage":"https://metacpan.org/pod/Geo::What3Words","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenCageData.png","metadata":{"files":{"readme":"README.mkdn","changelog":"CHANGES","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-07-24T16:59:33.000Z","updated_at":"2024-06-17T18:54:58.000Z","dependencies_parsed_at":"2024-06-17T20:42:59.191Z","dependency_job_id":"839982e9-bc57-4b6f-9545-ca0f00c24692","html_url":"https://github.com/OpenCageData/perl-Geo-What3Words","commit_stats":{"total_commits":91,"total_committers":6,"mean_commits":"15.166666666666666","dds":0.4945054945054945,"last_synced_commit":"e2bc3e4fa88b3e67b23cdf1d01107932e6c5c7bb"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/OpenCageData/perl-Geo-What3Words","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCageData%2Fperl-Geo-What3Words","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCageData%2Fperl-Geo-What3Words/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCageData%2Fperl-Geo-What3Words/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCageData%2Fperl-Geo-What3Words/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenCageData","download_url":"https://codeload.github.com/OpenCageData/perl-Geo-What3Words/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCageData%2Fperl-Geo-What3Words/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271809032,"owners_count":24825633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-24T02:00:11.135Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["perl","what3words"],"created_at":"2025-04-04T17:27:11.585Z","updated_at":"2025-10-24T00:23:57.516Z","avatar_url":"https://github.com/OpenCageData.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NAME\n\nGeo::What3Words - turn WGS84 coordinates into three word addresses and vice-versa using what3words.com HTTPS API\n\n[![Build Tests](https://github.com/OpenCageData/perl-Geo-What3Words/actions/workflows/ci.yml/badge.svg)](https://github.com/OpenCageData/perl-Geo-What3Words/actions/workflows/ci.yml)[![CPAN](https://img.shields.io/cpan/v/Geo-What3Words.svg?style=flat-square)](https://metacpan.org/pod/Geo::What3Words)\n![Mastodon Follow](https://img.shields.io/mastodon/follow/109287663468501769?domain=https%3A%2F%2Fen.osm.town%2F\u0026style=social)\n\n\n# VERSION\n\nversion 3.0.3\n\n# SYNOPSIS\n\n    my $w3w = Geo::What3Words-\u003enew();\n\n    $w3w-\u003epos2words('51.484463,-0.195405');\n    # returns 'three.example.words'\n\n    $w3w-\u003epos2words('51.484463,-0.195405', 'ru');\n    # returns 'три.пример.слова'\n\n    $w3w-\u003ewords2pos('three.example.words');\n    # returns '51.484463,-0.195405' (latitude,longitude)\n\n# DESCRIPTION\n\nwhat3words (http://what3words.com/) divides the world into 57 trillion squares\nof 3 metres x 3 metres. Each square has been given a 3 word address comprised\nof 3 words from the dictionary.\n\nThis module calls API version 3 (https://docs.what3words.com/public-api/) \nto convert coordinates into 3 word addresses (forward) and 3 \nwords into coordinates (reverse).\n\nVersions 1 and 2 are deprecated and are no longer supported.\n\nYou need to sign up at http://what3words.com/login and then register for \nan API key at https://developer.what3words.com\n\n# METHODS\n\n## new\n\nCreates a new instance. The api key is required.\n\n    my $w3w = Geo::What3Words-\u003enew( key =\u003e 'your-api-key' );\n    my $w3w = Geo::What3Words-\u003enew( key =\u003e 'your-api-key', language =\u003e 'ru' );\n\nFor debugging you can either set logging or provide a callback.\n\n    my $w3w = Geo::What3Words-\u003enew( key =\u003e 'your-api-key', logging =\u003e 1 );\n    # will print debugging output to STDOUT\n\n    my $callback = sub { my $msg = shift; $my_log4perl_logger-\u003einfo($msg) };\n    my $w3w = Geo::What3Words-\u003enew( key =\u003e 'your-api-key', logging =\u003e $callback );\n    # will log with log4perl.\n\n## ping\n\nCheck if the remote server is available. This is helpful for debugging or\ntesting, but too slow to run for every conversion.\n\n    $w3w-\u003eping();\n\n## words2pos\n\nTiny wrapper around words\\_to\\_position.\n\n    $w3w-\u003ewords2pos('three.example.words');\n    # returns '51.484463,-0.195405' (latitude,longitude)\n\n    $w3w-\u003ewords2pos('does.not.exist');\n    # returns undef\n\n## pos2words\n\nTiny wrapper around position\\_to\\_words.\n\n    $w3w-\u003epos2words('51.484463,-0.195405'); # latitude,longitude\n    # returns 'three.example.words'\n\n    $w3w-\u003epos2words('51.484463,-0.195405', 'ru');\n    # returns 'три.пример.слова'\n\n    $w3w-\u003epos2words('invalid,coords');\n    # returns undef\n\n## valid\\_words\\_format\n\nReturns 1 if the string looks like three words, 0 otherwise. Does\nnot call the remote API.\n\n    $w3w-\u003evalid_words_format('one.two.three');\n    # returns 1\n\n## words\\_to\\_position\n\nReturns a more verbose response than words2pos.\n\n    $w3w-\u003ewords_to_position('prom.cape.pump');\n    # {\n    #        'coordinates' =\u003e {\n    #                           'lat' =\u003e '51.484463',\n    #                           'lng' =\u003e '-0.195405'\n    #                         },\n    #        'country' =\u003e 'GB',\n    #        'language' =\u003e 'en',\n    #        'map' =\u003e 'https://w3w.co/prom.cape.pump',\n    #        'nearestPlace' =\u003e 'Kensington, London',\n    #        'square' =\u003e {\n    #                      'northeast' =\u003e {\n    #                                       'lat' =\u003e '51.484476',\n    #                                       'lng' =\u003e '-0.195383'\n    #                                     },\n    #                      'southwest' =\u003e {\n    #                                       'lat' =\u003e '51.484449',\n    #                                       'lng' =\u003e '-0.195426'\n    #                                     }\n    #                    },\n    #        'words' =\u003e 'prom.cape.pump'\n    #      };\n\n## position\\_to\\_words\n\nReturns a more verbose response than pos2words.\n\n    $w3w-\u003eposition_to_words('51.484463,-0.195405')\n\n    # {\n    #        'coordinates' =\u003e {\n    #                           'lat' =\u003e '51.484463',\n    #                           'lng' =\u003e '-0.195405'\n    #                         },\n    #        'country' =\u003e 'GB',\n    #        'language' =\u003e 'en',\n    #        'map' =\u003e 'https://w3w.co/prom.cape.pump',\n    #        'nearestPlace' =\u003e 'Kensington, London',\n    #        'square' =\u003e {\n    #                      'northeast' =\u003e {\n    #                                       'lat' =\u003e '51.484476',\n    #                                       'lng' =\u003e '-0.195383'\n    #                                     },\n    #                      'southwest' =\u003e {\n    #                                       'lat' =\u003e '51.484449',\n    #                                       'lng' =\u003e '-0.195426'\n    #                                     }\n    #                    },\n    #        'words' =\u003e 'prom.cape.pump'\n    #      };\n\n## get\\_languages\n\nRetuns a list of language codes and names.\n\n    $w3w-\u003eget_languages();\n    # {\n    #     'languages' =\u003e [\n    #                      {\n    #                        'name' =\u003e 'German',\n    #                        'nativeName' =\u003e 'Deutsch',\n    #                        'code' =\u003e 'de'\n    #                      },\n    #                      {\n    #                        'name' =\u003e 'English',\n    #                        'nativeName' =\u003e 'English',\n    #                        'code' =\u003e 'en'\n    #                      },\n    #                      {\n    #                        'name' =\u003e \"Spanish\",\n    #                        'nativeName' =\u003e \"Español\",\n    #                        'code' =\u003e 'es'\n    #                      },\n    # ...\n\n# INSTALLATION\n\nThe test suite will use pre-recorded API responses. If you suspect something\nchanged in the API you can force the test suite to use live requests with\nyour API key\n\n    PERLLIB=./lib W3W_RECORD_REQUESTS=1 W3W_API_KEY=\u003cyour key\u003e perl t/base.t\n\n# AUTHOR\n\nmtmail \u003cmtmail-cpan@gmx.net\u003e\n\n# COPYRIGHT AND LICENSE\n\nThis software is copyright (c) 2021 by OpenCage GmbH.\n\nThis is free software; you can redistribute it and/or modify it under\nthe same terms as the Perl 5 programming language system itself.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopencagedata%2Fperl-geo-what3words","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopencagedata%2Fperl-geo-what3words","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopencagedata%2Fperl-geo-what3words/lists"}