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
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
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; } }
From a first glance it looks like it may have just generated you a placeholder...