您的位置:首页 > 编程语言 > C#

C#根据经纬度请求返回坐标实际地址

2011-04-23 16:28 323 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;
using System.Net;
using System.IO;
using System.Configuration;
using System.Xml;

namespace WSGPSGateway.BLL
{
public class LocationAPI
{
public static string GetAddressByLatLng(string Lat, string Lng)
{
string CellUrl = "http://*******/CellAPI.aspx?Lat={0}&Lng={1}&Type=99";
string url = string.Format(CellUrl, Lat.ToString(), Lng.ToString());
string htm = GetPage(url);
return htm;
}

public static string GetPage(string url)
{
if (url == "") return "";
WebResponse response = null;
Stream stream = null;
StreamReader reader = null;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.UserAgent = @"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.40607; .NET CLR 1.1.4322)";
request.Timeout = 5000;
response = request.GetResponse();
stream = response.GetResponseStream();

if (Get_Chartset(response.Headers["Content-Type"].ToString()).ToLower() == "gbk")
{
reader = new StreamReader(stream, System.Text.Encoding.GetEncoding("GB2312"));
}
else if (Get_Chartset(response.Headers["Content-Type"].ToString()).ToLower() == "utf-8")
{
reader = new StreamReader(stream, System.Text.Encoding.UTF8);
}
else
{
reader = new StreamReader(stream, System.Text.Encoding.UTF8);
}
string buffer = reader.ReadToEnd();
return buffer;
}

catch (Exception ex)
{
DAL.Log.Write("google抓取数据失败异常! \0   错误记录:" + ex + "\r\n");
return "";
}
finally
{
if (reader != null) reader.Close();
if (stream != null) stream.Close();
if (response != null) response.Close();
}
}

public static string Get_Chartset(string s)
{
if (s.ToLower() == "text/html")
{
return "gbk";
}
else
{
int l = s.IndexOf("charset=") + 8;
return s.Substring(l, s.Length - l);
}
}

public string GetLatLng(string CID, string LAC)
{
string Url = "http://********/CellAPI.aspx?cid={0}&lac={1}";
Url = String.Format(Url, CID, LAC);
string LatLng = "";
try
{
LatLng = BLL.LocationAPI.GetPage(Url);
}
catch (Exception ex)
{
DAL.Log.Write("获取基站地址发生错误! \0  错误记录:" + ex + "\r\n");
DAL.Log.Write("-----------------------------------------------------------\r\n");
}
return LatLng;

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: