/// <summary> /// 刷新地图 /// </summary> /// <param name="mapId">地图编号</param> /// <returns></returns> public bool RefreshMap(string mapId, string user) { var query = from a in _IMapReleationRepository.GetAll() join b in _ILayerContentRepository.GetAll() on a.DataConfigID equals b.Id join c in _IMapRepository.GetAll() on a.MapID equals c.Id where a.MapID == mapId orderby a.DataSort select new { a.Id, b.LayerAttrTable, c.MapEnName }; var query2 = from a in _IMapReleationRepository.GetAll() join b in _IDataStyleRepository.GetAll() on a.DataStyleID equals b.Id select new { a.Id, b.StyleName }; var list = query2.ToList(); List <string> targetLayers = new List <string>(); List <string> styleLayers = new List <string>(); string mapName = string.Empty; foreach (var item in query) { targetLayers.Add(item.LayerAttrTable); var style = list.Find(t => t.Id == item.Id); if (style != null) { styleLayers.Add(style.StyleName); } else { styleLayers.Add(string.Empty); } mapName = item.MapEnName; } var map = _IMapRepository.Get(mapId); GeoServerHelper geoHelp = new GeoServerHelper(); geoHelp.AddLayerGroup(mapName, targetLayers, styleLayers); geoHelp.TerminatingTask(mapName); geoHelp.TileMap(map.MapEnName); #region [生成缩略图] string strBBox = map.MinX.ToString() + "," + map.MinY.ToString() + "," + map.MaxX.ToString() + "," + map.MaxY.ToString(); GetThumbnial(map.MapEnName, strBBox); #endregion _IOperateLogAppService.WriteOperateLog(mapId, user, 1002, 1106, 1201, 1451, null); return(true); }
public async Task <bool> UpdateMapBBox(string mapID) { try { var list = _IMapReleationRepository.GetAll().Where(q => q.MapID == mapID).ToList(); var map = _IMapRepository.Get(mapID); if (map != null && list != null && list.Count > 0) { Dictionary <string, decimal?> bbox = new Dictionary <string, decimal?>(); for (int i = 0; i < list.Count; i++) { var layer = _ILayerContentRepository.Get(list[i].DataConfigID); if (i == 0) { bbox.Add("MaxX", layer.MaxX); bbox.Add("MinX", layer.MinX); bbox.Add("MaxY", layer.MaxY); bbox.Add("MinY", layer.MinY); } else { if (layer.MaxX > bbox["MaxX"]) { bbox["MaxX"] = layer.MaxX; } if (layer.MaxY > bbox["MaxY"]) { bbox["MaxY"] = layer.MaxY; } if (layer.MinX < bbox["MinX"]) { bbox["MinX"] = layer.MinX; } if (layer.MinY < bbox["MinY"]) { bbox["MinY"] = layer.MinY; } } } map.MaxX = bbox["MaxX"]; map.MinX = bbox["MinX"]; map.MaxY = bbox["MaxY"]; map.MinY = bbox["MinY"]; await _IMapRepository.UpdateAsync(map); GeoServerHelper geoHelp = new GeoServerHelper(); string isAutoCache = ConfigurationManager.AppSettings.Get("IsAutoCache"); if (!string.IsNullOrEmpty(isAutoCache) && isAutoCache == "1") { geoHelp.TerminatingTask(map.MapEnName); geoHelp.TileMap(map.MapEnName); } string strBBox = map.MinX.ToString() + "," + map.MinY.ToString() + "," + map.MaxX.ToString() + "," + map.MaxY.ToString(); #region [生成缩略图] ThumbnailHelper tbh = new ThumbnailHelper(); string imagePath = tbh.CreateThumbnail(map.MapEnName, "map", strBBox); if (string.IsNullOrEmpty(imagePath)) { return(false); } else { return(true); } #endregion } return(true); } catch (Exception ex) { return(false); } }