{
  "id": "plus_code",
  "name": "Plus Code (Open Location Code)",
  "status": "draft",
  "doc": "Full Plus Code of the Open Location Code system published by Google, which encodes a WGS84 latitude and longitude as a grid cell. It uses 20 symbols (23456789CFGHJMPQRVWX): eight digits, the separator +, and usually two or more digits after it; a ten-digit code is a cell of about 14 by 14 metres. Shorter codes pad the eight positions before the separator with pairs of 0 and end with +. The first digit encodes latitude and the second longitude, which limits them to 2-9 and C, and to 2-9 and C-V. Codes are case-insensitive. Shortened codes that need a reference place are the pattern plus_code_short.",
  "categories": [
    {
      "id": "geo",
      "name": "Geographic identifiers"
    }
  ],
  "langs": [
    {
      "id": "common",
      "name": "Common to most languages"
    }
  ],
  "is_pii": false,
  "classification": "identifier",
  "regexp": "^[2-9Cc][2-9CFGHJMPQRVcfghjmpqrv](?:000000\\+|[2-9CFGHJMPQRVWXcfghjmpqrvwx]{2}(?:0000\\+|[2-9CFGHJMPQRVWXcfghjmpqrvwx]{2}(?:00\\+|[2-9CFGHJMPQRVWXcfghjmpqrvwx]{2}\\+(?:[2-9CFGHJMPQRVWXcfghjmpqrvwx]{2,})?)))$",
  "examples": [
    {
      "value": "8FVC9G8F+6W",
      "description": "Example from the specification, centre 47.365562,8.524813 (Zurich)"
    },
    {
      "value": "796RWF8Q+WF",
      "description": "Example from the specification (Praia)"
    },
    {
      "value": "8FWCX400+",
      "description": "Padded code from the reference validity tests"
    },
    {
      "value": "849VGJQF+VX7QR3J",
      "description": "Fifteen-digit code from the reference validity tests"
    },
    {
      "value": "8FWC2345+G",
      "valid": false,
      "description": "One digit after the separator"
    },
    {
      "value": "84900000+",
      "valid": false,
      "description": "Padding must come in pairs"
    },
    {
      "value": "9G8F+6W",
      "valid": false,
      "description": "Short code: the pattern plus_code_short"
    }
  ],
  "links": [
    {
      "type": "doc",
      "url": "https://github.com/google/open-location-code/blob/main/Documentation/Specification/specification.md"
    },
    {
      "type": "other",
      "url": "https://github.com/google/open-location-code/blob/main/test_data/validityTests.csv"
    },
    {
      "type": "wikipedia",
      "url": "https://en.wikipedia.org/wiki/Open_Location_Code"
    }
  ],
  "type": "datatype",
  "translations": {},
  "patterns": [
    {
      "id": "plus_code_short",
      "name": "Short Plus Code (Open Location Code)",
      "status": "draft",
      "doc": "Plus Code with leading digits removed, which is decoded relative to a reference location, often a town written after it (WF8Q+WF Praia). Digits are removed in pairs and only while the reference is close enough to recover the full code (plus_code). The specification describes removing two to six digits; the test data of the reference implementations also removes all eight (+2VX). Short codes keep the separator + and cannot contain padding. Short codes with nothing after the separator, such as 22+, are valid but not covered, because they look like ordinary text.",
      "semantic_type": "plus_code",
      "langs": [
        {
          "id": "common",
          "name": "Common to most languages"
        }
      ],
      "regexp": "^(?:[2-9CFGHJMPQRVWXcfghjmpqrvwx]{2}){0,3}\\+[2-9CFGHJMPQRVWXcfghjmpqrvwx]{2,}$",
      "examples": [
        {
          "value": "9G8F+6W",
          "description": "8FVC9G8F+6W shortened near Zurich (specification)"
        },
        {
          "value": "8F+6W",
          "description": "The same code shortened closer to its centre (specification)"
        },
        {
          "value": "WF8Q+WF",
          "description": "796RWF8Q+WF shortened for Praia (specification)"
        },
        {
          "value": "WC2345+G6g",
          "description": "Mixed case, from the reference validity tests"
        },
        {
          "value": "+2VX",
          "description": "9C3W9QCJ+2VX with all eight digits removed (reference short code tests)"
        },
        {
          "value": "WC2300+G6g",
          "valid": false,
          "description": "Short codes cannot contain padding"
        },
        {
          "value": "WC2345+G",
          "valid": false,
          "description": "One digit after the separator"
        },
        {
          "value": "8FVC9G8F+6W",
          "valid": false,
          "description": "Full code: the datatype plus_code"
        }
      ],
      "links": [
        {
          "type": "doc",
          "url": "https://github.com/google/open-location-code/blob/main/Documentation/Specification/specification.md"
        },
        {
          "type": "other",
          "url": "https://github.com/google/open-location-code/blob/main/test_data/validityTests.csv"
        },
        {
          "type": "other",
          "url": "https://github.com/google/open-location-code/blob/main/test_data/shortCodeTests.csv"
        }
      ],
      "type": "pattern",
      "is_pii": false,
      "categories": [
        {
          "id": "geo",
          "name": "Geographic identifiers"
        }
      ],
      "classification": "identifier",
      "translations": {}
    }
  ]
}