[英]How to set Cesium JS map center (coordinates: latitude & longitude)
我想初始化cesium,以便地圖以某些特定坐標為中心而不是默認坐標。 我有以下初始化代碼:
var map = new Cesium.CesiumWidget('map-js');
map.centralBody.terrainProvider = new Cesium.CesiumTerrainProvider({
url : 'http://cesiumjs.org/smallterrain'
});
通常,使用其他映射庫,我會在初始化時設置中心,例如在mapbox上:
map = L.mapbox.map('map-js', 'api-key').setView([42.12, 12.45], 9);
如何用銫做到這一點?
嘗試在上面第一段代碼后添加:
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);
我們的相機演示中提供了更多示例。
編輯(2014年5月):由於銫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
)
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.