目标:(一二七)中问题214
主要存在三个地方:
一是map的type属性,可取两个值geocentric、projected,前者用于三维显示,后者用于二维显示;
二是map的options属性的srs,可以取spherical-mercator world-mercator wgs84 plate-carre,用于设置显示的投影方式,可以根据显示需要随意设置;
三是影像和高层图层属性的srs,可以取spherical-mercator world-mercator wgs84 plate-carre,用于设置图层图源自身的投影方式,不可以随意设置,一定要与图源保持一致;
需要注意:
1、墨卡托投影,原点在经纬度0点,呈正方形,边长20037508.342789247632,单位m
2、wgs84,原点在经纬度0点,呈矩形,边长180*360,单位度
3、rex引擎投影若和图层投影不一致需要做转换(ImageLayer::assembleImage,最终通过gdal库实现GDALReprojectImage)
4、一般不要指定范围,osgearth会自动计算最大范围,如果指定需要按照1、2的单位和范围要求进行指定,否则容易出错。
5、通过3可知,rex创建的每个瓦片的几何图形都是均匀划分的,纹理坐标也是,只是会对图片进行投影变换再做贴图处理。
以高德地图为例:
<map name="MBTiles" type="geocentric" version="2">
<options>
<profile>
<srs>world-mercator</srs>
<xmin>-20037508.342789247632</xmin>
<ymin>-20037508.342789247632</ymin>
<xmax>20037508.342789247632</xmax>
<ymax>20037508.342789247632</ymax>
<num_tiles_wide_at_lod_0>1</num_tiles_wide_at_lod_0>
<num_tiles_high_at_lod_0>1</num_tiles_high_at_lod_0>
</profile>
<terrain driver="rex" color="#ff00ffff">
<vertical_scale>1.0</vertical_scale>
</terrain>
</options>
<image name="gaodeMap" driver="xyz">
<url>https://webst03.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}</url>
<profile>
<srs>world-mercator</srs>
<num_tiles_wide_at_lod_0>1</num_tiles_wide_at_lod_0>
<num_tiles_high_at_lod_0>1</num_tiles_high_at_lod_0>
</profile>
</image>
</map>
将type改为projected、options的srs改为wgs84、影像层的srs改为world-mercator的效果为:
将type改为projected、options的srs改为world-mercator、影像层的srs改为world-mercator的效果为:
将type改为projected、options的srs改为world-mercator、影像层的srs改为wgs84的效果为(这种效果有问题,主要是影像层的srs与图源不一致造成的):
待继续分析列表:
9、earth文件中都有哪些options((九)中问题)
10、如何根据earth文件options创建不同的地理信息引擎节点((九)中问题)
11、rex地理信息引擎的四梁八柱((九)中问题)
12、osgEarth::TerrainEngineNode中setMap方法作用((十二)中问题)
13、RexTerrainEngineNode中_mapFrame的作用((十二)中问题)
14、地形变形(Terrain morphing)((十二)中问题)
15、地球瓦片过期门限的含义((十二)中问题)
16、高分辨率优先的含义((十二)中问题)
17、OSGEARTH_DEBUG_NORMALS环境变量的作用((十二)中问题)
18、活跃瓦片寄存器的作用(&