|
开始准备用百度API,要什么秘钥,太麻烦了,找了个GOOGLE的
如下网址内容可参考
http://www.cnblogs.com/liuhaorain/archive/2012/01/31/2334018.html
这里有PC和PDA平台2中:
PC下转换:
//webclient客户端对象 WebClient client = new WebClient(); string url = "http://maps.google.com/maps/api/geocode/xml?latlng=" + latitude + "," + longitude + "&language=zh-CN&sensor=false";//请求地址 client.Encoding = Encoding.UTF8;//编码格式 string responseTest = client.DownloadString(url); //下载xml响应数据 string address = "";//返回的地址 XmlDocument doc = new XmlDocument(); //创建XML文档对象 if (!string.IsNullOrEmpty(responseTest)) { doc.LoadXml(responseTest);//加载xml字符串 //查询状态信息 string xpath = @"GeocodeResponse/status"; XmlNode node = doc.SelectSingleNode(xpath); string status = node.InnerText.ToString(); if (status == "OK") { //查询详细地址信息 xpath = @"GeocodeResponse/result/formatted_address"; node = doc.SelectSingleNode(xpath); address = node.InnerText.ToString(); //查询地区信息 XmlNodeList nodeListAll = doc.SelectNodes("GeocodeResponse/result"); XmlNode idt = nodeListAll[0]; XmlNodeList idts = idt.SelectNodes("address_component[type='sublocality']"); //address_component[type='sublocality']表示筛选type='sublocality'的所有相关子节点; XmlNode idtst = idts[0]; string area = idtst.SelectSingleNode("short_name").InnerText; address = address + "," + area; } }
PDA下:
void Getarea( string longitude,string latitude) { webclient客户端对象 //WebClient client = new WebClient(); //string url = "http://maps.google.com/maps/api/geocode/xml?latlng=" + latitude + "," + longitude + "&language=zh-CN&sensor=false";//请求地址 //client.Encoding = Encoding.UTF8;//编码格式 string url = "http://maps.google.com/maps/api/geocode/xml?latlng=" + latitude + "," + longitude + "&language=zh-CN&sensor=false";//请求地址 //string responseTest = client.DownloadString(url); string responseTest = GetData(url); //下载xml响应数据 string address = "";//返回的地址 XmlDocument doc = new XmlDocument(); //创建XML文档对象 if (!string.IsNullOrEmpty(responseTest)) { doc.LoadXml(responseTest);//加载xml字符串 //查询状态信息 string xpath = @"GeocodeResponse/status"; XmlNode node = doc.SelectSingleNode(xpath); string status = node.InnerText.ToString(); if (status == "OK") { //查询详细地址信息 xpath = @"GeocodeResponse/result/formatted_address"; node = doc.SelectSingleNode(xpath); address = node.InnerText.ToString(); //查询地区信息 XmlNodeList nodeListAll = doc.SelectNodes("GeocodeResponse/result"); XmlNode idt = nodeListAll[0]; XmlNodeList idts = idt.SelectNodes("address_component[type='sublocality']"); //address_component[type='sublocality']表示筛选type='sublocality'的所有相关子节点; XmlNode idtst = idts[0]; string area = idtst.SelectSingleNode("short_name").InnerText; label4.Text = address + "," + area; //address = address + "," + area; Addtxt(address + "," + area); } } }
string GetData(string url) { try { HttpWebRequest myRequst = (HttpWebRequest)WebRequest.Create(url); myRequst.Method = "GET"; myRequst.ContentType = "text/html;charset=UTF-8"; HttpWebResponse response = (HttpWebResponse)myRequst.GetResponse(); Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("UTF-8")); string retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); return retString; } catch (System.Exception ex) { return string.Empty; } }
|