最近一直在研究切片地图发布技术,解决各种矢量和栅格数据的切片地图制作和发布问题。这块的技术在土地评估和调查类公司中应用较多,因为他们经常需要使用各地地图,传统的文件管理方式很难适应工作现状,如果将各种地图或图片发布成WMTS,供用户在客户端浏览,可解决地图的管理和共享使用问题。
前天在OpenLayers旗舰QQ群看到一位网友发布的一个需求:实现java后台解析出来的瓦片图通过API注册进geoServer,前端实现openlayer加载显示,并且实现用户自定义标注功能。看到这个需求,我觉得我的地图服务发布程序可以完全取代GeoServer切片地图发布功能,完成这个需求应该很Easy,基于以上判断我就联系了对方,对方发来了具体的需求和测试数据,经过了解测试数据是医学上的远程病理会诊切片,它的结构和切片地图类似,分层,分行,分列,然后在前端拼接形成一张全视野的数字化切片(Whole Slide Image),再利用相应的数字病理切片浏览系统,对一系列可视化数据进行任意比例放大或缩小以及任意方向移动的浏览和分析处理,就好比在操作一台真实的光学显微镜一样。
图1:拼接后的全视野数字化切片
图2:dmetrix切片数据结构:
一开始我以为Dmetrix数字病理切片扫描仪形成的是一张完整的tiff或jpg等格式的病理图片,然后对方利用JAVA将它切割形成一张张切片,借助GIS技术形成病理切片浏览系统。根据以上判断我把重点就放在无地理参考系统的图片切片化显示上。之前做的切片地图服务发布工具是专门针对有地理参考信息的栅格数据和矢量数据的发布,无法直接发布图片的切片浏览服务。其实对图片的切片化浏览在平时的工作中也经常用到,之前在做地理数据涉密鉴定项目时,就涉及到对保密检查出的图像文件进行查看,但稍大一点的图像或地图在windows系统中无法打开,如果对它进行切片化显示就可以解决这一问题。无地理参考信息的图片切片化显示思路如下:首先假设图片有一个地理坐标范围,纬度从-90度到90度,再根据图片的高度和宽度比例关系,可计算出假设的经度范围。一旦图片有了假设的地理坐标范围,就可以利用有空间参考信息的地图切片化技术来进行显示。基于以上思路就可以解决对方的病理图片的切片化浏览问题。
但经过和对方的再次沟通发现,Dmetrix数字病理切片扫描仪得出的就是256*256大小的病理切片,并不是一张完整的图片。病理切片的数据结构也很简单,从第八级开始,是一张切片(完整的缩略图,见图1),第9级是四张切片,文件名是层级+行+列+image.jpg,第十级是6张(2行3列),第十一级是30张(5行6列),第十二级是11行12列,第十三级是23行25列,第十四级是47行50列,第十五级是94行111列,第十六级是189行202列。从病理切片的分层结构来看,完全可以套用切片地图的分级显示方式,因为切片地图的0级是一张全球影像,1级是2行2列,2级是4行4列,其他层级以此类推。我们假设Dmetrix数字病理切片有一个地理坐标范围(-180,90,180,-90),当利用切片地图技术获取切片时,获取第0级地图切片时,我们将它指向病理切片的第8级,获取第1级地图切片时,我们将它指向病理切片的第九级,其它以此类推,这样经过转发以后,就可以完全利用切片地图技术来解决病理切片的显示问题,问题迎刃而解。
其实真没想到GIS技术也能解决医学病理切片的显示问题,但技术是相通的。这个问题解决后,后续医生利用前端系统进行病理的查看,肿瘤大小的测量等问题,都可以利用前端的openlayer或leaflet进行开发,这块难度不大。
虽然我解决了对方的技术问题,但对方似乎有其它顾虑(例如我利用自已写的切片地图发布程序来发布切片地图服务,并没有使用开源的GeoServer,对方担心受制于我的知识产权而对他们不利),于是提了一些其它问题后就没有再联系。
既然东西都做了,我也熬了一天夜,本着对切片地图发布技术的研究兴趣,我决定把我的研究思路公开出来,供大家探讨。
最后,放两张Dmetrix病理切片在桌面端和Web端显示的网址:http://local.simplemap.cn:82/dmetriximages/index_wmts.html
图3:病理切片在桌面端软件中的显示截图
病理切片在Web端中的显示,可以直接复制网址在浏览中打开进行查看,http://local.simplemap.cn:82/dmetriximages/index_wmts.html