【发布时间】:2013-05-29 18:25:49
【问题描述】:
当用户输入他的地址为街道、城市、州和邮政编码时,我想在 2 个文本框中显示纬度和经度值。我正在使用谷歌地理编码器。
我在点击按钮时使用了以下代码:
protected void BtnShow_Click(object sender, EventArgs e)
{
GetLatLongFromAddress(TxtStreet.Text, TxtCity.Text, TxtZipcode.Text, TxtState.Text);
}
private void GetLatLongFromAddress(string street, string city, string zipcode, string state)
{
string geocoderUri = string.Format(@"http://maps.googleapis.com/maps/api/geocode/xml?address={0},{1},{2},{3}&sensor=false", street, city, zipcode, state);
XmlDocument geocoderXmlDoc = new XmlDocument();
geocoderXmlDoc.Load(geocoderUri);
XmlNamespaceManager nsMgr = new XmlNamespaceManager(geocoderXmlDoc.NameTable);
nsMgr.AddNamespace("geo", @"http://www.w3.org/2003/01/geo/wgs84_pos#");
string sLong = geocoderXmlDoc.DocumentElement.SelectSingleNode(@"geo:long", nsMgr).InnerText;
string sLat = geocoderXmlDoc.DocumentElement.SelectSingleNode(@"//geo:lat", nsMgr).InnerText;
TxtLatitude.Text = sLat;
TxtLongitude.Text = sLong;
}
但是它获取 sLong 变量的值为 null 并显示错误
"Object reference not set to an instance of an object."
我该怎么做?
等待答复...
谢谢..
【问题讨论】:
-
@AakashM - 感谢您的回复。是的,我已经读过了。但我没有任何想法。我该如何使用它以及我应该包含哪些头文件?
标签: c# asp.net visual-studio-2008 google-maps