当前位置: 首页 > news >正文

6.12.瓦片图层(TilesOverlay)

愿你出走半生,归来仍是少年!

        瓦片图层是用于承载栅格数据进行展示的图层。由于其瓦片加载的方式,非常适合移动端进行大范围栅格信息的展示。

        瓦片图层可根据与其搭配的数据提供器/数据源类型进行不同服务格式的呈现,具体的呈现放到第7部分细说,此处概略介绍瓦片图层的基础知识以及如何进行透明度设置。

1.构造

TilesOverlay(MapTileProviderBase aTileProvider, Context aContext)
TilesOverlay(MapTileProviderBase aTileProvider, Context aContext, boolean horizontalWrapEnabled, boolean verticalWrapEnabled)

        构造中需要传入数据提供器/数据源,可选的设置图层是否重复显示。

2. 常用方法

2.1.平铺

voidsetHorizontalWrapEnabled(boolean horizontalWrapEnabled)
voidsetVerticalWrapEnabled(boolean verticalWrapEnabled)

        用于设置瓦片图层是否在横向火纵向进行平铺展示。

2.2.缩放等级

intgetMinimumZoomLevel()
intgetMaximumZoomLevel()

        获取当前瓦片图层的最大以及最小的缩放等级。 

2.3.背景色

intgetLoadingBackgroundColor()
voidsetLoadingBackgroundColor(int pLoadingBackgroundColor)

        获取或设置瓦片图层的背景颜色。若不设置默认为白色,咋瓦片无数据的地方将会呈现为白色,将会覆盖下方的图层造成遮盖,通常设置为透明。

//背景透明setLoadingBackgroundColor(Color.TRANSPARENT);

 3.图层透明度

        瓦片图层作为栅格数据的呈现方式,通常会存在多个图层叠加观看使用的需求,透明度的实时调整是一个重要的功能。在TileOverlay中未提供直接变更图层透明度的方法,但是我们可以通过变更图层的ColorFilter进行功能实现。

voidsetColorFilter(ColorFilter filter)

以下为具体的实现过程:

package spec.map.osm.overlayers.tiles;import android.content.Context;
import android.graphics.Color;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;import org.osmdroid.tileprovider.MapTileProviderBase;
import org.osmdroid.views.overlay.TilesOverlay;import spec.map.osm.overlayers.IBasicLayer;/*** 瓦片图层*/
public class TileOverlayer extends TilesOverlay implements IBasicLayer {protected String name;protected String displayeName;/*** 颜色矩阵*/protected ColorMatrix colorMatrix = new ColorMatrix();public TileOverlayer( MapTileProviderBase aTileProvider, Context aContext,String name,String displayeName) {super(aTileProvider, aContext,false,false);this.name=name;this.displayeName=displayeName;//设置为默认样式colorMatrix.set(new float[]{1, 0, 0, 0, 0,0, 1, 0, 0, 0,0, 0, 1, 0, 0,0, 0, 0, 1, 0,});setColorFilter(new ColorMatrixColorFilter(colorMatrix));//不可平铺setVerticalWrapEnabled(false);setHorizontalWrapEnabled(false);//背景透明setLoadingBackgroundColor(Color.TRANSPARENT);}/*** 设置图层元名称* @param lyName*/@Overridepublic void setName(String lyName) {this.name = lyName;}/*** 获取图层元名称* @return*/@Overridepublic String getName() {return name;}/*** 设置图层显示名称* @param lyDisplayName*/@Overridepublic void setDisplayName(String lyDisplayName) {this.displayeName = lyDisplayName;}/*** 图层图层显示名称* @return*/@Overridepublic String getDisplayName() {return displayeName;}/*** 设置图层的透明度** @param trans 透明度0-100*/public void setTransparency(int trans) {colorMatrix.set(new float[]{1, 0, 0, 0, 0,0, 1, 0, 0, 0,0, 0, 1, 0, 0,0, 0, 0, trans/100f, 0,});setColorFilter(new ColorMatrixColorFilter(colorMatrix));}/*** 获取图层当前的透明度 0-100** @return*/public int getTransparency() {var a = colorMatrix.getArray()[18];int result = Math.round(a * 100);return result;}/*** 获取瓦片的数据支撑* @return*/public  MapTileProviderBase getTileProvider(){return  mTileProvider;}}

相关文章:

  • 【Amazon】云上探索实验室—了解 AI 编程助手 Amazon Codewhisperer
  • ChatGLM3-6B:新一代开源双语对话语言模型,流畅对话与低部署门槛再升级
  • Spring Boot 日志
  • 天马行空的超级炫酷旋转图片-前端
  • 红队专题-从零开始VC++C/S远程控制软件RAT-MFC-超级终端
  • 编程怎么学习视频教程,编程实例入门教程,中文编程开发语言工具下载
  • 《如何控制 LLM 的输出格式和解析其输出结果?》
  • 数据校验:Spring Validation
  • 前端转行可以做什么
  • 通往优秀软件架构师之路:掌握技术核心,修炼基础原理【文中送书,十本任选】
  • 我给网站做公安备案年度安全评估
  • 计算机视觉:使用opencv实现银行卡号识别
  • Redis解决缓存问题
  • 数据结构—内部排序(下)
  • 分布式锁的概念、应用场景、实现方式和优缺点对比
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【React系列】如何构建React应用程序
  • 【笔记】你不知道的JS读书笔记——Promise
  • C++11: atomic 头文件
  • FineReport中如何实现自动滚屏效果
  • JS学习笔记——闭包
  • ng6--错误信息小结(持续更新)
  • React-Native - 收藏集 - 掘金
  • Travix是如何部署应用程序到Kubernetes上的
  • 翻译:Hystrix - How To Use
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 基于HAProxy的高性能缓存服务器nuster
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 优秀架构师必须掌握的架构思维
  • 怎么将电脑中的声音录制成WAV格式
  • 7行Python代码的人脸识别
  • k8s使用glusterfs实现动态持久化存储
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • UI设计初学者应该如何入门?
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​批处理文件中的errorlevel用法
  • $jQuery 重写Alert样式方法
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (23)Linux的软硬连接
  • (4)logging(日志模块)
  • (多级缓存)多级缓存
  • (分布式缓存)Redis持久化
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (转)Oracle存储过程编写经验和优化措施
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET MVC第五章、模型绑定获取表单数据
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .NetCore 如何动态路由
  • .NET多线程执行函数
  • .net反编译工具