🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

complex-data

Package Overview
Dependencies
Maintainers
1
Versions
321
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

complex-data - npm Package Compare versions

Comparing version
4.10.7
to
4.10.8
+4
-0
history.md

@@ -29,2 +29,6 @@

### `4.10.8`
- fix(track): 修正 `parseAngle` 角度计算错误的情况,并添加抖动值参数支持。
- fix(track): 修正轨迹初始状态在函数改变初始位置时未自动转换为暂停状态导致点击开始按钮会回到初始位置的 BUG。
### `4.10.7`

@@ -31,0 +35,0 @@ - feat(SimpleDateEdit): `rangeLimit`配置扩展,添加相等判断和信息提示,并优化修正相关功能。

+1
-1
{
"name": "complex-data",
"version": "4.10.7",
"version": "4.10.8",
"description": "a complex data",

@@ -5,0 +5,0 @@ "type": "module",

@@ -55,17 +55,30 @@ import { getNum } from "complex-utils"

static $minSize = 2
static parseAngle (currentLnglat: lnglatType, nextLnglat: lnglatType) {
if (currentLnglat && nextLnglat) {
const rad = Math.PI / 180
const lat1 = currentLnglat.lat * rad
const lat2 = nextLnglat.lat * rad
const lng1 = currentLnglat.lng * rad
const lng2 = nextLnglat.lng * rad
const x = Math.sin(lng2 - lng1) * Math.cos(lat2)
const y = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1) * Math.cos(lat2) * Math.cos(lng2 - lng1)
const radians = Math.atan2(x, y)
let angle = radians % (2 * Math.PI)
angle = (180 * radians) / Math.PI
/**
*
* @param current 当前经纬度
* @param next 目标经纬度
* @param jitterCm 抖动值(单位cm,低于抖动值则返回undefined)
* @returns
*/
static parseAngle( current: lnglatType, next: lnglatType, jitterCm?: number): number | undefined {
if (current && next) {
const dx = next.lng - current.lng
const dy = next.lat - current.lat
// ===== 抖动过滤(可选)=====
if (typeof jitterCm === 'number' && jitterCm > 0) {
// 将厘米换算为“近似经纬度距离”
const latMeter = dy * 111000
const lngMeter = dx * 111000 * Math.cos(current.lat * Math.PI / 180)
const distanceMeter = Math.sqrt(latMeter * latMeter + lngMeter * lngMeter)
if (distanceMeter * 100 < jitterCm) {
return undefined
}
}
// ===== 正常角度计算(永远可算)=====
// 正东 = 0°,逆时针
let angle = Math.atan2(dy, dx) * 180 / Math.PI
angle = (angle + 360) % 360
// 转换为:正北 = 0°,顺时针(地图语义)
angle = (90 - angle + 360) % 360
return angle
} else {
return undefined
}

@@ -404,2 +417,7 @@ }

}
changeStatusByMove() {
if (this.getStatus() === 'stop') {
this.setStatus('pause')
}
}
// drag start ---

@@ -410,5 +428,2 @@ triggerDrag(percent: number, drag: boolean) {

this.status.drag = true
if (this.getStatus() === 'stop') {
this.setStatus('pause')
}
}

@@ -429,5 +444,2 @@ this.setPercent(percent)

this.setCurrentByOffset('backward', offset)
if (this.getStatus() === 'stop') {
this.setStatus('pause')
}
this.$start()

@@ -439,5 +451,2 @@ }

this.setCurrentByOffset('forward', offset)
if (this.getStatus() === 'stop') {
this.setStatus('pause')
}
this.$start()

@@ -514,2 +523,3 @@ }

this.$onIndexChange(currentIndex, lastIndex, lastLineIndex)
this.changeStatusByMove()
}

@@ -516,0 +526,0 @@ protected $onIndexChange(currentIndex: number, lastIndex: number, lastLineIndex: number) {