13,347,671 members (50,813 online)
Tip/Trick
alternative version

#### Stats

29.4K views
9 bookmarked
Posted 9 Jan 2012

# Google Directions API Polyline Points Decoder in C#

, 9 Jan 2012
 Rate this:
Google Directions API Polyline Points Decoder in C#
I have an algorithm for Google Directions API Polyline Points Decoder in C#. It may save you some development time.

Assuming that you have collected encoded point string from the Google Direction API Call.

```private List<Location> DecodePolylinePoints(string encodedPoints)
{
if (encodedPoints == null || encodedPoints == "") return null;
List<Location> poly = new List<Location>();
char[] polylinechars = encodedPoints.ToCharArray();
int index = 0;

int currentLat = 0;
int currentLng = 0;
int next5bits;
int sum;
int shifter;

try
{
while (index < polylinechars.Length)
{
// calculate next latitude
sum = 0;
shifter = 0;
do
{
next5bits = (int)polylinechars[index++] - 63;
sum |= (next5bits & 31) << shifter;
shifter += 5;
} while (next5bits >= 32 && index < polylinechars.Length);

if (index >= polylinechars.Length)
break;

currentLat += (sum & 1) == 1 ? ~(sum >> 1) : (sum >> 1);

//calculate next longitude
sum = 0;
shifter = 0;
do
{
next5bits = (int)polylinechars[index++] - 63;
sum |= (next5bits & 31) << shifter;
shifter += 5;
} while (next5bits >= 32 && index < polylinechars.Length);

if (index >= polylinechars.Length && next5bits >= 32)
break;

currentLng += (sum & 1) == 1 ? ~(sum >> 1) : (sum >> 1);
Location p = new Location();
p.Latitude = Convert.ToDouble(currentLat) / 100000.0;
p.Longitude = Convert.ToDouble(currentLng) / 100000.0;
}
}
catch (Exception ex)
{
// logo it
}
return poly;
}```

Here `Location `is simply a class with Latitude and Longitude attributes.

## Share

 Software Developer (Senior) Pakistan
Expertise on Enterprise solutions, Mobile Apps & Services based applications on .NET platform. As Sr. Software Engineer, I have worked on variety of technologies like ASP.NET MVC, MS Windows Phone 7, WCF, and MS SharePoint 2010, MS Dynamics CRM.

## You may also be interested in...

 Pro

 First Prev Next
 Thanks, saves me some coding time. toy4fun9-Feb-14 6:57 toy4fun 9-Feb-14 6:57
 Message Closed 24-Sep-13 0:26 Ravi.Kumar021 24-Sep-13 0:26
 Last Visit: 31-Dec-99 19:00     Last Update: 18-Jan-18 1:57 Refresh 1