←Select platform

GeoKeys Property

Summary

The collection of GeoKeys used when reading and writing Geo TIFF files.

Syntax
C#
VB
Objective-C
C++
Java
public ObservableCollection<RasterTagMetadata> GeoKeys { get; } 
Public ReadOnly Property GeoKeys As ObservableCollection(Of RasterTagMetadata) 
@property (nonatomic, assign, readonly, nullable) NSMutableArray<LTRasterTagMetadata *> *geoKeys; 
public List<RasterTagMetadata> getGeoKeys() 
public: 
property ObservableCollection<RasterTagMetadata^>^ GeoKeys { 
   ObservableCollection<RasterTagMetadata^>^ get(); 
} 

Property Value

A collection of RasterTagMetadata GeoKeys used when reading and writing Geo TIFF files.

Remarks

GeoTIFF files are TIFF files containing a few extra TIFF tags describing the image location, scale at which the picture was taken and many other information useful for topographic applications.

Any GeoTIFF file that you save will include the GeoKey data set until you clear the GeoKey data. To save this data to a file, save RasterImageFormat.GeoTiff files.

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

To write the GeoKey data directly to an existing file, call RasterCodecs.WriteGeoKey. Note that LEADTOOLS does not verify the validity of the GeoKeys that you set. It is your responsibility to make sure you write correct values according to the GeoTIFF specification.

You can manipulate the GeoKeys of an image by adding/removing RasterTagMetadata objects to this collection.

By setting the CodecsSaveOptions.GeoKeys property to true before calling RasterCodecs.Save, you can save the GeoKeys in this collection when the image is saved into a file.

By setting the CodecsLoadOptions.Markers property to true before calling RasterCodecs.Load, you can load all the markers (if any) into this collection when an image is loaded from a file.

You can use the RasterCodecs.WriteGeoKeys method to save GeoKeys tags directly to an existing file and the RasterCodecs.EnumGeoKeys to load the GeoKeys stored in an existing file.

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

For more information, refer to Non Image Data.

Example
C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Core; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Dicom; 
using Leadtools.Drawing; 
using Leadtools.Controls; 
using LeadtoolsExamples.Common; 
using Leadtools.Svg; 
 
private void DisplayGeoKey(RasterTagMetadata key) 
{ 
   switch (key.DataType) 
   { 
      case RasterTagMetadataDataType.Ascii: 
         MessageBox.Show("Key " + key.Id.ToString() + " = " + key.ToAscii()); 
         break; 
      case RasterTagMetadataDataType.Byte: 
         MessageBox.Show("Key " + key.Id.ToString() + " = " + key.ToByte()[0].ToString()); 
         break; 
   } 
} 
public void GeoKeysExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
   RasterImage image = codecs.Load(Path.Combine(ImagesPath.Path, "IMAGE1.CMP")); 
 
   // Ascii 
   RasterTagMetadata keyDataAscii = new RasterTagMetadata(); 
   // set the GTCitationGeoKey key, for more info, refer to the Geo TIFF spec. 
   keyDataAscii.Id = 1026; 
   keyDataAscii.DataType = RasterTagMetadataDataType.Ascii; 
   keyDataAscii.FromAscii("Test String"); 
   image.GeoKeys.Add(keyDataAscii); 
 
   codecs.Options.Save.GeoKeys = true; 
   codecs.Save(image, Path.Combine(ImagesPath.Path, "IMAGE1_GEOKEY.TIF"), RasterImageFormat.GeoTiff, 0); 
 
   // load the GeoKeys together with the image 
   RasterTagMetadata key = codecs.ReadGeoKey(Path.Combine(ImagesPath.Path, "IMAGE1_GEOKEY.TIF"), 1, keyDataAscii.Id); 
   DisplayGeoKey(key); 
 
   codecs.Dispose(); 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Core 
Imports Leadtools.ImageProcessing.Color 
Imports Leadtools.Controls 
Imports Leadtools.Dicom 
Imports Leadtools.Drawing 
Imports Leadtools.Svg 
 
Private Sub DisplayGeoKey(ByVal key As RasterTagMetadata) 
   Select Case key.DataType 
      Case RasterTagMetadataDataType.Ascii 
         MessageBox.Show("Key " & key.Id.ToString() & " = " & key.ToAscii()) 
      Case RasterTagMetadataDataType.Byte 
         MessageBox.Show("Key " & key.Id.ToString() & " = " & key.ToByte()(0).ToString()) 
   End Select 
End Sub 
Public Sub GeoKeysExample() 
   Dim codecs As RasterCodecs = New RasterCodecs() 
   Dim image As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1.CMP")) 
 
   ' Ascii 
   Dim keyDataAscii As RasterTagMetadata = New RasterTagMetadata() 
   ' set the GTCitationGeoKey key, for more info, refer to the Geo TIFF spec. 
   keyDataAscii.Id = 1026 
   keyDataAscii.DataType = RasterTagMetadataDataType.Ascii 
   keyDataAscii.FromAscii("Test String") 
   image.GeoKeys.Add(keyDataAscii) 
 
   codecs.Options.Save.GeoKeys = True 
   codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1_GEOKEY.TIF"), RasterImageFormat.GeoTiff, 0) 
 
   ' load the GeoKeys together with the image 
   Dim key As RasterTagMetadata = codecs.ReadGeoKey(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1_GEOKEY.TIF"), 1, keyDataAscii.Id) 
   DisplayGeoKey(key) 
 
   codecs.Dispose() 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 
c#[Silverlight C# Example] 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Dicom; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Core; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Examples; 
using Leadtools.Windows.Media; 
 
private void DisplayGeoKey(RasterTagMetadata key) 
{ 
   switch (key.DataType) 
   { 
      case RasterTagMetadataDataType.Ascii: 
         Debug.WriteLine("Key " + key.Id.ToString() + " = " + key.ToAscii()); 
         break; 
      case RasterTagMetadataDataType.Byte: 
         Debug.WriteLine("Key " + key.Id.ToString() + " = " + key.ToByte()[0].ToString()); 
         break; 
   } 
} 
public void GeoKeysExample(RasterImage image, Stream destStream) 
{ 
   // Ascii 
   RasterTagMetadata keyDataAscii = new RasterTagMetadata(); 
   // set the GTCitationGeoKey key, for more info, refer to the Geo TIFF spec. 
   keyDataAscii.Id = 1026; 
   keyDataAscii.DataType = RasterTagMetadataDataType.Ascii; 
   keyDataAscii.FromAscii("Test String"); 
   image.GeoKeys.Add(keyDataAscii); 
 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.Options.Save.GeoKeys = true; 
   codecs.Save(image, destStream, RasterImageFormat.GeoTiff, 0); 
 
   // load the GeoKeys together with the image 
   RasterTagMetadata key = codecs.ReadGeoKey(destStream, 1, keyDataAscii.Id); 
   DisplayGeoKey(key); 
} 
vb[Silverlight VB Example] 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Dicom 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Core 
Imports Leadtools.ImageProcessing.Color 
Imports Leadtools.Windows.Media 
 
Private Sub DisplayGeoKey(ByVal key As RasterTagMetadata) 
   Select Case key.DataType 
      Case RasterTagMetadataDataType.Ascii 
         Debug.WriteLine("Key " & key.Id.ToString() & " = " & key.ToAscii()) 
      Case RasterTagMetadataDataType.Byte 
         Debug.WriteLine("Key " & key.Id.ToString() & " = " & key.ToByte()(0).ToString()) 
   End Select 
End Sub 
Public Sub GeoKeysExample(ByVal image As RasterImage, ByVal destStream As Stream) 
   ' Ascii 
   Dim keyDataAscii As RasterTagMetadata = New RasterTagMetadata() 
   ' set the GTCitationGeoKey key, for more info, refer to the Geo TIFF spec. 
   keyDataAscii.Id = 1026 
   keyDataAscii.DataType = RasterTagMetadataDataType.Ascii 
   keyDataAscii.FromAscii("Test String") 
   image.GeoKeys.Add(keyDataAscii) 
 
   Dim codecs As RasterCodecs = New RasterCodecs() 
   codecs.Options.Save.GeoKeys = True 
   codecs.Save(image, destStream, RasterImageFormat.GeoTiff, 0) 
 
   ' load the GeoKeys together with the image 
   Dim key As RasterTagMetadata = codecs.ReadGeoKey(destStream, 1, keyDataAscii.Id) 
   DisplayGeoKey(key) 
End Sub 

Requirements

Target Platforms

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

Leadtools Assembly