Gets the specified GeoKey data from a TIFF file. This function is provided to support GeoKeys that you define.


#include "ltwrappr.h"

L_INT LFile::ReadGeoKey(uTag, puType, puCount, pData, pLoadOptions)


L_UINT16 uTag

GeoKey ID that you set by calling LFile::SetGeoKey function. Values of the GeoKey ID range between 0 and 65535. Possible ranges are:

Range Meaning
0..1023 Do not use; reserved for future use.
1024..2047 GeoTIFF configuration keys.
2048..3071 Geographic/Geocentric CS Parameter Keys.
3072..4095 Projected CS Parameter Keys.
4096..5119 Vertical CS Parameter keys.
5120..32767 Reserved.
32768..65535 Private use to store your own data.

L_UINT *puType

Pointer to a variable to be updated with the GeoKey type. This indicates whether the data pointed to by pData is SHORT, DOUBLE or ASCII. Possible values are:

Value Meaning
TAG_ASCII [2] The data pointed to by pData is an array of ASCII bytes.
TAG_SHORT [3] The data pointed to by pData is an array of SHORT values (2 bytes each).
TAG_DOUBLE [12] The data pointed to by pData is an array of floating points in DOUBLE format (8 bytes each).
TAG_IFD [13] 32-bit IFD offset.
TAG_LONG8 [16] Unsigned 64-bit integer (valid only for BigTIFF formats).
TAG_SLONG8 [17] Signed 64-bit integer (valid only for BigTIFF formats).
TAG_IFD8 [18] 64-bit IFD offset (valid only for BigTIFF formats).

L_UINT *puCount

Pointer to the variable to be updated with the number of items required for the pData buffer. Note that this is not the required number of bytes. The required number of bytes will be (*puCount) * number of bytes per value (1 for ASCII, 2 for SHORT, 8 for DOUBLE).

If pData passed as NOT NULL, this variable will be updated with the count of data items.

L_VOID *pData

Pointer to the buffer to be updated with the data. You can pass NULL if you want to use this function's return value to determine the required buffer size.


Pointer to optional extended load options. Pass NULL to use the default load options.


Value Meaning
SUCCESS The function was successful.
< 1 An error occurred. Refer to Return Codes.


Obtains the GeoKey data from a particular file.

It is often convenient to call this function twice, as follows:

  1. Call the function the first time, passing NULL to the pData parameter, and using the return value to determine the required size of the buffer.
  2. Allocate the buffer.
  3. Call the function the second time, passing a pointer to your buffer in the pData parameter.

The most efficient way of reading the GeoKeys in a file is to enumerate them with LFile::EnumGeoKeys and then read each GeoKey with LFile::ReadGeoKey.

For more information about GeoKeys, refer to Implementing GeoKeys (GeoTIFF tags).

Required DLLs and Libraries


Win32, x64.

See Also




For an example, refer to LFile::WriteGeoKey function.

Help Version 22.0.2023.2.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Raster Imaging C++ Class Library Help