public void FitToMarkers() { var rect = _gmapControl.GetRectOfAllMarkers(StandardOverlayName); if (rect != null) { _gmapControl.SetZoomToFitRect(rect.Value); UpdateCurrentCoords(); } }
public void ShowAll() { if (_gMap == null) { return; } var rect = GetRectOfAllMarkers(); if (rect.HasValue && !double.IsNaN(rect.Value.Lat) && !double.IsInfinity(rect.Value.Lat) && !double.IsNaN(rect.Value.Lng) && !double.IsInfinity(rect.Value.Lng) && !double.IsNaN(rect.Value.WidthLng) && !double.IsInfinity(rect.Value.WidthLng) && !double.IsNaN(rect.Value.HeightLat) && !double.IsInfinity(rect.Value.HeightLat) && RectLatLng.FromLTRB(-180, 90, 180, -90).Contains(rect.Value)) { _gMap.SetZoomToFitRect(rect.Value); } }
/// <summary> /// 按单位加载场地 /// </summary> /// <param name="ub"></param> /// <param name="gMapCtrl"></param> public static void ZoomToSiteByUnit(UnitInfoBean ub, GMapControl gMapCtrl) { try { ClearAllSiteMarker(gMapCtrl); if (IsLayerExisted("unitlayer", gMapCtrl)) { GetOverlay("unitlayer", gMapCtrl).Polygons.Clear(); } List <SiteBean> sblist = SiteBll.Instance.GetWhere(new { UNITCODE = ub.UnitCode }).ToList();//获取数据 //DataTable sitedb = SiteBll.Instance.GetDataTable("select UNITCODE,SITECODE,SITENAME,SITETYPE,HISTORYSITE," + // "LONGTITUDE,LATITUDE,ALTITUDE,PLACE,FAULTCODE,STARTDATE,SITESTATUS,MARKSTONETYPE,BUILDUNIT,OBSUNIT," + // "SITESITUATION,GEOSITUATION,NOTE,LOCATIONS,OTHERSITUATION,DATACHG,XZQCODE,OBSCYC from t_siteinfodb where UNITCODE='" + ub.UnitCode + "'"); //ModelHandler<SiteBean> mh = new ModelHandler<SiteBean>(); //foreach (DataRow dr in sitedb.Rows) //{ // sblist.Add(mh.FillModel(dr)); //} if (sblist == null) { return; } if (sblist.Count == 0) { return; } List <PointLatLng> plllist = new List <PointLatLng>(); #region 获取最大最小角点坐标 double minlat = double.MaxValue; double minlgt = double.MaxValue; double maxlat = double.MinValue; double maxlgt = double.MinValue; foreach (SiteBean sb in sblist) { if (sb.Latitude == 0 || sb.Longtitude == 0) { continue; } if (sb.Latitude < minlat) { minlat = sb.Latitude; } if (sb.Longtitude < minlgt) { minlgt = sb.Longtitude; } if (sb.Latitude > maxlat) { maxlat = sb.Latitude; } if (sb.Longtitude > maxlgt) { maxlgt = sb.Longtitude; } } minlat = minlat - 0.2; minlgt = minlgt - 0.2; maxlat = maxlat + 0.2; maxlgt = maxlgt + 0.2; #endregion plllist.Add(new PointLatLng(minlat, minlgt)); plllist.Add(new PointLatLng(maxlat, minlgt)); plllist.Add(new PointLatLng(maxlat, maxlgt)); plllist.Add(new PointLatLng(minlat, maxlgt)); // GMapPolygon gmp = new GMapPolygon(plllist, ub.UnitName); //GMapOverlay unitOverlay = IsLayerExisted("unitlayer", gMapCtrl) ? GetOverlay("unitlayer", gMapCtrl) : new GMapOverlay("unitlayer"); //Pen pen = new Pen(Color.Red, 2); //pen.DashStyle = DashStyle.DashDot; //pen.DashPattern = new float[] { 1f, 1f }; //gmp.Stroke = pen; //gmp.Fill = new SolidBrush(Color.FromArgb(50, Color.LightBlue)); //if (!IsLayerExisted("unitlayer", gMapCtrl)) // gMapCtrl.Overlays.Add(unitOverlay); // unitOverlay.Polygons.Add(gmp); AddSiteMarker(sblist, gMapCtrl); gMapCtrl.SetZoomToFitRect(new RectLatLng(maxlat, minlgt, maxlgt - minlgt, maxlat - minlat)); } catch (Exception ex) { } }