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 생성된 주소는 다음과 같습니다. 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> }