leaflet windyAPI地图政治问题解决方法

前言:本来觉得不值一提,结果解决了一次 又发生了一次,遂写此文章,有缘人可以少走一点弯路。

问题产生与闲言碎语

windyAPI生成的地图实例,底图中台湾部分,一为繁体,二缩放到某个级别时,中国本土属中国人民共和国,台湾那标注中华民国,说实话,我还是强烈鄙视搞地图政治的第三方。要说,包括OSM地图也是有问题的。leaflet甚至也是公然掺杂政治,相信如果你最近这段时间有上过leaflet官网应该能明白我在说什么。软件不该成为政治博弈的工具。

那这个主要还是接手上个人留下来的问题,废话不多说,直接上解决方案。

解决方法

由于时间久远(几个月?),我已经不太记得当时的追溯的思路,但可以确定的是,尝试了不少,本来想找出他那个有问题的底图图层删掉,结果还是不行。因为leaflet的设计就是啥√8东西都塞一堆,尝试了一会,看到里面200多个layer人都傻了。
遂思考,我需要解决的是他的问题底图,而他的效果我即使清除了,他也会继续刷新加载。往往大道至简,能解决问题的码农就是好码农,暴力的直接给他干掉 应该可以。于是=》

			windyInit(options, windyAPI => {
    
    
				const {
    
     store, map } = windyAPI;
				// that.imgLayer.addTo(map);
				that.map = map;
				...
				// 核心代码在以下3行
				map.eachLayer(function(layer){
    
    
				    map.removeLayer(layer)
				});
				that.imgLayer.addTo(map)   
				...
			})

在这里插入图片描述

值得注意的一点

应该可以看到,这是一个异步函数为了保证确定能解决问题,请确保在暴力清除它所有图层之前的函数不会报错。以免没走到下面就报错了,地图自然还是会出错的。

猜你喜欢

转载自blog.csdn.net/q1025387665a/article/details/126618280