我们知道由于受墨卡托投影原理限制,目前主流互联网地图均不提供南北极区域数据。
当使用osgEarth加载互联网地图瓦片时,因编译环境不同,偶尔会出现南北极空洞的现象。虽不影响功能使用,但却影响视觉体验,对部分强迫症患者却十分不友好。效果如下(OsgEarth2.10.1):
经反复调试,感觉应该是使用的gdal库没有对南北极区域的坐标转换进行边界处理。现提供一种简单方法可解决此问题:
在/src/osgEarth/SpatialReference.cpp文件的第1131行(transformXYPointArrays函数中,return OCTTransform( xform_handle, count, x, y, 0L ) > 0;语句前一行),添加如下代码:
if (out_srs->isMercator())
{
for (int i=0;ii<count;i++)
{
if (y[i]>85)
{
y[i]=85;
}
if (y[i]<-85)
{
y[i]=-85;
}
}
}
实现效果如下:
欢迎讨论交流osg&osgearth技术问题~