Android百度地图sdk设置Marker不同颜色

news/2025/2/12 10:19:31/

        使用百度地图sdk,在地图上画一个marker图标很简单,如下

    private fun drawMark(point: LatLng){var resId = R.mipmap.icon_device//这个资源是一张图片//构建Marker图标val bitmap = BitmapDescriptorFactory.fromResource(resId)//构建MarkerOption,用于在地图上添加Markerval option: OverlayOptions = MarkerOptions().position(point).icon(bitmap)//在地图上添加Marker,并显示var marker = binding.mapView.map.addOverlay(option)}

        但是,这个icon_device是mipmap文件夹下的一张图片。如果我需要根据不同的情况显示不同颜色同一张图片,那么一张png的图片就不能满足需求了。首先需要在drawable里添加vector文件,通过dataPath画图,使用dataPath的资源文件作为图片显示在地图上,获取之后更改颜色即可。具体代码如下

private fun drawColorMark(point: LatLng, colorStr: String, degree: Float){var resDrawable = ContextCompat.getDrawable(activity, R.drawable.ic_cell_tower)//这是一个dataPath画的资源文件resDrawable!!.setTint(Color.parseColor(colorStr))//通过setTint修改图片颜色var width = resDrawable!!.getIntrinsicWidth()var height = resDrawable!!.getIntrinsicHeight()var bitmap1 = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);var canvas = Canvas(bitmap1);resDrawable.setBounds(0, 0, width, height);resDrawable.draw(canvas);//构建Marker图标val bitmap = BitmapDescriptorFactory.fromBitmap(bitmap1)//构建MarkerOption,用于在地图上添加Markerval option: OverlayOptions = MarkerOptions().position(point).icon(bitmap).rotate(degree)//设置图片旋转角度//在地图上添加Marker,并显示var marker = binding.mapView.map.addOverlay(option)}

使用同一张资源文件,设置不同的颜色和角度,可在地图上画图不同颜色,旋转不同角度的marker。即便是经纬度相同,如果角度不同,也不会产生图片覆盖的情况。


http://www.ppmy.cn/news/1152638.html

相关文章

Leetcode 【136. 只出现一次的数字】

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。 示例 1 : 输入&#xff1…

【个人记录】Ceph添加OSD

目标 1.已存在Ceph集群2.添加node1盘 /dev/nvme1n1 /dev/nvme2n1进入ceph集群 步骤 1.格式化磁盘 ceph-deploy disk zap node1 /dev/nvme1n1 /dev/nvme2n12.添加磁盘到osd ceph-deploy osd create --data /dev/nvme1n1 node1 ceph-deploy osd create --data /dev/nvme2n1 …

node.js知识系列(5)-每天了解一点

目录 21. RESTful API 设计中的 HTTP 动词22. 中间件链和回调地狱23. Express.js 的 ORM 经验24. 错误处理中间件和 HTTP 状态码25. 事件循环(Event Loop)在异步编程中的作用26. Node.js 缓存机制27. Node.js 全局对象28. 性能分析和调优经验29. Express…

【LeetCode热题100】--739.每日温度

739.每日温度 方法:单调栈 可以维护一个存储下标的单调栈,从栈底到栈顶的下标对应的温度列表中的温度依次递减。如果一个下标在单调栈里,则表示尚未找到下一次温度更高的下标。 正向遍历温度列表。对于温度列表中的每个元素 temperatures[i…

C++【继承】

C继承概念 继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。 当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承…

07_03文件系统怎么玩的

文件系统 Linux将文件系统分为了两层:VFS(虚拟文件系统)、具体文件系统,如下图所示: VFS(Virtual Filesystem Switch)称为虚拟文件系统或虚拟文件系统转换,是一个内核软件层&#…

【AI视野·今日Sound 声学论文速览 第二十五期】Fri, 13 Oct 2023

AI视野今日CS.Sound 声学论文速览 Fri, 13 Oct 2023 Totally 8 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers Impact of time and note duration tokenizations on deep learning symbolic music modeling Authors Nathan Fradet, Nicolas Gutowski,…

GPT-4V的图片识别和分析能力

GPT-4V是OpenAI开发的大型语言模型,是GPT-4的升级版本。GPT-4V在以下几个方面进行了改进: 模型规模更大:GPT-4V的参数量达到了1.37T,是GPT-4的10倍。训练数据更丰富:GPT-4V的训练数据包括了1.56T的文本和代码数据。算…