cloudfunctions/ClearingRedundantFolders/node_modules/@cloudbase/database/src/geo/multiLineString.ts

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

import { SYMBOL_GEO_MULTI_LINE_STRING } from '../helper/symbol'
import { isArray, isNumber } from '../utils/type'
import { LineString } from './lineString'
import { ISerializedMultiLineString } from './interface'


/**
 * 多个 LineString
 *
 * @author starkewang
 */
export class MultiLineString {

    readonly lines: LineString[]

    /**
     * 初始化
     *
     * @param lines    - LineString
     */
    constructor(lines: LineString[]) {
      if (!isArray(lines)) {
        throw new TypeError(`"lines" must be of type LineString[]. Received type ${typeof lines}`)
      }
      if (lines.length === 0) {
        throw new Error('Polygon must contain 1 linestring at least')
      }
      lines.forEach(line => {
        if (!(line instanceof LineString)) {
          throw new TypeError(`"lines" must be of type LineString[]. Received type ${typeof line}[]`)
        }
      })

      this.lines = lines
    }

    parse(key) {
      return {
        [key]: {
          type: 'MultiLineString',
          coordinates: this.lines.map(line => {
            return line.points.map(point => [point.longitude, point.latitude])
          })
        }
      }
    }

    toJSON() {
      return {
        type: 'MultiLineString',
        coordinates: this.lines.map(line => {
          return line.points.map(point => [point.longitude, point.latitude])
        })
      }
    }

    static validate(multiLineString: ISerializedMultiLineString) {
      if (multiLineString.type !== 'MultiLineString' || !isArray(multiLineString.coordinates)) {
        return false
      }
后面还有 14 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。