Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过c#webforms asp.net中的google map api从dropdownlist中的选定城市获取textbox1和textbox2的纬度和经度_C#_Asp.net_.net_Webforms - Fatal编程技术网

通过c#webforms asp.net中的google map api从dropdownlist中的选定城市获取textbox1和textbox2的纬度和经度

通过c#webforms asp.net中的google map api从dropdownlist中的选定城市获取textbox1和textbox2的纬度和经度,c#,asp.net,.net,webforms,C#,Asp.net,.net,Webforms,我需要通过谷歌地图api从dropdownlist中的选定城市获取到textbox1和textbox2的纬度和经度。我正在使用C#和ASP.NET Web表单 以下是我尝试的代码: function sayHello() { string url = "https://maps.googleapis.com/maps/api/geocode/json?address=+Dropdownlist1.Text+Dropdownlist2.Text+Dropdownlist3.Text+&a

我需要通过谷歌地图api从dropdownlist中的选定城市获取到
textbox1
textbox2
的纬度和经度。我正在使用C#和ASP.NET Web表单

以下是我尝试的代码:

function sayHello()
{

    string url = "https://maps.googleapis.com/maps/api/geocode/json?address=+Dropdownlist1.Text+Dropdownlist2.Text+Dropdownlist3.Text+&sensor=false");
    WebRequest request = WebRequest.Create(url);

    using (WebResponse response = (HttpWebResponse)request.GetResponse())
    {

     using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
     {

       string address = document.getElementById(reader).ToString;
       float latitude;
       float longitude;

       //var geocoder = new google.maps.Geocoder();
       latitude = results[0].geometry.location.lat();
       longitude = results[0].geometry.location.lng();


       document.getElementById("TextBox1").Text = latitude;
       document.getElementById("TextBox2").Text = longitude;

     }
 }

以下是您拨打电话获取google maps geocoder json响应的方式:

    string json = string.Empty;
    string url = string.Format("https://maps.googleapis.com/maps/api/geocode/json?address={0}&sensor=false", HttpUtility.UrlEncode(address));
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
    using (Stream stream = response.GetResponseStream())
    using (StreamReader reader = new StreamReader(stream))
    {
        json = reader.ReadToEnd();
    }
您必须记住编码您的地址字符串,它可能包含一些非法字符,不能在querystring中使用

Geocoder响应是json格式的,您可以自己解析,也可以使用为此设计的一些工具。在我的工作中,我基于json响应创建了几个c#类(使用):

公共类位置
{
公共双lat
{
得到;
设置
}
公用双液化天然气
{
得到;
设置
}
}
公共课几何
{
公共场所
{
得到;
设置
}
}
公开课成绩
{
公共几何
{
得到;
设置
}
}
公共类地理编码响应
{
公开名单结果
{
得到;
设置
}
}
然后我使用json序列化程序将json响应反序列化为GeocodeResponse

GeocodeResponse gr = JsonConvert.DeserializeObject<GeocodeResponse>(json);
Console.WriteLine(string.Format("lat: {0}, long: {1}", gr.results[0].geometry.location.lat, gr.results[0].geometry.location.lng));
GeocodeResponse gr=JsonConvert.DeserializeObject(json);
WriteLine(string.Format(“lat:{0},long:{1}”,gr.results[0]。geometry.location.lat,gr.results[0]。geometry.location.lng));
你可以试着为这个工作。这是一个控制台应用程序,但我相信你可以很快将其转换为你的网络表单应用程序

GeocodeResponse gr = JsonConvert.DeserializeObject<GeocodeResponse>(json);
Console.WriteLine(string.Format("lat: {0}, long: {1}", gr.results[0].geometry.location.lat, gr.results[0].geometry.location.lng));