测试关于台风点是否在警戒线内

这篇博客介绍了如何利用JavaScript来判断点是否在连续折线(如台风警戒线)内,并将结果在地图上进行可视化展示。通过遍历测试数据,调用`judgePointInWarning`方法进行判断,然后使用不同图标表示点在24h、48h警戒线内外。最后,将判断结果在地图上绘制出来,实现了动态的台风预警效果。

其实这文跟上文 js判断点在连续折线哪一侧 有关系,主要用来测试台风点是否在警戒线以内

1. 先准备测试数据

let arr1 = [   
    [104, 0], [106, 0], [105, -1], [105, 1], [104, -1], [106, 1],
    [112, 4.5], [114, 4.5], [113, 3.5], [113, 5.5], [114, 3.5], [111, 5.5], 
    [118, 11], [120, 11], [119, 10], [119, 12], [118, 12], [118, 10], 
    [118, 18], [120, 18], [119, 17], [119, 19], [118, 19], [120, 17], 
    [126, 22], [128, 22], [127, 21], [127, 23], [126, 23], [128, 23],
    [126, 34], [128, 34], [127, 33], [127, 35], [126, 35], [128, 33]
]
let arr2 = [
    [119, 0], [121, 0], [120, -1], [120, 1], [119, 1], [121, -1], 
    [131, 15], [133, 15], [132, 14], [132, 16], [131, 16], [133, 14],
    [131, 34], [133, 34], [132, 33], [132, 35], [131, 35], [133, 33]
]
//	用三种图标表示24h以内、48h以内、48h以外
let testColors = ['images/ellipse1.png', 'images/ellipse4.png', 'images/ellipse6.png'];

2. 方法:将判断结果在地图上画出来

function testByDrawPointCheckWarning(arr) {
    arr.forEach(item => {
        let vals = judgePointInWarning(item, earlyWarnLine);
        let images = testColors[vals.length];   
        myIcon = new BMap.Icon(images, new BMap.Size(6, 6));
        var marker2 = new BMap.Marker(new BMap.Point(...item), { 
        	icon: myIcon, 
        	offset: new BMap.Size(0, 0) 
        }); // 创建标注

        marker2.addEventListener("click", function(e) {
            console.log(item);	//	该事件用来参考判断具体是哪个点
        });
        map.addOverlay(marker2);
    })
}

judgePointInWarning 方法在上文 【js判断点在连续折线哪一侧】 已定义。
earlyWarnLine 在上文 【百度地图画24h和48h台风警戒线】 已定义。

3. 测试及结果

	testByDrawPointCheckWarning(arr1);
    testByDrawPointCheckWarning(arr2);

结果符合预期
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值