一、添加
// 省会城市
var citys = [
[ '沈阳',123.429092,41.796768 ],
[ '长春',125.324501,43.886841 ],
[ '哈尔滨',126.642464,45.756966 ],
[ '北京',116.405289,39.904987 ],
[ '天津',117.190186,39.125595 ],
[ '呼和浩特',111.751990,40.841490 ],
[ '银川',106.232480,38.486440 ],
[ '太原',112.549248,37.857014 ],
[ '石家庄',114.502464,38.045475 ],
[ '济南',117.000923,36.675808 ],
[ '郑州',113.665413,34.757977 ],
[ '西安',108.948021,34.263161 ],
[ '武汉',114.298569,30.584354 ],
[ '南京',118.76741,32.041546 ],
[ '合肥',117.283043,31.861191 ],
[ '上海',121.472641,31.231707 ],
[ '长沙',112.982277,28.19409 ],
[ '南昌',115.892151,28.676493 ],
[ '杭州',120.15358,30.287458 ],
[ '福州',119.306236,26.075302 ],
[ '广州',113.28064,23.125177 ],
[ '台北',121.5200760,25.0307240 ],
[ '海口',110.199890,20.044220 ],
[ '南宁',108.320007,22.82402 ],
[ '重庆',106.504959,29.533155 ],
[ '昆明',102.71225,25.040609 ],
[ '贵阳',106.713478,26.578342 ],
[ '成都',104.065735,30.659462 ],
[ '兰州',103.834170,36.061380 ],
[ '西宁',101.777820,36.617290 ],
[ '拉萨',91.11450,29.644150 ],
[ '乌鲁木齐',87.616880,43.826630 ],
[ '香港',114.165460,22.275340 ],
[ '澳门',113.549130,22.198750 ],
];
// 新建 Cesium.LabelCollection 对象
var labels = viewer.scene.primitives.add(new Cesium.LabelCollection());
// 添加 Label
for (var i = 0, len = citys.length; i < len; i++) {
var cityCfg = citys[i];
// Cesium.Label
var labelParam = {
text: cityCfg[0], // 城市名
position: new Cesium.Cartesian3.fromDegrees(cityCfg[1], cityCfg[2], 0), // 位置
font: "24px Helvetica", // 字体样式
fillColor: Cesium.Color.ORANGE, // 字体颜色
scaleByDistance: new Cesium.NearFarScalar(1.5e2, 2, 8.0e6, 0.1) // 重要:相机远近距离的
};
// 添加
labels.add(labelParam);
}
知识点:
1. 代码第 39 行,新建对象 Cesium.LabelCollection 并添加到场景中;
2. 代码第 49 行,Cesium.NearFarScalar 对象,用于设置球在缩放时 Label 也同步缩放。其中第 4 个参数,为 0 时,远距离是看不见的。此参数没有具体研究,但非常重要;
二、删除
viewer.scene.primitives.remove(labels)
三、效果
参考官网示例