Specialized APIsHyper Precise Location

Getting Started with Hyper Precise Location

Getting Started

Hyper Precise Location Coverage Maps

https://thingspace.verizon.com/resources/support/coverage-map/

Unselect LTE and LTE-M layers to show RTK and DGNSS coverage.

Hyper Precise Location coverage is updated frequently as deployment expands

Access and Tokens

Our security policies require that you have different sets of credentials to access different parts of the ThingSpace Platform and APIs.

If you haven't already obtained the access tokens you can click here to follow the guide on How to Obtain Tokens

To learn all the details about credentials and tokens you can click here to view the Credentials and Tokens section

In order for getting the Hyper Precise Location Service, the device (client) has to get authenticated with the OAuth 2.0 server and obtain a bearer token and URL for the Hyper Precise Location Server. For mutual authentication, the device and OAuth server use Mutual Transport Layer Security (MTLS). The device and OAuth server confirm to RCF 6749.

Device vendors can obtain signed X.509 certificates from any of the known Certificate Authorities (CA), such as DigiCert, Commodo, GoDaddy, etc.

Client Authentication using Mutual Transport Layer Security (MTLS)

Clients can be authenticated using MTLS. A new scope will be defined for each client that wants to get authenticated via this path.

The information for client authentication using MTLS for the Hyper Precise Location service:

ValueDescription
URLhttps://auth.thingspace.verizon.com/oauth2/token
MethodPOST
URL ParametersNone
Request Examplecurl -X 'POST' -d 'grant_type=client_credentials&scope=ts.bullseye&client_id={IMEI}' -H 'Content-Type: application/x-www-form-urlencoded' 'https://auth.thingspace.verizon.com/oauth2/token' --cert {CLIENT_CERT} --key {CLIENT_KEY}
Response Code and ContentResponse Code: 200 OK Content:“access_token”: “{token}", “expires_in”: 86400, “scope”: “ts.bullseye”, “server_address”: “http://random.bullseye.server.url.com:1234”, “token_type”: “bearer” }

Response Parameters

If an Access Token request is successful and authorized, the Auth service will return an access token and an optional refresh token as described in RFC 6749 Section 5.1. The response will be a JSON object with the following properties:

ParameterDescription
access_token
required
The Access Token created by Auth Service. This is required to make User Services API calls.
token_type
required
Specifies the type of token. bearer is currently the only valid value.
expires_inSpecifies the lifetime, in seconds, of the Access Token.
scope
required
Specifies the scope requested by the client.
server_addressSpecifies the address of the server for further communication using the Access Token

For more information on the code and token response_type, see RFC 6749 Section 4.1 and Section 4.2

Setting a Reply Path

Once all devices are activated, a GET /caster request needs to be sent with current location data to be corrected.

curl -v -H 'Authorization: Bearer {bearer token}' -H 'Ntrip-Version: Ntrip/2.0' -H 'Ntrip-GGA: {GPGGA data}' http://caas.hyperlocation.io:2100/CASTER --output -
*   Trying 34.215.0.140...
* TCP_NODELAY set
* Connected to caas.hyperlocation.io (34.215.0.140) port 2100 (#0)
> GET /CASTER HTTP/1.1
> Host: caas.hyperlocation.io:2100
> User-Agent: curl/7.64.1
> Accept: */*
> Authorization: Bearer {bearer token}
> Ntrip-Version: Ntrip/2.0
> Ntrip-GGA: {GPGGA data}

Successful request:

< HTTP/1.1 200 OK
< Connection: keep-alive
< Content-Type: gnss/data
< no chunk, no close, no size. Assume close to signal end

Failed request:

< HTTP/1.1 401 Unauthorized
< Connection: close
< WWW-Authenticate: Basic realm="Secure Area"
< Date: Mon, 19 Apr 2021 19:26:36 GMT
< Content-Length: 41
<
* Closing connection 0

Getting GPGGA Data

This is the device's current location (GPS) information needing correction and it conforms to the NMEA 0183 standard.

The GPGGA data is generated by the software being used and examples of output and more information can be found in the Wikipedia page about NMEA 0183.

The GPGGA data is a string of 16 comma seperated values (with a line feed or carriage return at the end as the 17th character) or a "Sentence". An example looks like this:

$GNGGA,150322.00,3256.78980,N,09649.10378,W,1,12,0.93,209.0,M,-25.2,M,,,*7E

PositionStructureDescriptionFormatExample
1$GNGGALog Headern/a$GNGGA
2utcUTC time status of position (hours/minutes/seconds/ decimal seconds)hhmmss.ss150322.00
3latLatitude (decimal degrees: DDmm.mm)numeric3256.78980
4lat dirLatitude direction (N = North, S = South)Single alpha characterN
5lonLongitude (decimal degrees: DDDmm.mm)numeric09649.10378
6lon dirLongitude direction (E = East, W = West)Single alpha characterW
7qualityGPS Quality Indicator. See the "Quality Indicator" table belownumeric1
8# satsNumber of satellites in use. May be different to the number in viewnumeric12
9hdopHorizontal dilution of precisionnumeric0.93
10altAntenna altitude above/below mean sea levelnumeric209.0
11a-unitsUnits of antenna altitude (M = meters)Single alpha characterM
12undulationUndulation - the relationship between the geoid and the WGS84 ellipsoidnumeric-25.2
13u-unitsUnits of undulation (M = meters)Single alpha characterM
14ageAge of correction data (in seconds) The maximum age reported here is limited to 99 seconds.numeric(empty when no differential data is present)
15stn IDDifferential base station IDnumeric(empty when no differential data is present)
16*xxCheck sum*hh*7E
17[CR][lf]Sentence terminator (Carriage Return or Line Feed)n/a[CR][lf]

Quality Indicator

IndicatorDescription
0Fix not available or invalid
1Single point
2Pseudorange differential
4RTK fixed ambiguity solution
5RTK floating ambiguity solution
6Dead reckoning mode
7Manual input mode (fixed position)
8Simulator mode
9Wide Area Augmentation System (WAAS) This is the United Sates standard of the regional Satellite-based Augmentation Systems (SBAS)

On this page