Class: FdTerrain

FdTools. FdTerrain

地形管理器


new FdTerrain(viewer)

Parameters:
Name Type Description
viewer Freedo.Viewer

视景器

Example
var container = document.getElementById('freedoContainer');

var terrainManager = new Freedo.FdTools.FdTerrain(viewer);

//stk 地形
terrainManager.setTerrain('//terrain.gbim360.com/', 'STK');

//高度图地形(海南高精度)
terrainManager.setTerrain('//terrain.gbim360.com/HN', 'HM');

//自定义格式地形(全球低精度)
terrainManager.setTerrain('http://devmaps.gbim360.cn/services/wets?Service=WETS&Request=GetCapabilities&Version=1.0.0', 'WETS');


//多地形 ,新版本开始设置capabilitiesUrl ,而老版本设置url ,这里需要注意下;
terrainManager.setTerrain([{
    capabilitiesUrl: 'https://cfgateway.gbim360.cn/freeserver-wets/services/share/2cdc8c93-3ffb-404f-b851-22d2d6358b78/wets/1.0.0/WETSCapabilities.xml?accesskey=23a70df1-363a-4b51-96b0-d94bd2a901ac'
}, {
    capabilitiesUrl: 'http://devmaps.gbim360.cn/services/wets?Service=WETS&Request=GetCapabilities&Version=1.0.0'
}]);

Members


<readonly> terrain :Freedo.FreedoTerrainProvider|Freedo.WETSTerrainProvider

地形对象

Type:
  • Freedo.FreedoTerrainProvider | Freedo.WETSTerrainProvider

<readonly> terrainOptions :Object

地形图层选项

Type:
  • Object
Example
var terrainOption = terrainManager.terrainOptions ;
var type = terrainOption.type ;
var show = terrainOption.show ;
var option = terrainOption.options;

visible :Boolean

获取地形图层可见性

Type:
  • Boolean
Example
var terrainVisible = terrainManager.visible ;

visible :Boolean

设置地形图层是否可见

Type:
  • Boolean
Example
terrainManager.visible = true;

Methods


dispose()

销毁所有资源


enableTerrainReverseSkirt()

开启WETS地形的反向裙边功能。漫游到地下后,将看不到地形的裙边。必须为自定义的地形(Freedo.WETSTerrainProvider)


on(listener [, scope])

事件类型有:StatusChanged(地形可见性发生变化),TypeChanged(地形类型发生变化)

Parameters:
Name Type Argument Description
listener FdTools.FdTerrain~FdTerrainCallback

当有事件触发时被执行的函数。

scope Object <optional>

listener函数执行时的绑定的对象。

Returns:

返回一个函数,调用该函数可以取消监听。

Type
Freedo.Event~RemoveCallback

setDepthTest(depthTest)

设置是否进行深度检测,如果希望看到地面之下的物体,可以关闭深度深度测试来实现

Parameters:
Name Type Description
depthTest Boolean

true表示开启深度检测,fasle表示关闭


setTerrain(terrainUri, type [, constraintRegions] [, requestWaterMask])

设置地形

Parameters:
Name Type Argument Default Description
terrainUri String | Array.<Object>

地形服务地址或者参数

type String

地形服务类型: STK/HM/WETS/ESRI

constraintRegions Array.<constraintRegion> <optional>

限制区参数数组

constraintRegions[i].constraintRegion Array.<Number> <optional>

限制区范围, [minLongitude, maxLongitude, minLatitude, maxLatitude] (角度值)

constraintRegions[i].height Number <optional>

限制区拉平高度

requestWaterMask Boolean <optional>
false

请求海水(并不是所有类型的地形都能支持海水, STK地形一般是支持海水的.)

Example
terrainManager.setTerrain('//terrain.gbim360.com/', 'STK' ,[{
    constraintRegion: [109.64913096411063, 109.73642154758359, 19.11770556820389, 19.2042385831595],
    height: 0.0
}]);

//or

terrainManager.setTerrain([{
    capabilitiesUrl: 'https://cfgateway.gbim360.cn/freeserver-wets/services/share/2cdc8c93-3ffb-404f-b851-22d2d6358b78/wets/1.0.0/WETSCapabilities.xml?accesskey=23a70df1-363a-4b51-96b0-d94bd2a901ac'
}, {
    capabilitiesUrl: 'http://devmaps.gbim360.cn/services/wets?Service=WETS&Request=GetCapabilities&Version=1.0.0'
}]);

Type Definitions


FdTerrainCallback(eventType, eventArg)

Parameters:
Name Type Description
eventType String

StatusChanged(地形可见性发生变化),TypeChanged(地形类型发生变化)

eventArg Object

StatusChanged事件参数为{status:visible},其中visible为是否可见(Boolean);TypeChanged事件参数为{type:terrainType} ,其中terrainType可能的值为:'HM','STK','WETS'