Post

#PowerPlatformTip 44: 'Calculate the Distance'

#PowerPlatformTip 44: 'Calculate the Distance'

TL;DR: Calculate great-circle distance for free using the Haversine formula: copy the ready-made snippet and plug in your two lat/long pairs.

Here’s a cool tip to calculate the distance between two places without relying on premium services like Google or Bing maps.

💡 Challenge

How do you provide accurate, real-time location-based distance calculations inside PowerApps or Power Automate, without extra costs?

✅ Solution

You can use the Haversine formula, a proven geospatial calculation mechanism.

  • There’s a ready-to-use code snippet available: CalculateDistance.json @ GitHub, Marcel Lehmann
  • Just copy the JSON logic and paste into your Power Platform workflow (typically as an inline calculation or custom connector).
  • Replace the latitude and longitude values for locations A and B with your own values.

🔧 How It’s Done

  1. Obtain coordinates:
    • Manually input latitude and longitude for each location, or use the PowerApps location function to fetch the user/device position (Location.Latitude, Location.Longitude).
  2. Drop the values into the shared script or formula:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    // Example for PowerApps
    With(
      {
        r: 6371000,
        p: (Pi() / 180),
        latA: YourStartLatitude,
        lonA: YourStartLongitude,
        latB: YourEndLatitude,
        lonB: YourEndLongitude
      },
      Round(
        (2 * r) * Asin(
          Sqrt(
            0.5 - Cos((latA - latB) * p) / 2 +
            Cos(latB * p) * Cos(latA * p) * (1 - Cos((lonA - lonB) * p)) / 2
          )
        ),
        2
      )
    )
    
  3. For JSON users, import the code from the referenced snippet and wire up your variables according to context.
  4. The result is your distance in meters, output instantly in your app or flow.

🎉 Result

Enjoy accurate, fast, and cost-effective distance calculations for any business scenario, including logistics, travel, or field service.

🌟 Key Advantages

  • No dependency on paid mapping services
  • Works both in manual and automated scenarios
  • Can leverage device location for dynamic, user-centered calculations

🛠️ FAQ

1. What is the Haversine formula?

A mathematical function for calculating the shortest distance between two points on the Earth, given their latitude and longitude.

2. How do I get my coordinates in PowerApps?

Use built-in location functions or user input fields to collect latitude and longitude.

3. Can I use this in Power Automate as well?

Yes, simply adapt the code for use in expressions, custom connectors, or flow steps.

🔸 #PowerPlatformTip 43: ‘With Function’ - the function keeping the Haversine formula above readable instead of a wall of nested math.

🔸 #PowerPlatformTip 72: ‘PowerApps with Google Maps API’ - a mapping alternative for when you need more than a raw distance number.

This tip is by Marcel Lehmann, Microsoft MVP (Business Applications) and founder of the Power Platform Academy – live Power Platform workshops, free or CHF 49. Join the workshop waitlist to get notified about new dates. For companies that want this implemented for them, see KMUpower – Power Platform consulting & automation for SMEs (DACH).

This post is licensed under CC BY 4.0 by the author.

Microsoft and the Power Platform product names (for example Power Apps, Power Automate, Copilot Studio) are trademarks of the Microsoft group of companies. This is an independent website. It is not operated, sponsored or endorsed by Microsoft.