簡體   English   中英

如何設置Cesium JS地圖中心(坐標:緯度和經度)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM