上一章讲述了AMap.Marker,这一章使用第二种方式Loca来绘制带图片的点。
经过测试 ,该api 在点击事件上有些问题。如果你的点会有重叠的可能,请谨慎使用该api。

代码

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>IconLayer 天气预报</title><style>html,body,#container {margin: 0;padding: 0;width: 100%;height: 100%;}</style></head><body><div id="container"></div></body><script>window._AMapSecurityConfig = {securityJsCode: "xxxx",};</script><scriptlanguage="javascript"src="https://webapi.amap.com/maps?v=1.4.15&key=cccc"></script><!-- 一定要引入 --><scriptlanguage="javascript"src="https://webapi.amap.com/loca?v=1.3.2&key=cccc"></script><script>//设置点的数据 通常都是通过http请求获取,数据的key是任意的,也可以携带其他任意数据,每一个元素就是一个点,//通过点击事件,可以获取点对应的数组元素对象。借此可以实现点携带额外数据的功能var districts = [{name: "北京市",center: "116.407394,39.904211",icon: "https://a.amap.com/Loca/static/manual/weathers/cloudy.png",},{name: "天津市",center: "116.407394,40",icon: "https://a.amap.com/Loca/static/manual/weathers/blizard.png",},];// 创建地图实例var map = new AMap.Map("container", {showIndoorMap: false,viewMode: "3D",center:[116.407394,39.904211],resizeEnable: true,showLabel:false});//创建layervar layer = new Loca.IconLayer({//挂载到地图map: map,//开启事件支持,需要点击事件,必须设置为trueeventSupport: true});//给layer设置数据// 第一个参数是点位的对象数组,第二个参数指定第一个参数中的对象中哪个key是坐标数据layer.setData(districts, {//设置key 这样就会把districts中的每个元素的center作为点坐标数据lnglat: "center",});//设置点的样式layer.setOptions({//用于指定图片的路径、base64URI 或者 Image DOM 对象source: function (res) {//res 是 遍历 districts 中的当前元素var i = res.index;// return 当前遍历到的点的图片 districts中的icon是图片的url ,当然你可以使用其他方式,总之返回什么 点就显示什么return res.value.icon;},// 设置点的样式 style: {size: 28,//透明度opacity: 0.9,},});layer.on("click", function (ev) {console.log("点位", ev);});// 渲染layer.render();</script>
</html>

每一个layer中都可以存放多个点,通过layer可以控制点的显隐 点击事件等。
但是有个bug,layer是通过遍历的方式将点渲染到地图上,也就是说如果点坐标相同,后渲染的点会盖住先渲染的点,但是点击事件的触发,他是通过地图的点击事件获取点击的坐标,通过这个坐标遍历点数组判断是否点击到了layer中的点,但它并不是从数组的尾向头遍历,这就导致触发了先渲染的点的点击事件。从视觉上看点击的是最上面的点,触发的却是最下面的点的点击事件

【高德地图进阶】--- 带图片的点(2)相关推荐

  1. 【高德地图进阶】--- 添加城市版块纹理

    在之前的[高德地图进阶]- 自定义地图中,有了解过如果给地图添加纹理. 但是该功能是收费的,这就劝退了不少人. 通常的业务都是将城市版块抬高,这部分之前的文章也讲述过.都是在地图上添加覆盖物 在高德的 ...

  2. 【高德地图进阶】--- 3d城市版块之prism

    在[高德地图入门]-通过geoJson绘制 点,线,面一章中,我们学会了如何绘制城市版块的平面.但为了凸显某个城市,一般情况下都会将该城市的版块抬高实现3d效果.现在我们就来学学如何抬高地图版块 整理 ...

  3. 【高德地图进阶】--- 带图片的点(1)

    在使用地图开发时相信用的最多的就是点,其中难免需要使用到自定义图片的点. 而且点还要具备,可点击,可携带数据等功能. 点的绘制 绘制带图片的点常见的方式有四种 AMap.Marker :使用地图 JS ...

  4. Android高德地图贴合图片完成手绘地图展示

    上周刚接到一个需求,产品觉得高德的默认地图样式不好看,想要一个手绘地图贴合上去,看着美观很多,然而我内心确是抵触的,无法 ,产品讲了,只能先回答试试看看.接下拉就是一搏谷歌搜索. 1.使用web版本的 ...

  5. android高德方向,Android 高德地图进阶功能

    本文接本人上一篇文章:Android APP接入高德SDK问题与记录,如果还不熟悉高德地图接入,可以先阅读这篇文章. 1 切换图层及显示路况 通过设置mapType,可以切换地图的类型: aMap.m ...

  6. 【高德地图进阶】--- 使用DistrictSearch 绘制城市版块

    在[高德地图入门]-通过geoJson绘制 点,线,面一章中,我们学会了如何使用GeoJson绘制城市版块.今天我们使用高德自己的api来绘制城市版块 DistrictSearch DistrictS ...

  7. 【高德地图进阶】--- 自定义地图

    在开发的过程中, 有时候高德官方地图样式无法符合需求,这就需要我们自定义地图的样式了. 步骤:登录高德地图–>进入控制台–>自定义地图 可以直接创建地图,也可以在模板基础上进行修改 可以控 ...

  8. 【高德地图进阶】--- 带图片的点(3)

    SimpleMarker本身继承了AMap.Marker ,所以使用起来并不难,只需要额外引入组件库,用法和marker差不多. 1.引入UI组件库 <script src="http ...

  9. 高德地图生成静态图片,显示指定经纬度的地图

    最近接到一个地图需求,1.生成静态图片,2.显示指定经纬度的地图 然后我结合需求sdkapi后,就确定了大概几个需求.本文只注明几个比较有用的地方,具体还得结合官方文档,普通不是专门以地图开发需求的a ...

最新文章

  1. 影像组学视频学习笔记(41)-如何使用软件提取组学特征、Li‘s have a solution and plan.
  2. Nginx平滑升级,并增加清除缓存模块
  3. java编程那些事pdf下载_《Java编程那点事儿》读书笔记(六)
  4. LVS的DR工作模型解析
  5. linux 自启动程序 优先级,Linux自启动服务优先级/顺序设置
  6. java中延迟_Java中的延迟分配
  7. linux 中网卡配置命令 ifconfig简介
  8. php解析二级json,PHP Json 解析
  9. CouchBase C 客户端接口调用实例
  10. fork: retry: Resource temporarily unavailable 解决方案
  11. 上班族中流行以貌取人 汉王人脸通变普及
  12. SQL 2008安装时反复提示重启和安装.net framework 3.5
  13. WinCE同步(ActiveSync)问题
  14. python爬取电子病历_电子病历患者查询
  15. Caused by: java.lang.SecurityException: Neither user 10068 nor current process has android.permissio
  16. JAVA实现UDP单播组播
  17. BPDU协议分析-sniffer应用
  18. Error:Execution failed for task ':recordlib:lint'. Lint found errors in the project; aborting buil
  19. 抖音快手B站等平台视频检测机制和规避方法
  20. 淘宝/天猫如何获得店铺的所有商品?

热门文章

  1. 李涛:深度解读大数据时代的数据挖掘
  2. imx6ull 双网口设置mac地址
  3. 题解-bzoj2560 串珠子
  4. 易到用车面试总结(android)
  5. Win10系统VS2010中Microsoft MPI v8.1 环境配置
  6. python利用opencv或PIL给图片加文字(中文)
  7. pandas的Groupby加速
  8. B. Mark the Dust Sweeper(思维)
  9. 【Python爬虫:唯美girl,charles解决反调试】
  10. python原生如何实现抓包_python实现抓包、解析流程,超过瘾!