无人机代码修改

pull/8/head
123 6 days ago
parent 4cf742a6ea
commit 3cc936ba14

@ -0,0 +1,132 @@
-- 更新敌人位置到50米范围内
-- Update Enemy Locations within 50 meters range
-- 地图中心:(113.045134, 28.262212)
-- Map Center: (113.045134, 28.262212)
USE Client;
-- 计算50米对应的经纬度偏移量
-- 在纬度28.26度附近:
-- 1度经度 ≈ 98,500米
-- 1度纬度 ≈ 111,000米
-- 50米经度偏移 ≈ 50/98500 ≈ 0.0005度
-- 50米纬度偏移 ≈ 50/111000 ≈ 0.00045度
-- 更新所有敌人位置到50米范围内分布更紧密
UPDATE enemy_records SET
longitude = 113.045134 + (RAND() - 0.5) * 0.001, -- ±0.0005度 ≈ ±50米
latitude = 28.262212 + (RAND() - 0.5) * 0.0009, -- ±0.00045度 ≈ ±50米
update_time = NOW()
WHERE id LIKE 'ENEMY%';
-- 手动设置几个关键敌人位置确保分布均匀且在50米内
UPDATE enemy_records SET
longitude = 113.045134, latitude = 28.262212, -- 正中心
update_time = NOW()
WHERE id = 'ENEMY001';
UPDATE enemy_records SET
longitude = 113.045134 + 0.0003, latitude = 28.262212 + 0.0003, -- 东北30米
update_time = NOW()
WHERE id = 'ENEMY002';
UPDATE enemy_records SET
longitude = 113.045134 - 0.0003, latitude = 28.262212 - 0.0003, -- 西南30米
update_time = NOW()
WHERE id = 'ENEMY003';
UPDATE enemy_records SET
longitude = 113.045134 + 0.0003, latitude = 28.262212 - 0.0003, -- 东南30米
update_time = NOW()
WHERE id = 'ENEMY004';
UPDATE enemy_records SET
longitude = 113.045134 - 0.0003, latitude = 28.262212 + 0.0003, -- 西北30米
update_time = NOW()
WHERE id = 'ENEMY005';
UPDATE enemy_records SET
longitude = 113.045134 + 0.0005, latitude = 28.262212, -- 正东50米
update_time = NOW()
WHERE id = 'ENEMY006';
UPDATE enemy_records SET
longitude = 113.045134 - 0.0005, latitude = 28.262212, -- 正西50米
update_time = NOW()
WHERE id = 'ENEMY007';
UPDATE enemy_records SET
longitude = 113.045134, latitude = 28.262212 + 0.00045, -- 正北50米
update_time = NOW()
WHERE id = 'ENEMY008';
UPDATE enemy_records SET
longitude = 113.045134, latitude = 28.262212 - 0.00045, -- 正南50米
update_time = NOW()
WHERE id = 'ENEMY009';
-- 验证更新结果,计算距离中心点的实际距离
SELECT
id,
ROUND(longitude, 7) as longitude,
ROUND(latitude, 7) as latitude,
threat_level,
status,
-- 计算距离中心点的距离(米)
ROUND(
6371000 * 2 * ASIN(
SQRT(
POW(SIN(RADIANS(28.262212 - latitude) / 2), 2) +
COS(RADIANS(latitude)) * COS(RADIANS(28.262212)) *
POW(SIN(RADIANS(113.045134 - longitude) / 2), 2)
)
), 1
) as distance_meters,
update_time
FROM enemy_records
ORDER BY distance_meters, threat_level DESC, id;
-- 显示统计信息
SELECT
'地图中心坐标' as location_type,
113.045134 as longitude,
28.262212 as latitude,
0 as distance_meters
UNION ALL
SELECT
'敌人位置范围',
CONCAT(ROUND(MIN(longitude), 7), ' ~ ', ROUND(MAX(longitude), 7)),
CONCAT(ROUND(MIN(latitude), 7), ' ~ ', ROUND(MAX(latitude), 7)),
ROUND(MAX(
6371000 * 2 * ASIN(
SQRT(
POW(SIN(RADIANS(28.262212 - latitude) / 2), 2) +
COS(RADIANS(latitude)) * COS(RADIANS(28.262212)) *
POW(SIN(RADIANS(113.045134 - longitude) / 2), 2)
)
)
), 1)
FROM enemy_records;
-- 验证所有敌人都在50米范围内
SELECT
COUNT(*) as total_enemies,
COUNT(CASE WHEN
6371000 * 2 * ASIN(
SQRT(
POW(SIN(RADIANS(28.262212 - latitude) / 2), 2) +
COS(RADIANS(latitude)) * COS(RADIANS(28.262212)) *
POW(SIN(RADIANS(113.045134 - longitude) / 2), 2)
)
) <= 50
THEN 1 END) as enemies_within_50m,
ROUND(AVG(
6371000 * 2 * ASIN(
SQRT(
POW(SIN(RADIANS(28.262212 - latitude) / 2), 2) +
COS(RADIANS(latitude)) * COS(RADIANS(28.262212)) *
POW(SIN(RADIANS(113.045134 - longitude) / 2), 2)
)
)
), 1) as avg_distance_meters
FROM enemy_records;
Loading…
Cancel
Save