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.
URL:
 

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.”
 
 

Filters:

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 an ADA-Compliant Website: A Checklist
Melanie LenaghanMelanie Lenaghan  |  
Nov 19, 2019
This year, Google searches for "ADA compliance" and "website ADA compliance" have skyrocketed. More and more organizations are realizing the benefits of compliance (and the penalties for not complying), and that's driving a surge of ADA compliance. If you're unfamiliar...
Blog Article
Fabric React Primer on Components, Controls and Theming
Will SpieringWill Spiering  |  
Nov 12, 2019
React is one of the most used and beloved JavaScript libraries for building user interfaces. There's no shortage of UI frameworks out there to help make developing great React apps quicker and simpler. You may have heard of a couple of the really popular ones like React Bootstrap or...
Blog Article
7 Key Takeaways from Kentico Connections 2019
Melanie LenaghanMelanie Lenaghan  |  
Oct 10, 2019
Last week I spent two packed days attending Kentico Connections 2019 to learn what mid-size to enterprise businesses should be aware of heading into 2020.   We got an overview of the Kentico Roadmap regarding EMS and Kentico Kontent (formerly Kentico Cloud). And the highlight was the...
Blog Article
Using Hooks to Reactify a Plain JavaScript Library: A Walkthrough
Andrew PetersenAndrew Petersen  |  
Aug 06, 2019
React Hooks make it really easy to wrap a vanilla JavaScript library with a React component so you can easily reuse it throughout your app and stay in "React Mode".In this walkthrough I'll be focusing on a single library, Shave.js, but the techniques and ideas should be applicable...