地图已知一个坐标和一个半径生成随机多边形

根据一个坐标和半径,客户需要一个不规则的区域表示。通过将圆切割成象限并选取随机角度,初步形成四边形,进一步利用空间分析库生成随机边和多边形面,实现非规则形状的生成。
摘要由CSDN通过智能技术生成

背景
这个方案背景其实就是上篇中那次快速响应的一个额外需求,客户需要一个面来表示一个特定的区域,但客户只能提供一个点,且要求生成的图形不能是很规则的圆,长方形或者正方形

需求分析:已知一个点center,一个半径R。我们首先能想到的就是一个圆。以当前圆的圆心为基点我们可以将该圆切割成4个象限。那么是否我们可以使用随机的角度去去这个四个象限内的随机坐标呢?
初次实验,结果是成立的满足可以四边形需求。但仍不满足我们多边不含(四边)的需求。如果想做我们需要一个合理的算法支撑。时间是不允许我这样考虑的
换个思路:外部支撑吧!首先想到的就是Turf.js作为一个空间分析处理的库,理论上它是满足的。
果然发现了一个类circle
在这里插入图片描述

有了转译的算法工具那么剩下的就是数据处理了
1.获取数据源

  /**
       * @Description: 获取数据

       * @Author: ShiWei

       * @Date: 2020-09-14
       */
      getQsCenter(){
   
        let code=[]
        qs.data.map((item)=>{
   
           code.push([item.longitude,item.latitude])
        })
        this.getMorePoint(code)
      },

2.处理脏数据(数据中会有重复的点位)

   /**
       * @Description: 去除数据中重复点位信息

       * @Author: ShiWei

       * @Date: 2020-09-14
       */
      getMorePoint(code){
   
        for(var i=0; i<code.length; i++){
   
          for(var j=i+1; j<code.length; j++){
   
            if(code[i][0]===code[j][
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值