希望可以帮到道路上的人,也希望大家可以多多交流,互相学习(私信可交流或者评论留言)。
背景需求:开发中遇到影像比较大,影像地图刷新效果不佳
1.用MapWinGIS加载WMS(geoserver)无果,始终加载看不见图像,map是地图控件,希望有人研究成功可私信交流或者留言,如果不能及时回复请耐心等待。
/// <summary>/// 加载wms/// </summary>private void AddWmsLayer(){try{int layerHandle = -1;WmsLayer wmsLayer = new WmsLayer();Extents extents = new Extents();//Set the wmsLayer properties, taken from geoserver.extents.SetBounds(-180, -90, 0, 0, 90, 0);wmsLayer.BaseUrl = "http://localhost:8098/geoserver/gx/wms";wmsLayer.BoundingBox = extents;wmsLayer.Contrast = (float)1.0;wmsLayer.DoCaching = false;wmsLayer.Epsg = 4326;wmsLayer.Format = @"image/png";wmsLayer.Gamma = (float)1.0;wmsLayer.Layers = "gx:googleTest";wmsLayer.Name = "googleTest";wmsLayer.Opacity = 255;wmsLayer.UseCache = false;wmsLayer.Id = 1;wmsLayer.UseTransparentColor = false;wmsLayer.Key = "1";wmsLayer.Version = tkWmsVersion.wvAuto;wmsLayer.TransparentColor = 255;wmsLayer.UseTransparentColor = true;// If everything is correct, AddLayer() does the job.layerHandle = map.AddLayer(wmsLayer, true);map.ZoomToLayer(layerHandle);}catch (Exception ex){throw;}}
2.MapWInGIS加载MBTiles
google.mbtiles是自己做的一个切片包。
/// <summary>/// 添加MBTiles文件/// </summary>/// <param name="mdFileName">MBTiles文件绝对路径</param>private void AddMbTiles(string mdFileName){try{ImageClass image = new ImageClass();image.Open(mdFileName);map.AddLayer(image,true);}catch (Exception ex){throw;}}
通过这段代码结果如图所示:
效果评价:
数据大小:切片包有将近10G(1-18级)
卡顿测试:我的电脑上两头级别的刷新很快,中上级别稍微卡顿不会太卡,高级别刷新很快
希望可以帮到道路上的人,也希望大家可以多多交流,互相学习(私信可交流或者评论留言)。
QQ群(GIS开发交流、数据共享、软件使用):993836992