Back to List

Kentico Distance Calculation Web Part

Daniel Maley Daniel Maley  |  
Aug 26, 2016
When displaying a list of locations on your website, it is often helpful to the user to know how far away they are from each of the items in the list. The Basic Repeater with Distance Calculation Web Part allows you to easily add distance and duration to a list of locations. This web part is a clone of the Kentico “Basic Repeater” Web Part with a few additional properties that are used to calculate distance and duration. To properly configure this web part, simply follow the steps listed below:

Begin by adding a data source web part on the pages design tab.  (Pages Data Source or Query Data Source is recommended.)  Once you have configured your data source to bring back a list of locations, add the Basic Repeater with Distance Calculation Web Part to the page. This web part can be configured the same way as the Kentico Basic Repeater with the exception of the properties shown below:

Adding the Origin:

The origin refers to the location that the distance to each of the items in the list will be calculated against.  There are several ways to specify an origin using this web part.

1. Enter a static location in the “Origin Location or Address” or the “Origin Latitude\Longitude” fields.  (It is recommended to use the latitude and longitude fields when possible.  Wherever a valid Origin Latitude and Origin Longitude are specified, it will take precedence over the value entered for the Origin Location or Address.)  Using this approach means that every page visitor will see the distance\duration from their specified origin to the destinations in your data source.  
Note: In the instance above the Origin Latitude and Longitude values will be used and the Origin Location or Address will be ignored.
2. If you are using a license of Kentico that has Web Analytics, you can use the Analytics Context to determine user location. Using this approach means the user will see the distance\duration from their determined location to the destinations in your data source.  

Note:  This approach uses the IP Address that is resolved so it will not be exact.  You may notice a large variance between the origin and the user’s actual location - especially on mobile devices. It does not appear the GeoLocation functionality works correctly when running under Localhost.

3.Use GeoLocation to more accurately determine the user’s location and append the results to the URL of your page.  Once the parameters are in the URL, they can be retrieved and added to the web part properties.

Specifying Destinations:

Specifying destinations is as easy as including the Field Name of the Destination Columns. 

For the table above, I would configure the web part as follows.
Note:  Similarly to the Origin. when a valid Latitude and Longitude Column is specified, the columns listed in the Destination Location or Address Field will be ignored. If your data source does not have latitude and longitude data, a ‘;’ delimited list of address fields can be used.

Metric Units:  Indicates if the distance calculation should be in (meters/km) or (feet/miles).

Include Duration:  Indicates if the duration of time it would take to drive a vehicle for the origin to the destination should be included.

Destination Not Found Text:  The text to be displayed to the user if one of the destinations in the list is unable to be determined via the Google Distance Matrix API.

No Available Route Text:  The text to be displayed to the user if the Google Distance Matrix API is unable to determine a route between the origin and destination.

Google Maps Distance Matrix API Key:  This web part makes use of the Google Distance Matrix API and requires a server key with the Distance Matrix API enabled. A Free Key can be obtained from Google.

Once the Web Part has been configured, the calculated distance and optionally duration will be made available in the transformation with the field names “Calculated Distance” and “Calculated Duration.”


This web part can be used in conjunction with a Kentico Filter Web Part.

Notes on Usage:

This web part must be used in conjunction with the Basic Google Map Web Part per the Distance Matrix API Policy.

Standard Usage limited to 2,500 elements per day, please review the Google Distance Matrix API usage limits before implementation.
KenticoWeb Development


Love our Blogs?

Sign up to get notified of new Skyline posts.


Related Content

Spring 2019 Kentico User Group
Apr 17, 2019
Location: Waukesha County Technical College - Pewaukee Campus - 800 Main Street, Pewaukee, Wisconsin 53072 - Building: Q, Room: Q361
Blog Article
How to Create a Readable and Useful Bug Report
Blayne RoselleBlayne Roselle  |  
Jun 25, 2019
Creating a bug that is both readable and provides enough detail is a must-have skill for a Quality Assurance Analyst. Not only will it help when it comes time to retest, but it also provides credibility with your development team. In the content below, I will share the best practices for creating...
Blog Article
Azure Tips & Tricks: Application Insights Snapshot Debugger
Todd TaylorTodd Taylor  |  
May 21, 2019
A painful memory that is burned into my developer-brain is a production support issue for a .NET web API that I wrote years ago. I worked for a large retailer at the time, and the bug was preventing electronic pricing signs from displaying the most up-to-date price for hundreds of products at...
Blog Article
Thinking Outside the Application Development Box with Unity
Jeff WeberJeff Weber  |  
May 14, 2019
Do you or your company have an idea for an application that sits a little outside your comfort zone? Does your idea possibly require game-like graphics, Augmented Reality, Virtual Reality or similar technology? If so, Unity might be worth a look.   I’ve been using Unity in my spare...
Blog Article
Creating and Installing Project Templates in .NET Core
Ben BuhrBen Buhr  |  
Apr 30, 2019
In my previous blog article, we examined the .NET Core Command Line Interface (CLI). As part of that, we saw that templates in .NET Core can be very useful. Templates in .NET Core are very easy to create, and there already are a ton of very helpful ones available. They allow us to quickly get an...