Maison  >  Article  >  Applet WeChat  >  Développement de la plateforme publique WeChat : description de l'interface liée à la carte

Développement de la plateforme publique WeChat : description de l'interface liée à la carte

高洛峰
高洛峰original
2017-02-27 13:31:492163parcourir

Afin de faciliter le développement d'applications LBS, le SDK encapsule les formules de calcul et les interfaces cartographiques couramment utilisées de Baidu et Google.

Calculs couramment utilisés :

Utilisé pour calculer la distance en ligne droite entre deux points de coordonnées : Senparc.Weixin.MP.Helpers.Distance(double n1, double e1, double n2, double e2 )

Obtenez la différence dimensionnelle en fonction de la distance : Senparc.Weixin.MP.Helpers.GetLatitudeDifference(double km)

Obtenez la différence de longitude en fonction de la distance : Senparc.Weixin.MP.Helpers. GetLongitudeDifference(double km)

Classe API Baidu : Senparc.Weixin.MP.Helpers.BaiduMapHelper

Générer une carte statique Baidu URL : BaiduMapHelper.GetBaiduStaticMap(double lng, double lat, int scale, int zoom, IList6de41607b9a88b3634a86006728cf03b, ou directement affectée à Article.PicUrl de ResponseMessageNews.

correspond à l'API GoogleMap et offre une expérience de fonctionnement cohérente dans le SDK.

Classe API GoogleMap : Senparc.Weixin.MP.Helpers.GoogleMapHelper

Générer une carte statique Baidu URL : GoogleMapHelper.GetGoogleStaticMap(int scale, IListdc4e1a1392a6c2b24aeb81b3381d4710 MarkersList, string size = "640x640" )

L'adresse générée est la suivante :

http://maps.googleapis.com/maps/api/staticmap?center=&zoom=&size=640x640&maptype=roadmap&format=jpg&sensor=false&langage= zh&&markers= color:red|label:O|31.285774,120.59761&markers=color:blue|label:T|31.289774,120.59791


Combiné avec le SDk , nous pouvons Lorsque l'utilisateur envoie un message de localisation, utiliser l'interface cartographique pour exécuter certaines fonctions. Par exemple, nous traitons le message dans la pratique OnLocationRequest de MessageHandler :

/// <summary>
   /// 处理位置请求
   /// </summary>
   /// <param name="requestMessage"></param>
   /// <returns></returns>
   public override IResponseMessageBase OnLocationRequest(RequestMessageLocation requestMessage)
   {
       var responseMessage = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageNews>(requestMessage);
 
       var markersList = new List<GoogleMapMarkers>();
       markersList.Add(new GoogleMapMarkers()
       {
           X = requestMessage.Location_X,
           Y = requestMessage.Location_Y,
           Color = "red",
           Label = "S",
           Size = GoogleMapMarkerSize.Default,
       });
       var mapSize = "480x600";
       var mapUrl = GoogleMapHelper.GetGoogleStaticMap(19 /*requestMessage.Scale*//*微信和GoogleMap的Scale不一致,这里建议使用固定值*/,
                                                       markersList, mapSize);
       responseMessage.Articles.Add(new Article()
       {
           Description = string.Format("您刚才发送了地理位置信息。Location_X:{0},Location_Y:{1},Scale:{2},标签:{3}",
                         requestMessage.Location_X, requestMessage.Location_Y,
                         requestMessage.Scale, requestMessage.Label),
           PicUrl = mapUrl,
           Title = "定位地点周边地图",
           Url = mapUrl
       });
       responseMessage.Articles.Add(new Article()
       {
           Title = "微信公众平台SDK 官网链接",
           Description = "Senparc.Weixin.MK SDK地址",
           PicUrl = "http://weixin.senparc.com/images/logo.jpg",
           Url = "http://weixin.senparc.com"
       });
return responseMessage;<br> }

Dans le développement réel. processus, en plus d'afficher l'emplacement Pour information, nous pouvons également récupérer les points les plus proches en fonction de l'emplacement actuel de l'utilisateur, les afficher dans des articles et calculer la distance.

Pour plus de développement de la plateforme publique WeChat : instructions d'interface liées à la carte et articles connexes, veuillez faire attention au site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn