OSGEarth解决南北极空洞问题

我们知道由于受墨卡托投影原理限制,目前主流互联网地图均不提供南北极区域数据。

当使用osgEarth加载互联网地图瓦片时,因编译环境不同,偶尔会出现南北极空洞的现象。虽不影响功能使用,但却影响视觉体验,对部分强迫症患者却十分不友好。效果如下(OsgEarth2.10.1):

OSGEarth解决南北极空洞问题_第1张图片

OSGEarth解决南北极空洞问题_第2张图片 

经反复调试,感觉应该是使用的gdal库没有对南北极区域的坐标转换进行边界处理。现提供一种简单方法可解决此问题:

在/src/osgEarth/SpatialReference.cpp文件的第1131行(transformXYPointArrays函数中,return OCTTransform( xform_handle, count, x, y, 0L ) > 0;语句前一行),添加如下代码:

if (out_srs->isMercator())
 	{
 		for (int i=0;ii85)
 			{
 				y[i]=85;
 			}
 			if (y[i]<-85)
 			{
 				y[i]=-85;
 			}
 		}
 	}

实现效果如下:

OSGEarth解决南北极空洞问题_第3张图片

OSGEarth解决南北极空洞问题_第4张图片 

 欢迎讨论交流osg&osgearth技术问题~

你可能感兴趣的:(c++)