Windows Phone開發之GPS、Web Service服務使用簡介

來源:互聯網
上載者:User

說明:
一個按鈕button1,對應一個button1_click事件,一個TextBlock,用來顯示內容。點擊該按鈕可以得到當前GPS座標,並根據座標得出當前所在的位置描述。該應用依賴於手機GPS的硬體支援,模擬器提供不了。根據提供的GPS的經緯度調用自訂的Web Service方法來得到位置描述。

介面圖如下:

代碼如下:

 private void button1_Click(object sender, RoutedEventArgs e)        {            //點擊按鍵 找到我的位置(依賴於WP手機的GPS硬體支援)            GeoCoordinateWatcher myWatcher = new GeoCoordinateWatcher();            var myPosition = myWatcher.Position;            //北京維度 經度            double latitude = 39.92;            double longitude = 116.46;            if (!myPosition.Location.IsUnknown) {                latitude = myPosition.Location.Latitude;                longitude = myPosition.Location.Longitude;            }//文字框輸出經緯度資訊            textBlock1.Text = "latitude==" + latitude + "\n" + "longitude==" + longitude+"\n";            //Web serive服務初始化(此處用法與WM開發有不同,需注意)            ServiceReference1.Service1SoapClient client = new ServiceReference1.Service1SoapClient();            client.myLocationCompleted +=new EventHandler<ServiceReference1.myLocationCompletedEventArgs>(client_myLocationCompleted);            //調用Web Service方法            client.myLocationAsync(latitude, longitude);         }        void client_myLocationCompleted(object sender, ServiceReference1.myLocationCompletedEventArgs e)        {            //throw new NotImplementedException();if(e.Error!=null){MessageBox.Show("請檢查網路連接,暫時訪問不到服務端.");                return;}else{            //接收返回結果            textBlock1.Text += e.Result.ToString();}        }

----------------------------------------------

Web Service代碼如下:

using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Linq;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;using System.Xml.Linq;namespace LBSWebService {    /// <summary>    /// Service1 的摘要說明    /// </summary>    [WebService(Namespace = "http://tempuri.org/")]    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]    [ToolboxItem(false)]    // 若要允許使用 ASP.NET AJAX 從指令碼中調用此 Web 服務,請取消對下行的注釋。    // [System.Web.Script.Services.ScriptService]    public class Service1 : System.Web.Services.WebService {        [WebMethod]        public string myLocation(double x,double y) {            //自己隨便寫的一個Web Service服務            string myLocation="北京海澱區西直門北大街1號";            return myLocation;        }    }}

小技巧:
本地Web Service測試時,沒必要將該Web Service服務發布,只需要將Service1.asmx介面作為啟動頁在瀏覽器瀏覽。VS IDE會有簡易服務啟動該程式,將該地址URL複製即可添加到WP用戶端作為web引用。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.