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, IList L'adresse finale générée est la suivante : http://maps.googleapis.com/maps/ api/staticmap?center=&zoom =13&size=640x640&maptype=roadmap&format=jpg&sensor=false&lingual=zh&&markers=color:red|label:O|31.285774,120.59761&markers=color:blue|label:T|31.289774,120.59791 L'URL générée peut être placée directement dans , 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, IList 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 : 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 ! /// <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> }