Beantwoord

# Calculate Geo Coordinates

• 3 reacties
• 763 keer bekeken • Nieuwkomer
• 2 reacties
To calculate the coordinates of the LoRaMote the following calculation is needed:

Latitude: Byte-Byte, for instance: 4a0d76

Longitude: Byte-Byte, for instance: 031845

To convert the HEX values into usable coordinates you can use the following calculation:

Convert HEX to Decimal.

LAT: 4a0d76 => 4853110

LONG: 031845 => 202821

To convert the decimal value into a usable coordinate you can use the following calculations for the Latitude and Longitude

Latitude: LAT * (90 / 2^23)

For instance: 4853110 * ( 90 / 2^23) = 52,068221569066 =/= 52,068222

Longitude: LONG * (180 / 2^23)

For instance: 202821 * (180 / 2^23) = 4,3520665168762 =/= 4,352067

Now you have the coordinates, which can be used by for instance Google Maps.
icon

Beste antwoord door Remco_Dekkinga 16 september 2015, 10:23

To also support negative coordinates, an extra step is needed between the conversion from HEX to Decimal and the coordinate calculation.

When the decimal coordinate (after converting from HEX) is larger than 2^23, substract 2^24 from the decimal coordinate to make it a negative coordinate.

For instance:

2^23 = 8388608

LAT: B62C45 => 11938885

1193885 is larger than 8388608, which means we need to substract 16777216 from 11938885.

11938885 - 16777216 = -4838331

-4838331 will become -51.909660 using the coordinate calculation.

-4838331 * ( 90 / 2^23) = -51,9096601009368896484375 =/= -51,909660
Bekijk origineel

### 3 reacties Remco , Top!

Little correction With you permission!.

2^32 -> 2^23

Latitude: LAT * (90 / 2^23)

For instance: 4853110 * ( 90 / 2^23) = 52,068221569066 =/= 52,068222

Longitude: LONG * (180 / 2^23)

For instance: 202821 * (180 / 2^23) = 4,3520665168762 =/= 4,352067 I've updated my post with your correction.

Thanks for the info. To also support negative coordinates, an extra step is needed between the conversion from HEX to Decimal and the coordinate calculation.

When the decimal coordinate (after converting from HEX) is larger than 2^23, substract 2^24 from the decimal coordinate to make it a negative coordinate.

For instance:

2^23 = 8388608

LAT: B62C45 => 11938885

1193885 is larger than 8388608, which means we need to substract 16777216 from 11938885.

11938885 - 16777216 = -4838331

-4838331 will become -51.909660 using the coordinate calculation.

-4838331 * ( 90 / 2^23) = -51,9096601009368896484375 =/= -51,909660