Openlayers | Cesium 在线生成随机点线面坐标数据
创始人
2024-04-06 13:55:03
0

Openlayers | Cesium 在线生成随机点线面坐标数据

  • OpenLayers 教程
    • 使用 Turf.js 模拟随机数据
    • 在线示例

OpenLayers 教程

地图开发工作中,有时候需要模拟一些数据,之前都是手动用循环创建,数据太有规律,不好用,于是搞个在线工具。

工具是使用 turf.js 实现的,效率还可以,仅限于小数据量,大数据量模拟,建议通过后台实现。

这里放上核心代码,完整代码详见在线示例。


使用 Turf.js 模拟随机数据

// 模拟随机点数据
const points = turf.randomPoint(// 模拟数量25,{// 范围bbox: [115.11343196896966, 38.053632016866445, 116.22305110959466, 39.558758969991445]})// 模拟随机线段数据
const lineStrings = turf.randomLineString(// 模拟数量25,{// 范围bbox: [115.11343196896966, 38.053632016866445, 116.22305110959466, 39.558758969991445],// 顶点数量num_vertices: 10,// 最大长度max_length: 0.1,// 最大角度max_rotation: Math.PI / 8})// 模拟随机多边形
const polygons = turf.randomPolygon(// 模拟数量25,{// 范围bbox: [115.11343196896966, 38.053632016866445, 116.22305110959466, 39.558758969991445],// 最大辐射长度max_radial_length: 0.1,// 顶点数量num_vertices: 10})
// 可以查看一下,这里数据为 geojson 对象数据
console.log(points);
// geojson 创建 feature 对象
console.log(getFeatureByGeoJson(points));/*** @todo 图形对象转化成GeoJson格式数据(postgis)* @param {string|object} geojson geojson字符串或者对象* @param {string|Projection} sourceCode 源投影坐标系* @param {string|Projection} targetCode 目标投影坐标系* @returns {Feature}*/
function getFeatureByGeoJson(geojson, sourceCode, targetCode) {let view = map.getView();if (!geojson) {return null;}let feature;if ((typeof geojson) == 'string') {// 替换 null 字符while (geojson.indexOf('null') != -1) {// geojson = geojsongeojson = geojson.replace("null", "");}}feature = (new ol.format.GeoJSON()).readFeatures(geojson, {dataProjection: sourceCode || view.getProjection(),    // 设定JSON数据使用的坐标系featureProjection: targetCode || view.getProjection() // 设定当前地图使用的feature的坐标系});return feature;
}

在线示例

Openlayers 生成随机坐标:Openlayers random feature

Cesium 生成随机坐标:Cesium random feature

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...