“消息”子页设计完成了,又该怎么去获取“消息”的天气和当前地点等信息数据。我们需在界面的Load事件中调用GPS的GetGps方法,这里楼楼设置了GPS的超时时间,超时时间是可以不设置的,因为默认的超时时间是6000毫- ///获取当前日期
- lbldatetime.Text = System.DateTime.Today.ToString("MM月dd日 dddd", new System.Globalization.CultureInfo("zh-CN"));
- ///GPS超时时间
- Gps1.TimeOut = 7000;
- ///调用GPS
- Gps1.GetGps();
复制代码
获取GPS数据则需要通过GPS的GotLocation事件,这里我们需要获取天气所以要调用天气的插件
- public static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
- {
- return true;
- }
复制代码
- private void Gps1_GotLocation(object sender, GPSData e)
- {
- try {
- if (string.IsNullOrEmpty(e.ErrorInfo)) {
- if (e.Longitude.Equals(0) & e.Latitude.Equals(0)) {
- this.LblGps.Text = "定位中...";
- } else {
- this.LblGps.Text = e.Location;
- RemoteCertificateValidationCallback re = new RemoteCertificateValidationCallback(ValidateServerCertificate);
- ServicePointManager.ServerCertificateValidationCallback = re;
- string Longitude = e.Longitude.ToString;
- //经度
- string Latitude = e.Latitude.ToString;
- //纬度
- WebClient WebServer = new WebClient();
- string str = "http://api.map.baidu.com/telematics/v3/weather?location=" + Longitude + "," + Latitude + "&output=xml&ak=h9unLzxMnPSE9hoDTvGUw9YB&mcode=100";
- HttpWebRequest request = HttpWebRequest.Create(str);
- HttpWebResponse response = request.GetResponse();
- StreamReader sr2 = new StreamReader(response.GetResponseStream, Encoding.UTF8);
- string text2 = sr2.ReadToEnd();
- Xml.XmlDocument doc = new Xml.XmlDocument();
- doc.LoadXml(text2);
- Xml.XmlNode weather1 = doc.SelectSingleNode("CityWeatherResponse").Item("results").Item("weather_data").Item("weather");
- string str1 = weather1.FirstChild().Value.ToString;
- Xml.XmlNode temper1 = doc.SelectSingleNode("CityWeatherResponse").Item("results").Item("weather_data").Item("temperature");
- string str2 = temper1.FirstChild().Value.ToString;
- Xml.XmlNode wind1 = doc.SelectSingleNode("CityWeatherResponse").Item("results").Item("weather_data").Item("wind");
- string str3 = wind1.FirstChild().Value.ToString;
- Xml.XmlNode city1 = doc.SelectSingleNode("CityWeatherResponse").Item("results").Item("currentCity");
- string str4 = city1.FirstChild().Value.ToString;
- this.lblweather.Text = str2 + " " + str1 + " ";
- }
- }
- } catch (Exception ex) {
- this.LblGps.Text = "定位中...";
- }
- }
复制代码
|