nem*_*ign 10 javascript cesium
我想初始化cesium,以便地图以某些特定坐标为中心而不是默认坐标.我有以下初始化代码:
var map = new Cesium.CesiumWidget('map-js');
map.centralBody.terrainProvider = new Cesium.CesiumTerrainProvider({
url : 'http://cesiumjs.org/smallterrain'
});
Run Code Online (Sandbox Code Playgroud)
通常,使用其他映射库,我会在初始化时设置中心,例如在mapbox上:
map = L.mapbox.map('map-js', 'api-key').setView([42.12, 12.45], 9);
Run Code Online (Sandbox Code Playgroud)
如何用铯做到这一点?
尝试在上面第一段代码后添加:
var scene = map.scene;
var ellipsoid = Cesium.Ellipsoid.WGS84;
var west = Cesium.Math.toRadians(-77.0);
var south = Cesium.Math.toRadians(38.0);
var east = Cesium.Math.toRadians(-72.0);
var north = Cesium.Math.toRadians(42.0);
var extent = new Cesium.Rectangle(west, south, east, north);
scene.camera.viewRectangle(extent, ellipsoid);
Run Code Online (Sandbox Code Playgroud)
我们的相机演示中提供了更多示例.
编辑(2014年5月):由于Cesium API更改,.getCamera()重命名.camera,相机.controller被删除并滚动到相机本身,Extent并重命名为Rectangle.上面的代码现在反映了新的API.有关重大更改的完整列表,请参阅CHANGES.md.
如果要保留当前的“缩放”(又称摄像机到椭球的距离)并且只有lon / lat,则可以调用setView()并使用当前摄像机的高度,例如:
viewer.camera.setView({
destination : Cesium.Cartesian3.fromDegrees(
longitude,
latitude,
Cesium.Ellipsoid.WGS84.cartesianToCartographic(viewer.camera.position).height
)
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5758 次 |
| 最近记录: |