c#通过谷歌地图API获得地区经纬度

c#通过谷歌地图API获得地区经纬度

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Web;
using System.IO;
using KangryUtils;
using System.Xml;

namespace CrawlerMonitor
{
    class Geo
    {
        public static List<string> getLngAndLat(string locationName) {
            List<string> lngAndLat = new List<string>();
            string url = "http://maps.google.com/maps/api/geocode/xml?address=" + HttpUtility.UrlDecode(locationName) + "&sensor=false";
            string responseString = "";
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://maps.google.com/maps/api/geocode/xml?address=" + HttpUtility.UrlDecode(locationName) + "&sensor=false");
                request.Timeout = 30 * 1000;
                request.Method = "GET";
                request.Accept = "*/*";
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                StreamReader sdr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                responseString = sdr.ReadToEnd();
                sdr.Close();
                response.Close();
            }
            catch (Exception e)
            {
                common.LOG.errorLog("Failed to get data from " + url + ". " + e.Message);
            }
            if (responseString != "")
            {
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(responseString);
                try
                {
                    string lat = doc.SelectSingleNode("/GeocodeResponse/result/geometry/location/lat").InnerText;
                    string lng = doc.SelectSingleNode("/GeocodeResponse/result/geometry/location/lng").InnerText;
                    lngAndLat.Add(lng);
                    lngAndLat.Add(lat);
                }
                catch (Exception e)
                {
                    common.LOG.errorLog("Failed to get lng and lat from string: "+responseString+". "+ e.Message);
                }
            }
            return lngAndLat;
        }
    }
}


0 条评论

    发表评论

    电子邮件地址不会被公开。 必填项已用 * 标注