Heim >WeChat-Applet >WeChat-Entwicklung >Entwicklung der öffentlichen WeChat-Plattform: Beschreibung der kartenbezogenen Schnittstelle
Um die Entwicklung von LBS-Anwendungen zu erleichtern, kapselt das SDK häufig verwendete Berechnungsformeln und Kartenschnittstellen von Baidu und Google.
Häufig verwendete Berechnungen:
Wird zur Berechnung des geradlinigen Abstands zwischen zwei Koordinatenpunkten verwendet: Senparc.Weixin.MP.Helpers.Distance(double n1, double e1, double n2, double e2 )
Ermitteln Sie den Dimensionsunterschied basierend auf der Entfernung: Senparc.Weixin.MP.Helpers.GetLatitudeDifference(double km)
Ermitteln Sie den Längengradunterschied basierend auf der Entfernung: Senparc.Weixin.MP.Helpers. GetLongitudeDifference(double km)
Baidu-API-Klasse: Senparc.Weixin.MP.Helpers.BaiduMapHelper
URL der statischen Baidu-Karte generieren: BaiduMapHelper.GetBaiduStaticMap(double lng, double lat, int scale, int zoom, IList860ae19668d357bf16248a4a1cc9fea3 platziert oder direkt Article.PicUrl von ResponseMessageNews zugewiesen werden.
entspricht der GoogleMap-API und sorgt für ein konsistentes Bedienerlebnis im SDK.
GoogleMap-API-Klasse: Senparc.Weixin.MP.Helpers.GoogleMapHelper
URL der statischen Baidu-Karte generieren: GoogleMapHelper.GetGoogleStaticMap(int scale, IListdc4e1a1392a6c2b24aeb81b3381d4710 markersList, string size = "640x640" )
Die generierte Adresse lautet wie folgt:
http://maps.googleapis.com/maps/api/staticmap?center=&zoom=&size=640x640&maptype=roadmap&format=jpg&sensor=false&sprache= zh&&markers= Kombinations-SDK, wir können die Kartenschnittstelle verwenden, um einige Funktionen auszuführen, wenn der Benutzer eine Standortnachricht sendet. Beispielsweise verarbeiten wir die Nachricht in der OnLocationRequest-Praxis von 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> }