当前位置: 首页 > 知识库问答 >
问题:

javascript - Cesium中怎么获取绘制再地球上的图像、文本的Geojson数据?

萧成文
2023-10-09

通过viewer.entities.add方法给地球上添加一些图像、文本,现在可以通过viewer.entities.values可以获取到Entity对象,如何获取这些对象的Geojson数据呢?

共有1个答案

裴宜春
2023-10-09

在 Cesium 中,可以使用 Entity 对象的 positionpointpolylinepolygon 等属性来获取 GeoJSON 数据。

对于您所提的问题,由于您没有提供详细的上下文和代码示例,我将假设您是在使用 Cesium JavaScript API,并给出一般的建议。

首先,让我们假设您已经使用 viewer.entities.add 方法添加了一个图像或文本实体。这个实体有一个唯一的 id,可以通过这个 id 来获取这个实体对象。

// 添加一个图像或文本实体var entity = viewer.entities.add({    name : 'My Entity',    // ... 其他属性 ...});// 获取实体对象var entityObject = viewer.entities.get(entity.id);

然后,你可以从实体对象中获取 GeoJSON 数据。然而,请注意,Cesium 本身并不直接提供将实体对象转换为 GeoJSON 的功能。因此,你需要自己手动从实体对象中提取相关属性,然后按照 GeoJSON 的格式进行组合。

例如,如果你添加的是一个图像实体,那么可以通过 Entityposition 属性获取到该实体的位置信息,然后根据 GeoJSON 的格式要求进行组合:

// 获取图像实体的位置信息var position = entityObject.position;// 按照 GeoJSON 的格式组合var geojson = {    "type" : "Feature",    "geometry" : {        "type" : "Point",        "coordinates" : [position.x, position.y]    },    // ... 其他属性 ...};

同样的,如果你添加的是一个文本实体,那么可以通过 Entitypositiontext 属性来获取位置信息和文本内容:

// 获取文本实体的位置信息和文本内容var position = entityObject.position;var text = entityObject.text;// 按照 GeoJSON 的格式组合var geojson = {    "type" : "Feature",    "geometry" : {        "type" : "Point",        "coordinates" : [position.x, position.y]    },    "properties" : {        "text" : text    },    // ... 其他属性 ...};

需要注意的是,由于 Cesium 是基于 WebGL 技术开发的,所以它的所有数据都是以 WebGL 的形式存储和渲染的。这意味着要获取 GeoJSON 数据,实际上就是需要从 WebGL 的数据中手动提取出 GeoJSON 格式的数据。因此,这个过程可能会有一些复杂和繁琐。

 类似资料:
  • 问题内容: 假设我有一张带有行星圆柱图的图像,比如说: http://www.johnstonsarchive.net/spaceart/cymaps.html 我想把它画在一个三维球体上,以恢复物体的原始形状 行星。 有没有一种方法可以使用像matplotlib,mayavi, 底图还是类似的? 问题答案: 更新:这是使用Cartopy的新版本,如[basemap is] [下线](https:

  • 我有一张图片上面有文字。我需要从图像中提取文本。 例如:假设我有一个图像,在图像之上我有一个标志“诺基亚”。我想从图像中提取作为文本的徽标。

  • 问题内容: 我尝试在图像的底部添加文本,实际上我已经完成了,但是如果我的文本较长,那么图像的宽度要从两侧切开,为简化起见,我希望文本在多行中长于图片宽度。这是我的代码: 问题答案: 您可以用来分解成字符串列表,每个字符串最多为字符:

  • js 获取怎么复制的内容, navigator.clipboard.readText()有兼容性问题,线上不生效。

  • 问题内容: 假设我有一张带有行星圆柱图的图像,请说以下其中之一: http://www.johnstonsarchive.net/spaceart/cylmaps.html 我想将其绘制在3D球体上以恢复地球的原始形状。 有没有办法使用类似matplotlib,mayavi,basemap或类似的Python包来做到这一点? 问题答案: 更新 :这是使用Cartopy的新版本,因为底图是EOL。以

  • 我正在使用Bing Maps v8 API,试图将我自己的GeoJSON加载到Bing Maps上,如本例所示:https://www.Bing.com/API/Maps/sdkrelease/mapcontrol/isdk#GeoJSONReadObject+js 我正在成功地创建我的JSON(我已经使用Bing Maps拖放特性测试了它,并且我的所有点都显示在Map.https://bingm