通过c#webforms asp.net中的google map api从dropdownlist中的选定城市获取textbox1和textbox2的纬度和经度
我需要通过谷歌地图api从dropdownlist中的选定城市获取到通过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
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));