当前位置: 首页 > news >正文

随机产生一些江河上的坐标数据

不久前收到一个需求,说要随机创建约一百个某段江河上的坐标点,用于做一些数据呈现。

我首先是想到用AI直接给我一点数据,没想到给出来的坐标,有许多都落在陆地上,根本不符合我的要求。后来结合AI给出的建议,我用程序计算,得到了一些坐标点。思路如下:

1、在地图上沿江河勾勒出一个封闭的多边形,计算出来的坐标点,将落在该多边形内
2、导出该多边形,用于计算

具体实现如下:

1、勾勒多边形
勾勒多边形的工具,我在谷歌地图上完成。https://www.google.com/maps/d/,
在这里插入图片描述
2、计算多边形内的坐标
比如随机算出100个坐标。
我用vue3来完成。代码由chatGPT给出,如下:

<template><div><div v-if="coordinates.length"><h2>生成的坐标:</h2><ul><li v-for="(coord, index) in coordinates" :key="index">{{ coord }}</li></ul></div><div v-else><p>暂无坐标生成</p></div><button @click="generateCoordinates">生成坐标</button></div>
</template><script>
import { ref } from 'vue';
import * as turf from '@turf/turf';export default {setup() {const coordinates = ref([]);const generateCoordinates = () => {//这是勾勒出来的多边形const polygonCoords = [[121.0473533, 31.7894934], [121.026754, 31.7521328], [121.2245079, 31.6469753],[121.3233848, 31.5147756], [121.4950462, 31.4163819], [121.6406151, 31.3472103],[121.6708275, 31.3331352], [121.6941734, 31.377699], [121.545858, 31.4620776],[121.5019127, 31.4843315], [121.5115257, 31.5054093], [121.5678306, 31.4843315],[121.5911766, 31.4609062], [121.6790672, 31.4257572], [121.7230125, 31.4198978],[121.7449852, 31.4714483], [121.6886803, 31.4983839], [121.6062828, 31.5217998],[121.4057823, 31.6118963], [121.2890526, 31.6890526], [121.2217613, 31.7019058],[121.2052818, 31.7439582], [121.1627098, 31.7836568], [121.1242576, 31.7894934],[121.0967918, 31.781322], [121.0473533, 31.7894934]];const polygon = turf.polygon([polygonCoords]);const bbox = turf.bbox(polygon);const points = [];while (points.length < 100) {const randomLng = Math.random() * (bbox[2] - bbox[0]) + bbox[0];const randomLat = Math.random() * (bbox[3] - bbox[1]) + bbox[1];const randomPoint = turf.point([randomLng, randomLat]);if (turf.booleanPointInPolygon(randomPoint, polygon)) {points.push([randomLng, randomLat]);}}coordinates.value = points;};return { coordinates, generateCoordinates };}
}
</script><style>
/* 在这里添加样式 */
</style>

相关文章:

  • 秋招突击——6/17——复习{整理昨天的面试资料}——新作{删除链表倒数第n个节点}
  • Jmeter多个请求按照比例并发压测的几种方式
  • POI:接收上传上来的excel,解析并导入到数据库
  • Kafka中的时间轮算法
  • 2024广东省职业技能大赛云计算赛项实战——Ansible部署Zabbix
  • error: the type ‘const zjloc::<lambda(const Vec2i, const Vec2i)>’
  • JAVA NIO(二) Buffer和Channel
  • Elasticsearch:倒数排序融合 - Reciprocal rank fusion - 8.14
  • go的有栈和无栈
  • C#开发-集合使用和技巧(一)常用集合和方法介绍
  • 设计模式——访问者模式
  • python从入门到精通1:注释
  • Android 屏幕适配
  • python_根据关键词匹配文件中的数据并绘图
  • python学习—字典(Dictionary)
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • Angular 响应式表单 基础例子
  • Create React App 使用
  • Java读取Properties文件的六种方法
  • JS 面试题总结
  • markdown编辑器简评
  • PHP 的 SAPI 是个什么东西
  • React as a UI Runtime(五、列表)
  • Vue官网教程学习过程中值得记录的一些事情
  • 排序算法学习笔记
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 用Python写一份独特的元宵节祝福
  • 字符串匹配基础上
  • Spring第一个helloWorld
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • (poj1.2.1)1970(筛选法模拟)
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (二)fiber的基本认识
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (四)汇编语言——简单程序
  • (算法)硬币问题
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转) 深度模型优化性能 调参
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .mysql secret在哪_MySQL如何使用索引
  • .NET delegate 委托 、 Event 事件
  • .NET Framework杂记
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .Net多线程总结
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .NET企业级应用架构设计系列之开场白
  • /boot 内存空间不够
  • @SuppressWarnings注解
  • @开发者,一文搞懂什么是 C# 计时器!
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)