Heim  >  Artikel  >  WeChat-Applet  >  Entwicklung der öffentlichen WeChat-Plattform: Beschreibung der kartenbezogenen Schnittstelle

Entwicklung der öffentlichen WeChat-Plattform: Beschreibung der kartenbezogenen Schnittstelle

高洛峰
高洛峰Original
2017-02-27 13:31:492128Durchsuche

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:


In Der eigentliche Entwicklungsprozess. Zusätzlich zur Ausgabe von Standortinformationen können wir auch die nächstgelegenen Punkte basierend auf dem aktuellen Standort des Benutzers abrufen, diese in Artikeln ausgeben und die Entfernung berechnen.

Weitere Informationen zur Entwicklung der öffentlichen WeChat-Plattform: Anweisungen zur kartenbezogenen Benutzeroberfläche und zugehörige Artikel finden Sie auf der chinesischen PHP-Website!

/// <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> }
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn