SAMPLE CLASS TO GET DISTANCE BETWEEN TWO GEO PLACES AND AND RETRIEVE OTHER DETAILS by USING GOOGLE MAPS API
/*just uploaded without explanations ,if someone needs more contact me*/
using System.IO;
using System.Net;
using System.Xml;
/*
* author : @kushanlahiru
*
*
how to use the class
*
*first setValues(string destination, string origin)
*second calculateDistance()
*third get values distance or travel details
*/
namespace Data
{
public class GoogleDistance
{
private string destination;
private string origin;
private string distance;
private string travelDetail;
GoogleDistance() //constructor
{
destination="";
origin="";
distance="";
travelDetail="";
}
public string getTravelDetail()
{
return travelDetail;
}
public string getDistance()
{
return distance;
}
public void setValues(string destination, string origin)
{
this.destination = destination;
this.origin = origin;
}
public void calculateDistance()
{
string xmlResult = null;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://maps.googleapis.com/maps/api/distancematrix/xml?origins="
+ origin + "&destinations=" + destination + "&mode=Car&language=us-en&sensor=false");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader resStream = new StreamReader(response.GetResponseStream());
XmlDocument doc = new XmlDocument();
xmlResult = resStream.ReadToEnd();
doc.LoadXml(xmlResult);
string output = "";
try
{
if (doc.DocumentElement.SelectSingleNode("/DistanceMatrixResponse/row/element/status").InnerText.ToString().ToUpper() != "OK")
{
travelDetail = "Invalid City Name please or entries, try again";
return;
}
XmlNodeList xnList = doc.SelectNodes("/DistanceMatrixResponse");
foreach (XmlNode xn in xnList)
{
if (xn["status"].InnerText.ToString() == "OK")
{
output = "<table align='center' width='600' cellpadding='0' cellspacing='0'>";
output += "<tr><td height='60' colspan='2' align='center'><b>Travel Details</b></td>";
output += "<tr><td height='40' width='30%' align='left'>Orgin Place</td><td align='left'>" + xn["origin_address"].InnerText.ToString() + "</td></tr>";
output += "<tr><td height='40' align='left'>Destination Place</td><td align='left'>" + xn["destination_address"].InnerText.ToString() + "</td></tr>";
output += "<tr><td height='40' align='left'>Travel Duration (apprx.)</td><td align='left'>" + doc.DocumentElement.SelectSingleNode("/DistanceMatrixResponse/row/element/duration/text").InnerText + "</td></tr>";
output += "<tr><td height='40' align='left'>Distance</td><td align='left'>" + doc.DocumentElement.SelectSingleNode("/DistanceMatrixResponse/row/element/distance/text").InnerText + "</td></tr>";
output += "</table>";
travelDetail = output;
distance = doc.DocumentElement.SelectSingleNode("/DistanceMatrixResponse/row/element/distance/text").InnerText;
}
}
}
//catch (Exception ex)
//{
// return;
//}
finally
{
}
}//end of get distance method
}
}
Not always we require to show changes done by other which is a mandatory feature in SharePoint online. What is details pane (aka. Information Pane)? Detail pane/ Information shows information regarding the document if you selected a one or its showing recent changes within a list or library. Follow link to Microsoft documentation about details pane. Bad news: Until Microsoft listen to User Voice , there is no straightforward way to enable disable this even you don't want. Good news: We could write a SharePoint framework extension to hack styles until Microsoft give us a permanent solution. How? I found this sample project (Inject CSS into modern SharePoint pages with React) which could reuse to our purpose. Thanks to Hugo for saving my time. Steps to awesomeness: Clone the project Resolve dependencies > npm i Bundle > gulp bundle --ship Package > gulp package-solution --ship Upload package into SharePoint App catalog
Comments
Post a Comment