Geo & Maps

Edit Menu > Preferences > Geo & Maps

This dialog contains all settings for the Map Panel, geocoding and related features.

If you use a third party service to perform reverse geocoding, data like GPS coordinates in your images and your IP address is transferred from your computer to the 3rd party service, which are not under the control of photools.com. Make sure you have read and understood the terms of service and privacy settings of Google, Bing, GeoNames.org etc. before using their services.

See the photools.com privacy settings at https://www.photools.com/privacy/ for more information.


The Geo & Maps configuration options

Most of the settings explain themselves. Just click on the setting to see the corresponding help text.

API Keys

IMatch does not force you to use one specific map provider. It supports several major vendors, to give you the freedom of choice. Pick the vendor with the privacy policy and pricing structure that fits your needs.

When you add or change your API keys while the Map Panel is open, close and re-open the map panel or refresh it with the toolbar button.

Since 2016 Google and Microsoft require a "API Key" when an application or an app is trying to access map data. They may also charge access to these APIs when a certain amount of usage quota is exceeded.

If you want to use Google for reverse geocoding (Geocoding Service) you also need to supply a valid Google API key.

To access HERE Maps you need an API key. If you are already a HERE customer and have a App-Id and App-Code, you can use these with IMatch, too.

How to Get Your Keys

Getting your personal API keys is (more or less) easy, depending on the vendor you choose. See the following know-how article on the photools.com web site for details and instructions for each service.

GeoNames User Name

To use the free GeoNames geocoding service you have to request your own user name. See this help topic for details. The user name is free.

Unless you fill in your own user name here (or you switch to using the Google service) IMatch will use a default user name for GeoNames. This user name has very low usage limits and usually works only a few times.

Language

This is the language in which you want to see data on the map, or retrieve data from the geocoding service. For example, if you want to see French street names on the map, enter fr as the language code. When you use reverse geocoding IMatch also retrieves country, city, street etc. names in the language specified here. If you don't specify a language here, the user interface language set for IMatch is used.

Map Language Specialties

Some map providers use two-letter codes like de (German) or en for English. Others use ger for German or eng for English.

The Map Panel automatically maps the two-letter language code you enter here to the correct language code for the map provider you use. This works usually, but may fail for some special cases.

For example, if you want to display a Bing Map in en-MX (English / Mexican) you need to enter this culture code yourself. See Bing Map Language Codes for more info.

Not all geocoding services support all languages.

Create keywords from this expression

If this field is not empty, IMatch evaluates the value of it after reverse geocoding a file and writes the result into the keywords of that file. This enables you to automatically add keywords based on data like country, city, location, or any combination thereof.

To create multiple keywords, use multiple variable expressions and separate them with ;

Examples

ExpressionDescription
{File.MD.country}Writes the contents of the Country metadata tag as a keyword.
WHERE|{File.MD.country}|{File.MD.city}|{File.MD.location}Writes a hierarchical keyword created from the WHERE root keyword and the country, city and location. For example:
WHERE|United Kingdom|London|Knightsbridge


Dealing with partial metadata

IMatch has no way to tell if the value produced by the specified variable is correct or what you have intended.

For example, if reverse geocoding does not return a city name, the variable in the expression above will produce || instead of |City Name| and this creates a hierarchical keyword with an empty level.

If you have to deal with such cases, it is better to handle such cases by using the default variable formatting function:

{File.MD.city|default:NO CITY}

This variable returns the term NO CITY when the file has an empty city metadata tag. For the entire expression above, you would use:

WHERE|{File.MD.country|default:NO COUNTRY}|{File.MD.city|default:NO CITY}|{File.MD.location|default:NO LOCATION}

This takes care for all cases where one or more of the location tags contain no value. You can later find the files without data easily in the @Keywords category by searching for NO COUNTRY, NO CITY or NO LOCATION.

City Mask

EXIF and XMP metadata have no field to store a ZIP code or postal code for a given city name. But geocoding services usually provide a ZIP/postal code when performing reverse geocoding.

Where to store this postal code? IMatch allows the option to work around this limitation by allowing you to combine the city name and postal code / ZIP code into the city name. The resulting city name is then stored in the metadata.

By default, the city mask option is empty, which means that only the city name is stored in the metadata. The postal code / ZIP code is ignored. This is how most other geocoding applications work, and if this is OK for you, you can skip the remainder.

By entering a city mask, you can tell IMatch how to combine the postal code with the city name to form a new city name. The following placeholders are available:

PlaceholderWill be replaced by
{city}The city name as delivered by the geocoding service.
{pc}By the postal code / ZIP code as delivered by the geocoding service.

Examples:

MaskResult
{pc} {city}10117 Berlin
{city} {pc}London WC2R

If the mask is empty or no {city} placeholder is found, the city name is used.

State and Location Masks

In addition to the city mask, you can also define masks for the state and location elements:

PlaceholderWill be replaced by
{state}The state name as delivered by the geocoding service.
{location}By the location name as delivered by the geocoding service.

The {state} mask allows you to produce custom state formats, e.g., the frequently used

Bundesland: Hessen

which is produced by the following mask:

Bundesland: {state}

If you leave the masks empty, IMatch uses the state and location data as delivered by the geocoding service.

You can use a Metadata Template after applying geo-data to files to further customize the information in these fields.

Automatic reverse geocoding

If this option is enabled and your computer is connected to the Internet, IMatch automatically retrieves address data for files when you add or update their GPS coordinates in the Map Panel. This makes using the Map Panel very comfortable because you just have to add the GPS coordinates and let IMatch do the rest.

You can reverse geocode files at any time by choosing the Command > File > Reverse geocode all selected files... command or by clicking on the corresponding button in the Map and Metadata Panels.

Keep Altitude

By default IMatch fills the altitude tag from the altitude delivered by the service. If you do aerial photography (drones, planes) and your camera has recorded the Altitude at the height the image was taken, this may be undesirable. You probably want to keep the existing altitude when you let IMatch perform automatic reverse geocoding.

To prevent the existing altitude from being replaces, enable the corresponding option in this dialog.