2009-10-07 12 views

Répondre

0

Une simple recherche google a révélé this.
Là, vous pouvez faire des calculs et il explique également les formules utilisées. Je commencerais par regarder la folmula de Haversine.

1

pour cela, vous devriez avoir utiliser les codes suivants. pour la conception

function OrginAutoComplete() { 
     try { 
      var input = document.getElementById('TextBox1'); 
      var autocomplete = new google.maps.places.Autocomplete(input); 
      autocomplete.setTypes('changetype-geocode'); 
     } 
     catch (err) { 

     } 
    } 


    function DestAutoComplete() { 
     try { 
      var input = document.getElementById('TextBox4'); 
      var autocomplete = new google.maps.places.Autocomplete(input); 
      autocomplete.setTypes('changetype-geocode'); 
     } 
     catch (err) { 

     } 
    } 


    google.maps.event.addDomListener(window, 'load', OrginAutoComplete); 
    google.maps.event.addDomListener(window, 'load', DestAutoComplete); 
</script> 
       <asp:Label ID="Label1" runat="server" Text="Pick Up address"></asp:Label> 
       <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
       <br /> 
       <br /> 
       <asp:Label ID="Label2" runat="server" Text="DroppOff Address"></asp:Label> 
       &nbsp; 
       <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox> 
       <br /> 
       <asp:Button ID="Button1" runat="server" Text="Details" 
        onclick="Button1_Click" style="margin-left: 55px" Width="97px" /> 
       <br /> 
       &nbsp;&nbsp;&nbsp;&nbsp; 
       <br /> 

Pour coder en C#:

chaîne

XMLRésultat = null;

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://maps.googleapis.com/maps/api/distancematrix/xml?origins=" + TextBox1.Text + "&destinations=" + TextBox4.Text + "&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") 
      { 
       lblResult.Text = "Invalid City Name please 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'>Distance</td><td align='left'>" + doc.DocumentElement.SelectSingleNode("/DistanceMatrixResponse/row/element/distance/text").InnerText + "</td></tr>"; 
        output += "</table>"; 



        lblResult.Text = output; 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      lblResult.Text = "Error during processing"; 
      return; 
     } 



    } 



    protected void Button2_Click(object sender, EventArgs e) 
    { 
     double cost = 0; 
     double distance = Convert.ToDouble(TextBox5.Text); 
     if (distance >= 50) 
     { 
      cost = distance * 0.4; 
      lblResult.Text = cost.ToString(); 
     } 
     else if (distance >= 1000) 
     { 
      cost = distance * 0.35+50; 
      lblResult.Text = cost.ToString(); 
     } 
     else if (distance < 50) 
     { 
      cost = distance * 0.65; 
      lblResult.Text = cost.ToString(); 
     } 
     else if (distance <=10) 
     { 
      cost = distance * 0.85; 
      lblResult.Text = cost.ToString(); 
     } 

    } 
Questions connexes