public static M经纬度 百度坐标转谷歌坐标(M经纬度 百度坐标) { var __gcj = H坐标转换.bd09_To_Gcj02(百度坐标.纬度, 百度坐标.经度); return(new M经纬度(__gcj.Lng, __gcj.Lat) { 类型 = E坐标类型.谷歌 }); }
private void 显示行政区(M行政区位置 __行政区) { this.out地图.Position = new PointLatLng(__行政区.纬度, __行政区.经度); //绘制边界 _边界图层.Routes.Clear(); var __位置列表 = new List <PointLatLng>(); __行政区.边界坐标.ForEach(__点列表 => { var __GPS = new List <PointLatLng>(); __点列表.ForEach(q => { //double __谷歌经度 = q.Lng; //double __谷歌纬度 = q.Lat; //HGPS坐标转换.百度坐标转谷歌坐标(q.Lat, q.Lng, out __谷歌纬度, out __谷歌经度); //__GPS.Add(new PointLatLng(__谷歌纬度, __谷歌经度)); if (!Equals(_当前地图, GMapProviders.BaiduMap)) { __GPS.Add(H坐标转换.bd09_To_Gcj02(q.Lat, q.Lng)); } else { __GPS.Add(q); } }); __位置列表.AddRange(__GPS); var __线 = new GMapRoute(__GPS, "") { Stroke = new Pen(Color.Blue) { Width = 2, } }; _边界图层.Routes.Add(__线); }); if (__位置列表.Count > 0) { double __最小经度 = 180; double __最大经度 = -180; double __最小纬度 = 90; double __最大纬度 = -90; __位置列表.ForEach(q => { __最小经度 = Math.Min(__最小经度, q.Lng); __最大经度 = Math.Max(__最大经度, q.Lng); __最小纬度 = Math.Min(__最小纬度, q.Lat); __最大纬度 = Math.Max(__最大纬度, q.Lat); }); this.out地图.SetZoomToFitRect(RectLatLng.FromLTRB(__最小经度, __最大纬度, __最大经度, __最小纬度)); } }