PointPrimitive是CesiumJS中表示点状图元的基本元素之一。PointPrimitive可以用来表示单个点,也可以用来表示由多个点组成的线条等。
要使用PointPrimitive,首先需要创建一个Cesium.Viewer实例并加载地图。然后,我们可以使用以下代码创建一个PointPrimitive:
var viewer = new Cesium.Viewer('cesiumContainer', {
shouldAnimate: true,
imageryProvider: new Cesium.ArcGisMapServerImageryProvider({
url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
})
});
var pointPrimitive = new Cesium.PointPrimitive({
position: Cesium.Cartesian3.fromDegrees(-74.0707383, 40.7117244),
color: Cesium.Color.RED,
pixelSize: 10
});
viewer.scene.primitives.add(pointPrimitive);
在上述代码中,我们首先创建了一个Viewer实例并加载了一个地图。然后,我们创建了一个PointPrimitive实例,并将其添加到viewer.scene.primitives中。
PointPrimitive有以下属性:
Boolean
,可选。
指示此点是否应显示。默认值为true。
Cartesian3
。
点的地理位置。
Color
。
点的颜色。默认为白色。
Number
。
使用像素表示的点的大小。默认值为1。
Color
。
轮廓的颜色。如果边框宽度为0,则不显示轮廓。
Number
。
轮廓宽度,以像素为单位。
PointPrimitive还有以下方法:
销毁此点图元及其资源。
PointPrimitive有以下事件:
当show
属性改变时触发。
当position
属性改变时触发。
当color
属性改变时触发。
当pixelSize
属性改变时触发。
当outlineColor
属性改变时触发。
当outlineWidth
属性改变时触发。
以下代码创建了一个点状图元,当点击该点时,会输出该点的位置坐标:
var viewer = new Cesium.Viewer('cesiumContainer', {
shouldAnimate: true,
imageryProvider: new Cesium.ArcGisMapServerImageryProvider({
url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
})
});
var pointPrimitive = new Cesium.PointPrimitive({
position: Cesium.Cartesian3.fromDegrees(-74.0707383, 40.7117244),
color: Cesium.Color.RED,
pixelSize: 10,
outlineColor: Cesium.Color.BLACK,
outlineWidth: 2
});
pointPrimitive.onClick = function(e) {
console.log('Clicked at:', e.position);
}
viewer.scene.primitives.add(pointPrimitive);
在上述代码中,我们在点上添加了一个onClick
事件,并输出该点的位置坐标。