我在哪里可以获得英国学校的学费?

时间:2011-02-07 09:35:12

标签: google-maps

我想在我的谷歌地图上包含学校位置,如果可能有关学校的一些数据,将会大大收到任何帮助。

此致

罗比

2 个答案:

答案 0 :(得分:3)

UK Government list of schools and colleges直接来自英国政府网站,包括位置...您可能需要获取该位置并将其转换为纬度/长度(可能来自邮政编码数据)。

有关其他数据集的链接,请参阅this link,包括学生成绩和缺勤(按居住地点划分)

答案 1 :(得分:1)

Google提供地理编码服务,如果您知道地址,则可以使用该服务。这段代码将向Google查询地址的纬度和经度,一旦您拥有纬度和经度,您就可以在Google地图上绘制学校的位置:

public string GeocodeAddress(string address)
{
    DateTime startTime = DateTime.Now;

    address = address.Replace(' ', '+');

    string url = string.Format(_GEOCODE_API_TEMPLATE, address, "csv", _GOOGLE_API_KEY);

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

    IWebProxy proxy = WebRequest.DefaultWebProxy;
    proxy.Credentials = CredentialCache.DefaultNetworkCredentials;
    request.Proxy = proxy;

    StringBuilder location = new StringBuilder();
    HttpWebResponse response = null;
    try
    {
        response = (HttpWebResponse)request.GetResponse();

        if (response.StatusCode != HttpStatusCode.OK)
            throw new System.Net.WebException( string.Format("Bad response code: {0}", response.StatusCode));

        StreamReader sr = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));
        char[] chars = new char[256];
        int pos = 0;
        int numCharsRead = 0;
        while ( (numCharsRead = sr.Read(chars, 0, chars.Length)) > 0)
        {
            pos += numCharsRead;
            location.Append(chars, 0, numCharsRead);
        }
    }
    finally
    {
        if (response != null)
            response.Close();
    }  

    return location.ToString();
}

然后需要解析返回的位置:

float latitude, longitude;
float.TryParse(ar.RawGeocode.Split(',')[2], out latitude);
float.TryParse(ar.RawGeocode.Split(',')[3], out longitude);

用于查询Google API的网址是:

private const string _GEOCODE_API_TEMPLATE = "http://maps.google.com/maps/geo?q={0}&output={1}&key={2}";

key由Google申请并生成,特别适用于您的请求域。您可以免费获得此密钥(因此使用该服务),但速率有限 - 上次我检查时他们每天限制您50K请求。我忘记了你去申请密钥的网址了,但是如果你谷歌它就不会有太多问题......呵呵:)