先上效果图
用的ios-echart这个库,更改地图的样式还是有一点坑的。
现在达到的效果是,会根据不同的省份销售额占比,来显示同一颜色的不同透明度,并且,点击会出现这一省份的销售情况和颜色加深边缘线变深,再点击别的区域,原先的区域会变成原来的颜色,选中的区域颜色变深。没有销售额的省份,点击是没有变色的。
我也是研究了好久,发现也没有哪个人对这个给出教程,所以贴出了自己写的一写代码,方便别人用。
1、首先把有销售额的几个省份的json字符串拼接出来,加入数组中备用。
2、把数组中的字符串拼接起来,放入大的框架json字符串中,让你的mapview进行加载。
3、mapview中有可以监听点击地图范围的方法,我们可以在该方法中,做一些自己想要的操作。
4、找到点击的区域model,拼接json字符串,这里要求选中状态(emphasis)与未选中状态(normal)不同,其他区域的要写成相同的。
5、拼接,刷新。注意这里设置的itemStyle就是没有在模型数组里的那些区域了,两种状态设置一样的颜色就不会让他们在选中状态的时候变色了。
6、maptapView就是点击时候出来的那个黑块,是我自己写的一个view类,点击移除(保持屏幕中只有一个黑块),获取到屏幕的坐标位置,然后因为是在tableview上,所以还要减去屏幕的偏移量,最后再添加这个view。
7、滚动的时候,移除6中提到的黑块,并计算保存屏幕的偏移量。
这样困扰了很久的地图问题就解决了。