Sync betaflight to Gitea
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
Open Location Code
|
||||
==================
|
||||
|
||||
[](https://travis-ci.org/google/open-location-code)
|
||||
[](https://cdnjs.com/libraries/openlocationcode)
|
||||
|
||||
Open Location Code is a technology that gives a way of encoding location into a form that is
|
||||
easier to use than latitude and longitude. The codes generated are called plus codes, as their
|
||||
distinguishing attribute is that they include a "+" character.
|
||||
|
||||
The technology is designed to produce codes that can be used as a replacement for street addresses, especially
|
||||
in places where buildings aren't numbered or streets aren't named.
|
||||
|
||||
Plus codes represent an area, not a point. As digits are added
|
||||
to a code, the area shrinks, so a long code is more precise than a short
|
||||
code.
|
||||
|
||||
Codes that are similar are located closer together than codes that are
|
||||
different.
|
||||
|
||||
A location can be converted into a code, and a code can be converted back
|
||||
to a location completely offline.
|
||||
|
||||
There are no data tables to lookup or online services required. The
|
||||
algorithm is publicly available and can be used without restriction.
|
||||
|
||||
Links
|
||||
-----
|
||||
* [Demonstration site](http://plus.codes/)
|
||||
* [Mailing list](https://groups.google.com/forum/#!forum/open-location-code)
|
||||
* [Comparison of existing location encoding systems](https://github.com/google/open-location-code/wiki/Evaluation-of-Location-Encoding-Systems)
|
||||
* [Open Location Code definition](https://github.com/google/open-location-code/blob/master/docs/olc_definition.adoc)
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
Codes are made up of a sequence of digits chosen from a set of 20. The
|
||||
digits in the code alternate between latitude and longitude. The first
|
||||
four digits describe a one degree latitude by one degree longitude
|
||||
area, aligned on degrees. Adding two further digits to the code,
|
||||
reduces the area to 1/20th of a degree by 1/20th of a degree within the
|
||||
previous area. And so on - each pair of digits reduces the area to
|
||||
1/400th of the previous area.
|
||||
|
||||
As an example, the Parliament Buildings in Nairobi, Kenya are located at
|
||||
6GCRPR6C+24. 6GCR is the area from 2S 36E to 1S 37E. PR6C+24 is a 14 meter
|
||||
wide by 14 meter high area within 6GCR.
|
||||
|
||||
A "+" character is used after eight digits, to break the code up into two parts
|
||||
and to distinguish codes from postal codes.
|
||||
|
||||
There will be locations where a 10 digit code is not sufficiently precise, but
|
||||
refining it by a factor of 20 is i) unnecessarily precise and ii) requires extending
|
||||
the code by two digits. Instead, after 10 digits, the area is divided
|
||||
into a 4x5 grid and a single digit used to identify the grid square. A single
|
||||
grid refinement step reduces the area to approximately 3.5x2.8 meters.
|
||||
|
||||
Codes can be shortened relative to a location. This reduces the number of digits
|
||||
that must be remembered, by using a location to identify an approximate area,
|
||||
and then generating the nearest matching code. Shortening a code, if possible,
|
||||
will drop four or more digits from the start of the code. The degree to which a
|
||||
code can be shortened depends on the proximity of the reference location.
|
||||
|
||||
If the reference location is derived from a town or city name, it is dependent
|
||||
on the accuracy of the geocoding service. Although one service may place
|
||||
"Zurich" close to the Google office, another may move it by a hundred meters or
|
||||
more, and this could be enough to prevent the original code being recovered.
|
||||
Rather than a large city size feature to generate the reference location, it is
|
||||
better to use smaller, neighbourhood features, that will not have as much
|
||||
variation in their geocode results.
|
||||
|
||||
Guidelines for shortening codes are in the [wiki](https://github.com/google/open-location-code/wiki).
|
||||
|
||||
Recovering shortened codes works by providing the short code and a reference
|
||||
location. This does not need to be the same as the location used to shorten the
|
||||
code, but it does need to be nearby. Shortened codes always include the "+"
|
||||
character so it is simple to compute the missing component.
|
||||
|
||||
* 8F+GG is missing six leading characters
|
||||
* 6C8F+GG is missing four leading characters
|
||||
|
||||
Example Code
|
||||
------------
|
||||
|
||||
The subdirectories contain sample implementations and tests for different
|
||||
languages. Each implementation provides the following functions:
|
||||
|
||||
* Test a code to see if it is a valid sequence
|
||||
* Test a code to see if it is a valid full code
|
||||
Not all valid sequences are valid full codes
|
||||
* Encode a latitude and longitude to a standard accuracy
|
||||
(14 meter by 14 meter) code
|
||||
* Encode a latitude and longitude to a code of any length
|
||||
* Decode a code to its coordinates: low, high and center
|
||||
* Shorten a full code relative to a location
|
||||
* Extend a short code relative to a location
|
||||
Reference in New Issue
Block a user