> 위챗 애플릿 > 위챗 개발 > WeChat 공개 플랫폼 개발: 지도 관련 인터페이스 설명

WeChat 공개 플랫폼 개발: 지도 관련 인터페이스 설명

高洛峰
풀어 주다: 2017-02-27 13:31:49
원래의
2190명이 탐색했습니다.

SDK는 LBS 애플리케이션 개발을 용이하게 하기 위해 Baidu 및 Google에서 일반적으로 사용되는 계산 공식과 지도 인터페이스를 캡슐화합니다.

일반적으로 사용되는 계산:

두 좌표점 사이의 직선 거리를 계산하는 데 사용됩니다: Senparc.Weixin.MP.Helpers.Distance(double n1, double e1, double n2, double e2 )

거리에 따른 차원차 구하기: Senparc.Weixin.MP.Helpers.GetLatitudeDifference(double km)

거리에 따른 경도차 구하기: Senparc.Weixin.MP.Helpers. GetLongitudeDifference(double km)

Baidu API 클래스: Senparc.Weixin.MP.Helpers.BaiduMapHelper

Baidu 정적 지도 생성 URL: BaiduMapHelper.GetBaiduStaticMap(double lng, double lat, int scale, int Zoom, IList

최종 생성된 주소는 다음과 같습니다.

http://maps.googleapis.com/maps/ api/staticmap?center=&zoom =13&size=640x640&maptype=roadmap&format=jpg&sensor=false&언어=zh&&markers=color:red%7Clabel:O%7C31.285774,120.59761&markers=color:blue%7Clabel:T%7C31.289774,120.59791


생성된 URL은 에 직접 배치하거나 ResponseMessageNews의 Article.PicUrl에 직접 할당할 수 있습니다.

은 GoogleMap API에 해당하며 SDK에서 일관된 운영 경험을 제공합니다.

GoogleMap API 클래스: Senparc.Weixin.MP.Helpers.GoogleMapHelper

Baidu 정적 지도 URL 생성: GoogleMapHelper.GetGoogleStaticMap(int scale, IList markersList, 문자열 크기 = "640x640" )

생성된 주소는 다음과 같습니다.

http://maps.googleapis.com/maps/api/staticmap?center=&zoom=&size=640x640&maptype=roadmap&format=jpg&sensor=false&언어= zh&&markers= 조합 SDk를 사용하면 사용자가 위치 메시지를 보낼 때 지도 인터페이스를 사용하여 일부 기능을 수행할 수 있습니다. 예를 들어 MessageHandler의 OnLocationRequest 사례에서 메시지를 처리합니다.

/// <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> }
로그인 후 복사

실제 개발 프로세스에서는 출력되는 위치 정보 외에도 사용자의 현재 위치를 기준으로 가장 가까운 지점을 검색하여 기사로 출력하고 거리를 계산할 수도 있습니다.

더 많은 WeChat 공개 플랫폼 개발: 지도 관련 인터페이스 지침 및 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿