Latitude and Longitude UDA

Document created by eharris04 Employee on Apr 25, 2016Last modified by eharris04 Employee on May 15, 2016
Version 4Show Document
  • View in full screen mode

The UDA will take a known place or address and it will give you the Latitude and Longitude.

 

AuthorVadim Tabakman
Long Description

Since adding the Geolocation control into Nintex Forms, I've been getting a lot of questions around other geo-coding information and how to incorporate it into a business process. 

Google.png

The User Defined Action (UDA) in this post, will take a known place or address (preferably, use an address), and it will give you the Latitude and Longitude.  This is actually part of a bigger process which I will talk about in a future blog post.

Dependencies

In order to get the Latitude and Longitude, I chose to talk to the Google Geolocation API.  Therefore, you need to go to the Google API site and apply for an app api token.  Once you have that, make sure you enable it to use the Geolocation API.  Then, create a Nintex Workflow Constant and store that token, so that you can use in your workflows without having to type it in each time.

Support Info

Vadim Tabakman

Compatibility

Nintex Workflow

Platform

SharePoint Server 2010

SharePoint Server 2013

Screenshots

 

Additional Information

How does it work?

 

The UDA take 3 parameters:

1. Location Address (input) - this is a location, like an airport name or an address.  Preferably an address.

2. Latitude (output)

3. Longitude (output)

 

Parameters.png

 

The UDA itself is actually quite small.  It's made up of 2 actions.  The Web Request action, that make a call to the Google Geolocation API, and the Query XML action, that takes the XML response from Google and pulls out the Latitude and Longitude to store in the output Parameters.

 

UDADesign.png

The Web Request action is actually quite simple also.  The url is made up of

 

https://maps.googleapis.com/maps/api/geocode/xml?address=Location Address&key=GoogleApiKey

 

In this case, the Location Address is our input parameter.  You can use something like SEATAC, Salt Lake Airport or an actual address.  I'd recommend using a complete address if you can, because you're more likely get a result back.

 

The GoogleApiKey, is the key you would have received from Google, or should appear in your Google API console when you log in.  I put this into a Nintex Workflow constant, because I can reuse it later, and I can also set permissions on who I would like to allow to use this.

 

Also, make sure you set it to perform a GET and store the result in a text variable.  This variable will contain a bunch of XML.

 

WebRequest.png

NOTE: I would highly recommend you also capture some of the fields, http status and also configure the Error Handling, to make this more robust.

 

The other action we have is the Query XML action.  This action is performing two XPath queries to pull out the Latitude and Longitude.

Latitude - //geometry/location/lat

Longitude //geometry/location/lng

 

QueryXML.png

Conclusion

 

IMPORTANT : Google has a limit on how many requests your API token can be user for per minute.  If you are planning on using more than what is allowed, look for a Work API token (there is probably a fee for that).

 

Remember, you won't be able to just import this UDA, publish it and use it.  It does require the Google API Token, so you'll need to get that first and either put it into the Web Request action, or store it in a Nintex Workflow Constant and use that.

 

I've attached the UDA to this post.  In order to try it out, you will need to download it, then go to Manage User Defined Actions, click on Create and then in the workflow designer page, click on Import and import this in.

Nintex Xchange Terms of Use Policy

Nintex makes no warranty or guarantee about the reliability, performance, quality, or functionality of any assets, and any assets you install are therefore provided as is. By downloading this asset, you agree to the terms of use.

Outcomes