返回

点线面的引入- 三维GIS可视化(三)

前端

大家好,我们继续上一次的话题来讨论点线面的引入。在上一次,我们了解了地图上涉及的基本要素,它们分别是点线面,那么这个点线面究竟是怎么添加到地球上的,它们各自又有什么相关属性呢?

1. 点的类型

在三维GIS中,点一般被分类为两种,分别是简单的点和模型点。其中:

  • 简单的点 是作为最小的绘图单位,它没有大小和形状,在三维GIS中,简单的点通常被用作标记位置,如一个点代表一个建筑物的位置。
  • 模型点 则是指三维模型,三维模型是指由许多面组成的一个三维图形,例如,一个建筑物的三维模型由许多面组成,这些面可以是三角形、四边形或其他多边形。

2. 创建点

在Cesium中,点可以通过Entity来创建,要创建一个点,我们首先需要创建一个Entity对象,然后设置它的position属性,position属性指定了点的坐标,可以是一个三维坐标(x, y, z),也可以是一个Cartographic对象(longitude, latitude, height),示例代码如下:

// 创建一个点
var point = viewer.entities.add({
  position : new Cesium.Cartesian3(0.0, 0.0, 0.0),
  point : {
    color : Cesium.Color.RED,
    pixelSize : 5
  }
});

这个代码创建一个简单的点,位置在原点(0, 0, 0),颜色是红色,大小是5像素。

线

1. 线的类型

在三维GIS中,线一般分为两种,分别是简单的线和路径线。其中:

  • 简单的线 是作为一种连接两个点或多个点的几何图形,在三维GIS中,简单的线通常被用作表示道路、河流等线性特征。
  • 路径线 是指连接多个点或多个模型点形成的线段,在三维GIS中,路径线通常被用作表示道路、河流等线性特征。

2. 创建线

在Cesium中,线可以通过Entity来创建,要创建一条线,我们首先需要创建一个Entity对象,然后设置它的polyline属性,polyline属性指定了线的路径,可以是一个数组,数组中每个元素都是一个三维坐标(x, y, z),也可以是一个Cartographic对象(longitude, latitude, height),示例代码如下:

// 创建一条线
var line = viewer.entities.add({
  polyline : {
    positions : [
      new Cesium.Cartesian3(-1000000.0, -1000000.0, 0.0),
      new Cesium.Cartesian3(1000000.0, 1000000.0, 0.0)
    ],
    width : 5,
    material : Cesium.Color.BLUE
  }
});

这段代码创建一个简单的线,从点(-1000000.0, -1000000.0, 0.0)到点(1000000.0, 1000000.0, 0.0),线的颜色是蓝色,宽度是5像素。

1. 面的类型

在三维GIS中,面一般分为两种,分别是简单的面和模型面。其中:

  • 简单的面 是指一个被边包围的区域,在三维GIS中,简单的面通常被用作表示建筑物、土地等面状特征。
  • 模型面 是指由许多面组成的一个三维模型,三维模型是指由许多面组成的一个三维图形,例如,一个建筑物的三维模型由许多面组成,这些面可以是三角形、四边形或其他多边形。

2. 创建面

在Cesium中,面可以通过Entity来创建,要创建一个面,我们首先需要创建一个Entity对象,然后设置它的polygon属性,polygon属性指定了面的边界,可以是一个数组,数组中每个元素都是一个三维坐标(x, y, z),也可以是一个Cartographic对象(longitude, latitude, height),示例代码如下:

// 创建一个面
var polygon = viewer.entities.add({
  polygon : {
    hierarchy : [
      new Cesium.Cartesian3(-1000000.0, -1000000.0, 0.0),
      new Cesium.Cartesian3(1000000.0, -1000000.0, 0.0),
      new Cesium.Cartesian3(1000000.0, 1000000.0, 0.0),
      new Cesium.Cartesian3(-1000000.0, 1000000.0, 0.0)
    ],
    material : Cesium.Color.GREEN
  }
});

这段代码创建一个简单的面,面的边界是四个点,分别是(-1000000.0, -1000000.0, 0.0)、(1000000.0, -1000000.0, 0.0)、(1000000.0, 1000000.0, 0.0)、(-1000000.0, 1000000.0, 0.0),面的颜色是绿色。

点线面的数据属性

点线面都可以设置数据属性,数据属性可以是任何类型的数据,如字符串、数字、日期等,在Cesium中,数据属性可以通过Entity的properties属性来设置,示例代码如下:

// 设置点的属性
point.properties.name = "点1";
point.properties.description = "这是一个点";

// 设置线的属性
line.properties.name = "线1";
line.properties.description = "这是一条线";

// 设置面的属性
polygon.properties.name = "面1";
polygon.properties.description = "这是一个面";

这三行代码设置了点、线、面的属性,属性名为name和description,属性值分别为"点1"和"这是一个点"、"线1"和"这是一条线"、"面1"和"这是一个面"。

以上就是三维GIS可视化中点线面的引入。下一次,我们将会介绍三维GIS可视化中模型的引入。