// This is a script for Directory Opus. // See https://www.gpsoft.com.au/DScripts/redirect.asp?page=scripts for development information. function OnInit(initData) { initData.name = "HasGPS"; initData.version = "1.0"; initData.copyright = "(c) 2018 Leo Davidson"; initData.url = "https://resource.dopus.com/t/image-gps-location-filtering/30369"; initData.desc = ""; initData.default_enable = true; initData.min_version = "12.10"; var col = initData.AddColumn(); col.name = "GPS"; col.method = "OnGPS"; col.label = "GPS?"; col.justify = "left"; col.autogroup = true; col.match.push_back(ValueString(true)); col.match.push_back(ValueString(false)); } function OnGPS(scriptColData) { var hasGPS = HasGPS(scriptColData.item); scriptColData.value = ValueString(hasGPS); } function ValueString(hasGPS) { return hasGPS ? "GPS" : "No GPS"; } function HasGPS(item) { var imageMeta = item.metadata.image; if (imageMeta == null) return false; var lat = imageMeta.latitude; var lon = imageMeta.longitude; if (lat == null || lon == null || typeof(lat) != "number" || typeof(lon) != "number") return false; return true; }