国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
1. WeChat の地理的位置情報(bào)
2、地址位置的應(yīng)用處理
3、地址位置應(yīng)用擴(kuò)展
ホームページ WeChat アプレット WeChatの開発 C# は地理的位置を使用して WeChat ポータルとアプリケーションを開発し、関連アプリケーションを拡張します

C# は地理的位置を使用して WeChat ポータルとアプリケーションを開発し、関連アプリケーションを拡張します

Mar 01, 2017 am 10:33 AM

この記事は、前回の記事「C# で WeChat ポータルとアプリケーションを開発する (12) - 音聲処理の使用」に引き続き、WeChat の関連アプリケーションを紹介します。地理的位置情報(bào)は、ユーザーの位置を知ることに加えて、天気、人気の映畫、近くの観光スポット、近くの劇場、交通イベントなど、いくつかの地理的位置アプリケーションを関連付けることもできることがわかっています。とにかく、地理的位置に関連するすべての情報(bào)について、必要に応じて拡張アプリケーションを作成できます。この記事では主に、地理的位置情報(bào)を使用してこれらのアプリケーションを使用した運(yùn)用を構(gòu)築する方法を紹介します。

C# は地理的位置を使用して WeChat ポータルとアプリケーションを開発し、関連アプリケーションを拡張します

1. WeChat の地理的位置情報(bào)

それを使用する前に、地理的位置に関する情報(bào)を定義する WeChat のインターフェースを見てみましょう。実際、WeChat 上の地理的位置情報(bào)は 2 つの側(cè)面に分けられます。1 つはユーザーの地理的位置の要求を受信することであり、もう 1 つはユーザーが地理的位置の操作を報(bào)告することを許可し、定期的に送信される地理的位置情報(bào)です。

この記事では主に、最初のタイプ、つまりユーザーの地理的位置を報(bào)告した後にそれを処理する方法に基づいて、関連するアプリケーションを紹介します。

地理的位置のレポート操作は、+ 記號を選択して入力場所に地理的位置を追加し、現(xiàn)在または指定した地理的位置マップを選択することです。具體的な操作は次のとおりです。

C# は地理的位置を使用して WeChat ポータルとアプリケーションを開発し、関連アプリケーションを拡張します説明へC# は地理的位置を使用して WeChat ポータルとアプリケーションを開発し、関連アプリケーションを拡張します

ToUserNameDeveloper

WeChat ID


FromUserName

送信者アカウント(OpenID)

CreateTimeMsgType地理位置情報(bào)の次元地理的位置の経度地図のズームサイズ地理位置情報(bào)メッセージID、64 -ビット整數(shù)
メッセージ作成時(shí)間 (整數(shù))
location Location_X
Location_Y
縮尺
ラベル
MsgId

有了上面的地理位置信息,我們在程序里面,需要在消息傳遞過來的時(shí)候,定義一個(gè)實(shí)體類信息,承載相關(guān)的地理位置信息,方便我們進(jìn)一步的處理操作。

/// <summary>
    /// 接收的地理位置消息
    /// </summary>
    [System.Xml.Serialization.XmlRoot(ElementName = "xml")]
    public class RequestLocation : BaseMessage
    {    
        public RequestLocation()
        {
            this.MsgType = RequestMsgType.Location.ToString().ToLower();
        }
  
        /// <summary>
        /// 消息ID
        /// </summary>
        public Int64 MsgId { get; set; }
        /// <summary>
        /// 地理位置維度
        /// </summary>
        public decimal Location_X { get; set; }
        /// <summary>
        /// 地理位置經(jīng)度
        /// </summary>
        public decimal Location_Y { get; set; }
        /// <summary>
        /// 地圖縮放大小
        /// </summary>
        public int Scale { get; set; }
        /// <summary>
        /// 地理位置信息
        /// </summary>
        public string Label { get; set; }
    }

2、地址位置的應(yīng)用處理

不過上面的信息,顯然不符合我們擴(kuò)展應(yīng)用的要求,因此我們進(jìn)一步進(jìn)行完善里面對地理位置信息處理的操作。我們進(jìn)一步把關(guān)于地理位置的操作,放到事件處理模塊里面進(jìn)行處理,處理代碼如下所示。

 /// <summary>
        /// 對地理位置請求信息進(jìn)行處理
        /// </summary>
        /// <param name="info">地理位置請求信息實(shí)體</param>
        /// <returns></returns>
        public string HandleLocation(Entity.RequestLocation info)
        {
            string xml = "";

            ResponseText txtinfo = new ResponseText(info);
            txtinfo.Content = string.Format("您發(fā)送的地理位置是:{0}", info.Label);
            xml = txtinfo.ToXml();

            return xml;
        }

在處理的時(shí)候,我們需要先保存用戶的地理位置信息,把它存儲到用戶的上下文記錄里面。這樣我們在處理指令的時(shí)候,把它獲取到,然后傳遞給相關(guān)的方法就可以實(shí)現(xiàn)地理位置的擴(kuò)展應(yīng)用了。

            //保存經(jīng)緯度
            string location = string.Format("{0},{1}", lat, lon);            
            bool result = BLLFactory<UserSet>.Instance.UpdateUserInput(info.FromUserName, location);

首先對用戶地理位置的請求,我根據(jù)數(shù)據(jù)庫配置給出了一個(gè)用戶選擇的指令提示,如下所示。

C# は地理的位置を使用して WeChat ポータルとアプリケーションを開発し、関連アプリケーションを拡張します

為了對地理位置請求的處理,我定義了一個(gè)用于處理這個(gè)操作的指令操作

C# は地理的位置を使用して WeChat ポータルとアプリケーションを開発し、関連アプリケーションを拡張します

這樣整個(gè)地理位置的指令操作,就在應(yīng)答鏈里面進(jìn)行很好的跳轉(zhuǎn)管理了。那么為了實(shí)現(xiàn)天氣、放映影片、附近影院、旅游線路、交通事件等方面的擴(kuò)展應(yīng)用,我們應(yīng)該如何操作呢?

3、地址位置應(yīng)用擴(kuò)展

我們知道,百度或者騰訊都提供了一些開放平臺,給我們進(jìn)行各種方式的使用。那么我們這里以使用百度LBS平臺應(yīng)用來構(gòu)建一些模塊。

C# は地理的位置を使用して WeChat ポータルとアプリケーションを開発し、関連アプリケーションを拡張します

C# は地理的位置を使用して WeChat ポータルとアプリケーションを開発し、関連アプリケーションを拡張します

這上面都有很多相關(guān)的接口供使用,我們可以根據(jù)其提供的數(shù)據(jù)格式進(jìn)行封裝,然后進(jìn)行調(diào)用處理就可以了。

剛才說了,我配置了一些指令,用來構(gòu)建相關(guān)的應(yīng)用,指令的最后是一些事件代碼的定義,我們對這些末端的事件代碼進(jìn)行處理,就可以給用戶返回相關(guān)的信息了,總體的操作代碼如下所示。

/// <summary>
        /// 其他插件操作,如天氣,景點(diǎn)、電影影訊、交通等
        /// </summary>
        /// <param name="info">基礎(chǔ)消息</param>
        /// <param name="eventKey">事件標(biāo)識</param>
        /// <returns></returns>
        public string DealPlugin(BaseMessage info, string eventKey)
        {
            //LogTextHelper.Info(eventKey);
            string userInput = BLLFactory<UserSet>.Instance.GetUserInput(info.FromUserName);
            string xml = "";
            switch (eventKey)
            {
                case "event-void-wether":
                    xml = new WeatherPlugin().Response(info, userInput);
                    break;
                case "event-void-movie":
                    xml = new MoviePlugin().Response(info, userInput);
                    break;
                case "event-void-cinema":
                    xml = new CinemaPlugin().Response(info, userInput);
                    break;
                case "event-void-travel":
                    xml = new TravelPlugin().Response(info, userInput);
                    break;
                case "event-void-traffic":
                    xml = new TrafficEventPlugin().Response(info, userInput);
                    break;
                default:
                    break;
            }
            return xml;
        }

這里以天氣為例,說明該如何調(diào)用百度的接口的,首先我們封裝一下相關(guān)的接口調(diào)用。

/// <summary>
        /// 根據(jù)參數(shù)調(diào)用百度接口,獲取相關(guān)的結(jié)果數(shù)據(jù)
        /// </summary>
        /// <param name="location">地理位置</param>
        /// <param name="ak">API調(diào)用鍵</param>
        /// <returns></returns>
        public BaiduWeatherResult Execute(string location, string ak)
        {
            location = HttpUtility.UrlEncode(location);
            var url = string.Format("http://api.map.baidu.com/telematics/v3/weather?location={0}&output=json&ak={1}", location, ak);

            BaiduWeatherResult result = BaiduJsonHelper<BaiduWeatherResult>.ConvertJson(url);
            return result;
        }

其中的BaiduWeatherResult 是我根據(jù)調(diào)用返回的Json結(jié)果,構(gòu)建的一個(gè)實(shí)體類,用來存儲返回的內(nèi)容。具體代碼如下所示。

/// <summary>
    /// 天氣請求結(jié)果Json對象
    /// </summary>
    public class BaiduWeatherResult : BaiduResult
    {
        /// <summary>
        /// 天氣預(yù)報(bào)信息
        /// </summary>
        public List<BaiduWeatherData> results = new List<BaiduWeatherData>();
    }

    /// <summary>
    /// 城市的天氣信息
    /// </summary>
    public class BaiduWeatherData
    {
        /// <summary>
        /// 當(dāng)前城市
        /// </summary>
        public string currentCity { get; set; }

        /// <summary>
        /// 天氣預(yù)報(bào)信息
        /// </summary>
        public List<BaiduWeatherJson> weather_data = new List<BaiduWeatherJson>();
    }

    /// <summary>
    /// 天氣預(yù)報(bào)的單條記錄Json信息
    /// </summary>
    public class BaiduWeatherJson
    {
        /// <summary>
        /// 天氣預(yù)報(bào)時(shí)間
        /// </summary>
        public string date { get; set; }

        /// <summary>
        /// 白天的天氣預(yù)報(bào)圖片url
        /// </summary>
        public string dayPictureUrl { get; set; }

        /// <summary>
        /// 晚上的天氣預(yù)報(bào)圖片url
        /// </summary>
        public string nightPictureUrl { get; set; }

        /// <summary>
        /// 天氣狀況
        /// </summary>
        public string weather { get; set; }

        /// <summary>
        /// 風(fēng)力
        /// </summary>
        public string wind { get; set; }

        /// <summary>
        /// 溫度
        /// </summary>
        public string temperature { get; set; }
    }

為了構(gòu)建返回給客戶的圖文數(shù)據(jù),我們需要構(gòu)建一個(gè)News對象,然后生成XML數(shù)據(jù)返回給服務(wù)器進(jìn)行處理即可。

/// <summary>
        /// 響應(yīng)用戶請求,并返回相應(yīng)的XML數(shù)據(jù)
        /// </summary>
        /// <param name="info">微信基礎(chǔ)信息</param>
        /// <param name="location">地理位置:經(jīng)緯度坐標(biāo)或者地名</param>
        /// <returns></returns>
        public string Response(BaseMessage info, string location)
        {
            string xml = "";

            //"廣州" 或者 "116.305145,39.982368"    
            if (!string.IsNullOrEmpty(location))
            {
                BaiduWeatherResult result = Execute(location, baiduAK);
                if (result != null && result.results.Count > 0)
                {
                    BaiduWeatherData data = result.results[0];
                    if (data != null)
                    {
                        ArticleEntity first = new ArticleEntity();
                        first.Title = string.Format("{0} 天氣預(yù)報(bào)", data.currentCity);

                        ResponseNews news = new ResponseNews(info);
                        news.Articles.Add(first);

                        int i = 0;
                        foreach (BaiduWeatherJson json in data.weather_data)
                        {
                            ArticleEntity article = new ArticleEntity();
                            article.Title = string.Format("{0}\n{1} {2} {3}", json.date, json.weather, json.wind, json.temperature);
                            if (i++ == 0)
                            {
                                article.PicUrl = IsDayTime() ? json.dayPictureUrl : json.nightPictureUrl;
                            }
                            else
                            {
                                article.PicUrl = json.dayPictureUrl;
                            }
                            news.Articles.Add(article);
                        }

                        xml = news.ToXml();
                    }
                }
            }

            return xml;
        }

這樣就很好實(shí)現(xiàn)了整體的功能了,具體界面功能可以訪問我的微信(廣州愛奇迪)進(jìn)行了解,下面是功能截圖供參考。

C# は地理的位置を使用して WeChat ポータルとアプリケーションを開発し、関連アプリケーションを拡張します? ?C# は地理的位置を使用して WeChat ポータルとアプリケーションを開発し、関連アプリケーションを拡張します

C# は地理的位置を使用して WeChat ポータルとアプリケーションを開発し、関連アプリケーションを拡張します?C# は地理的位置を使用して WeChat ポータルとアプリケーションを開発し、関連アプリケーションを拡張します

C# は地理的位置を使用して WeChat ポータルとアプリケーションを開発し、関連アプリケーションを拡張します

関連アプリケーションを拡張するために地理的位置を使用する WeChat ポータルおよびアプリケーションの C# 開発については、PHP 中國語 Web サイトに注目してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)