top of page

Subscribe to our newsletter

How to Convert Latitude & Longitude into Address Details in Power Automate

  • Writer: Sivakumar K
    Sivakumar K
  • Sep 28, 2025
  • 2 min read

When you’re building an application like an attendance system, one common requirement is to capture the location of the employee at the time of sign-in or sign-out. Instead of just storing latitude and longitude values, it’s often more useful to fetch readable details such as the address, city, state, country, and postal code.

The good news: you don’t need expensive services to achieve this. With Power Automate and free reverse geo-location APIs, you can do this in a few simple steps



.


Why Use Reverse Geo-Location?


Reverse geo-location is the process of converting latitude and longitude into a human-readable location.



Step 1: Pick a Reverse Geo-Location Service (no API key needed)

We’ll use OpenStreetMap Nominatim (free; no API key required).



Step 2: Create the Flow and Inputs
  1. Create a Manually trigger a flow (for demo—you can replace with your real trigger).

  2. Add two Text inputs:

    • Latitude

    • Longitude


Manual Trigger Flow
Manual Trigger Flow
Latitude and Longitude input fields
Latitude and Longitude input fields

Step 3: Call Nominatim with HTTP

Add an HTTP action (built-in).

  • Method: GET

  • URI:



Http Action
Http Action

Next

  • Add a Compose action.

  • Inputs: select Body from the HTTP action’s Dynamic content (or use expression body('HTTP')).


Compose Action
Compose Action

Step 4: Use Select to capture only the required fields


Power Automate’s Select expects an array as its From input. When your data is a single XML/JSON object, you can feed Select a dummy one-item array (e.g., createArray(1)) and then build each mapped value with expressions. The result will be an array with a single object containing only your desired keys.


Key

Value

Neighbourhood

xpath(xml(outputs('Compose')), 'string(//addressparts/neighbourhood)')

Suburb

xpath(xml(outputs('Compose')), 'string(//addressparts/suburb)')

City 

xpath(xml(outputs('Compose')),'string((//addressparts/city)

State

xpath(xml(outputs('Compose')),'string(//addressparts/state)')

Country

xpath(xml(outputs('Compose')),'string(//addressparts/country)')

Pincode 

xpath(xml(outputs('Compose')),'string(//addressparts/postcode)')

With the steps above, you now have a working flow that takes Latitude and Longitude, calls a free reverse geo-location service (like Nominatim), extracts only the required fields (City, State, Country, Pincode, etc.) using Select and XPath/JSON parsing, and outputs a clean object.


This final result can then be directly consumed in your Power Apps attendance application. Instead of storing just raw GPS coordinates, you’ll have meaningful details such as:

  • Neighbourhood

  • Suburb

  • City

  • State

  • Country

  • Pincode

These values can be saved in your attendance records alongside the employee ID and timestamp—making your solution more accurate, transparent, and HR-friendly.



I hope you found this guide helpful! If you have any questions or need support, feel free to leave a comment or reach out — I’ll be happy to help.



Comments


bottom of page