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, IListadb8a6cca93a3efa6e96497a8f633edb에 직접 배치하거나 ResponseMessageNews의 Article.PicUrl에 직접 할당할 수 있습니다.
은 GoogleMap API에 해당하며 SDK에서 일관된 운영 경험을 제공합니다.
GoogleMap API 클래스: Senparc.Weixin.MP.Helpers.GoogleMapHelper
Baidu 정적 지도 URL 생성: GoogleMapHelper.GetGoogleStaticMap(int scale, IListdc4e1a1392a6c2b24aeb81b3381d4710 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> }
실제 개발 프로세스에서는 출력되는 위치 정보 외에도 사용자의 현재 위치를 기준으로 가장 가까운 지점을 검색하여 기사로 출력하고 거리를 계산할 수도 있습니다.