Metadata of a document

Hi,

I want to know how to get metadata of an image (like geolocation containing latitude and longitude). Is there a way to get it at all?

  Discussion posts and replies are publicly visible

Parents
  • AFAIK, there isn't a way to do that unless you send the image outside Appian via an integration to get these details. 

  • It'd probably be... not *too* difficult, maybe, for someone to write a custom plug-in to do this analysis on relevant files - but that would be its own whole new thing, someone would need to be used to coding plugins (and have a setup that allows for it), etc.

  • How about using chatGPT for it? Generated this code from it. Not sure how much of it is correct Stuck out tongue

    import com.appiancorp.plugins.sdk.PluginContext;
    import com.appiancorp.plugins.sdk.ui.EmbeddedBrowser;
    import com.appiancorp.plugins.sdk.ui.TextValueComponent;
    
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;
    
    public class GeoLocationPlugin {
    
      public static void extractGeoLocation(PluginContext context, String filePath) {
        try {
          File imageFile = new File(filePath);
          BufferedImage image = ImageIO.read(imageFile);
          double latitude = extractLatitude(image);
          double longitude = extractLongitude(image);
          String location = String.format("%f,%f", latitude, longitude);
          TextValueComponent locationComponent = context.createTextValueComponent(location);
          EmbeddedBrowser browser = context.createEmbeddedBrowser(locationComponent);
          browser.setWidth(400);
          browser.setHeight(300);
          browser.setUrl(String.format("https://www.google.com/maps?q=%s", location));
          context.publishValue(locationComponent);
        } catch (IOException e) {
          context.logError("Failed to extract geo location from image", e);
        }
      }
    
      private static double extractLatitude(BufferedImage image) {
        // TODO: Implement the logic to extract the latitude from the image.
        // This may involve reading the EXIF metadata of the image, if available.
        return 0.0;
      }
    
      private static double extractLongitude(BufferedImage image) {
        // TODO: Implement the logic to extract the longitude from the image.
        // This may involve reading the EXIF metadata of the image, if available.
        return 0.0;
      }
    }
    

Reply
  • How about using chatGPT for it? Generated this code from it. Not sure how much of it is correct Stuck out tongue

    import com.appiancorp.plugins.sdk.PluginContext;
    import com.appiancorp.plugins.sdk.ui.EmbeddedBrowser;
    import com.appiancorp.plugins.sdk.ui.TextValueComponent;
    
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;
    
    public class GeoLocationPlugin {
    
      public static void extractGeoLocation(PluginContext context, String filePath) {
        try {
          File imageFile = new File(filePath);
          BufferedImage image = ImageIO.read(imageFile);
          double latitude = extractLatitude(image);
          double longitude = extractLongitude(image);
          String location = String.format("%f,%f", latitude, longitude);
          TextValueComponent locationComponent = context.createTextValueComponent(location);
          EmbeddedBrowser browser = context.createEmbeddedBrowser(locationComponent);
          browser.setWidth(400);
          browser.setHeight(300);
          browser.setUrl(String.format("https://www.google.com/maps?q=%s", location));
          context.publishValue(locationComponent);
        } catch (IOException e) {
          context.logError("Failed to extract geo location from image", e);
        }
      }
    
      private static double extractLatitude(BufferedImage image) {
        // TODO: Implement the logic to extract the latitude from the image.
        // This may involve reading the EXIF metadata of the image, if available.
        return 0.0;
      }
    
      private static double extractLongitude(BufferedImage image) {
        // TODO: Implement the logic to extract the longitude from the image.
        // This may involve reading the EXIF metadata of the image, if available.
        return 0.0;
      }
    }
    

Children