希望可以帮到道路上的人,也希望大家可以多多交流,互相学习(私信可交流或者评论留言)。
背景需求:开发中遇到影像比较大,影像地图刷新效果不佳
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