C#通过Google Map获取给定地名的经纬度值

by shinichi_wtn 2010-01-14 16:24

参考了网上部分资料,自己改写了一个方便的获取经纬度信息的类Geo,其中Latitude和Longtitude分别是纬度和经度。其中最重要的构造函数就是传入地名,通过Webrequest从Google Map获得经纬度值,在含有地理位置信息的项目里可以很方便的调用,即Geo g = new Geo("北京师范大学");然后g.Latitude和g.Longtitude就是北京师范大学的纬度和经度了,它们分别是39.9614580,116.3692820。Geo的实现如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
 
namespace YourNameSpace
{
    /// 
    /// a class for latitude and longtitude
    /// 
    [Serializable]
    public class Geo
    {
        /// 
        /// latitude
        /// 
        private string _latitude = "";
 
        /// 
        /// longtitude
        /// 
        private string _longtitude = "";
 
        /// 
        /// default constructor
        /// 
        public Geo()
        {
 
        }
 
        /// 
        /// construct geo given latitude and longtitude
        /// 
        public Geo(string latitude, string longtitude)
        {
            _latitude = latitude;
            _longtitude = longtitude;
        }
        
        /// 
        /// construct geo given name of a place
        ///  
        public Geo(string location)
        {
            string output = "csv";
            string url = string.Format("http://maps.google.com/maps/geo?q={0}&output={1}", location, output);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            using (StreamReader sr = new StreamReader(response.GetResponseStream()))
            {
                string[] tmpArray = sr.ReadToEnd().Split(',');
                _latitude = tmpArray[2];
                _longtitude = tmpArray[3];
            }
        }
 
        /// 
        /// get latitude
        /// 
        public string Latitude
        {
            get { return _latitude; }
            set { _latitude = value; }
        }
 
        /// 
        /// get longtitude
        /// 
        public string Longtitude
        {
            get { return _longtitude; }
            set { _longtitude = value; }
        }
    }
}

Tags: ,

C#

Comments (2) -

尐孩吇氣 People's Republic of China
10/21/2010 8:57:46 AM #

只有一句话。。。真牛逼!!!!!!!!!谢谢分享!!!!

Reply

荧光鼠 People's Republic of China
3/14/2011 2:25:18 PM #

太感谢了,我正找这方面的东西!

Reply

(仅用于Gavatar)

  Country flag

biuquote
  • Comment
  • Preview
Loading

About

shinichi_wtnI'm Shinichi_wtn

Software Engineering Manager at Microsoft

[More...]


Month List