"use script"; //开发环境建议开启严格模式
|
(function (window, mars3d) {
|
//创建widget类,需要继承BaseWidget
|
class MyWidget extends mars3d.widget.BaseWidget {
|
//初始化[仅执行1次]
|
create() {
|
//创建Graphic图层
|
var graphicLayer = new mars3d.layer.GraphicLayer({
|
name: this.config.name,
|
pid: 99, //图层管理 中使用,父节点id
|
});
|
this.graphicLayer = graphicLayer;
|
|
var center = Cesium.Cartesian3.fromDegrees(117.257436, 31.838742, 1);
|
|
var graphic = new mars3d.graphic.CircleEntity({
|
name: "合肥市",
|
position: center,
|
style: {
|
radius: 50000.0,
|
material: new mars3d.material.CircleWaveMaterialProperty({
|
color: Cesium.Color.fromCssColorString("#ff0000"),
|
count: 2, //单个圆圈
|
speed: 20, //速度,建议取值范围1-100
|
}),
|
},
|
});
|
graphicLayer.addGraphic(graphic);
|
|
var cities = [
|
{ name: "六安市", lon: 116.3123, lat: 31.8329 },
|
{ name: "安庆市", lon: 116.7517, lat: 30.5255 },
|
{ name: "滁州市", lon: 118.1909, lat: 32.536 },
|
{ name: "宣城市", lon: 118.8062, lat: 30.6244 },
|
{ name: "阜阳市", lon: 115.7629, lat: 32.9919 },
|
{ name: "宿州市", lon: 117.5208, lat: 33.6841 },
|
{ name: "黄山市", lon: 118.0481, lat: 29.9542 },
|
{ name: "巢湖市", lon: 117.7734, lat: 31.4978 },
|
{ name: "亳州市", lon: 116.1914, lat: 33.4698 },
|
{ name: "池州市", lon: 117.3889, lat: 30.2014 },
|
{ name: "蚌埠市", lon: 117.4109, lat: 33.1073 },
|
{ name: "芜湖市", lon: 118.3557, lat: 31.0858 },
|
{ name: "淮北市", lon: 116.6968, lat: 33.6896 },
|
{ name: "淮南市", lon: 116.7847, lat: 32.7722 },
|
{ name: "马鞍山市", lon: 118.6304, lat: 31.5363 },
|
{ name: "铜陵市", lon: 117.9382, lat: 30.9375 },
|
];
|
|
var lineMaterial = mars3d.MaterialUtil.createMaterial(mars3d.MaterialType.LineFlow, {
|
image: "img/textures/lineClr.png",
|
color: new Cesium.Color(255 / 255, 201 / 255, 38 / 255, 1),
|
speed: 10, //速度,建议取值范围1-100
|
});
|
for (var i = 0; i < cities.length; i++) {
|
var item = cities[i];
|
var thisPoint = Cesium.Cartesian3.fromDegrees(item.lon, item.lat, 1);
|
var positions = mars3d.PolyUtil.getLinkedPointList(center, thisPoint, 40000, 100); //计算曲线点
|
|
console.log(positions)
|
|
var primitive = new mars3d.graphic.PolylinePrimitive({
|
positions: positions,
|
style: {
|
width: 2,
|
material: lineMaterial, //动画线材质
|
},
|
});
|
primitive.bindPopup(`合肥 - ${item.name}`);
|
graphicLayer.addGraphic(primitive);
|
}
|
}
|
//打开激活
|
activate() {
|
this.map.addLayer(this.graphicLayer);
|
|
this.graphicLayer.flyTo();
|
}
|
//关闭释放
|
disable() {
|
this.map.removeLayer(this.graphicLayer);
|
}
|
}
|
|
//注册到widget管理器中。
|
mars3d.widget.bindClass(MyWidget);
|
|
//每个widet之间都是直接引入到index.html中,会存在彼此命名冲突,所以闭包处理下。
|
})(window, mars3d);
|