高德地图只展示某个区域的人流量,遮盖其他区域

2023-10-13 01:10

本文主要是介绍高德地图只展示某个区域的人流量,遮盖其他区域,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

思路:

用AMap.DistrictSearch搜索某个(省份、城市、县)返回它的边界坐标集合,使用这个结果,用AMap.Polygon绘制边界线和遮盖,最后使用AMap.Heatmap绘制热力图

高德地图api参考链接:

AMap.DistrictSearch:

https://lbs.amap.com/api/javascript-api/reference/search#m_AMap.DistrictSearch

AMap.Polygon

https://lbs.amap.com/api/javascript-api/reference/overlay#polygon

AMap.Heatmap

https://lbs.amap.com/api/javascript-api/reference/layer#m_AMap.Heatmap

以下是使用北京市做的例子的完整代码


<!doctype html>
<html>
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width"><title></title><style>html,body{background-image: linear-gradient(#D4EBFF, #F4F8FB);height:100%;}.wrap_map{position: relative;margin:0 auto;width:1200px;height:100%;}.map_tips{position: absolute;right:80px;bottom:50px;}.map_tips .tips_scroll{width:155px;height:13px;border-radius:7px;background-image: linear-gradient(to right,#FF0000, #FFD800,#55e12f,#2BE145,#65e96a,#BBF087);}.map_tips .tips_text{display: flex;color:#545454;font-size:12px;margin-top:15px;}.tips_text>div{flex-grow: 1;}.tips_text>div:nth-of-type(2){flex-grow:2;text-align: center;}.tips_text>div:last-child{text-align: right;}#container {width:100%;height:100%;}</style>
</head>
<body><div class="wrap_map"><div id="container"></div><div class="map_tips"><div class="tips_scroll"></div><div class="tips_text"><div>拥挤</div><div>正常</div><div>稀疏</div></div></div></div>
<script src="https://webapi.amap.com/maps?v=1.4.15&key=您申请的key值&plugin=AMap.DistrictSearch,AMap.Heatmap"></script>
<script src="https://a.amap.com/jsapi_demos/static/resource/heatmapData.js"></script><!--北京市热力图数据-->
<script>// //热力图数据结构// let heatmapData = [//     {"lng":经度,"lat":纬度,"count":人数},// ];var map = new AMap.Map('container', {zoom:9,center:[116.44923,40.207714],pitch: 0,viewMode: '3D',});new AMap.DistrictSearch({extensions:'all',subdistrict:0,level: 'district'}).search('北京市',function(status,result){ // 外多边形坐标数组和内多边形坐标数组var outer = [new AMap.LngLat(-360,90,true),new AMap.LngLat(-360,-90,true),new AMap.LngLat(360,-90,true),new AMap.LngLat(360,90,true),]; // 使得遮盖填充反向var holes = result.districtList[0].boundaries // 得到该区域的边界坐标集合var pathArray = [outer];pathArray.push.apply(pathArray,holes)var polygon = new AMap.Polygon( {pathL:pathArray,//线条颜色,使用16进制颜色代码赋值。默认值为#006600strokeColor: '#6e93f9',strokeWeight: 2,fillColor: 'rgba(255,255,255)',fillOpacity: 1,strokeStyle:'dashed',strokeDasharray:[2,2]});polygon.setPath(pathArray);map.add(polygon);})//设置热力图var heatmap = new AMap.Heatmap(map, {radius: 60, //给定半径opacity: [0, 0.8],gradient:{0: '#BBF087',0.5: '#2BE145',0.75: '#FFD800',1.0: '#FF0000'}});heatmap.setDataSet({data: heatmapData,  //对应数据max: 100  //设置景区人流量最大值});map.add(heatmap)
</script>
</body>
</html>

结果:

 

这篇关于高德地图只展示某个区域的人流量,遮盖其他区域的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/199719

相关文章

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

使用Folium在Python中进行地图可视化的操作指南

《使用Folium在Python中进行地图可视化的操作指南》在数据分析和可视化领域,地图可视化是一项非常重要的技能,它能够帮助我们更直观地理解和展示地理空间数据,Folium是一个基于Python的地... 目录引言一、Folium简介与安装1. Folium简介2. 安装Folium二、基础使用1. 创建

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

起点中文网防止网页调试的代码展示

起点中文网对爬虫非常敏感。如图,想在页面启用调试后会显示“已在调试程序中暂停”。 选择停用断点并继续运行后会造成cpu占用率升高电脑卡顿。 经简单分析网站使用了js代码用于防止调试并在强制继续运行后造成电脑卡顿,代码如下: function A(A, B) {if (null != B && "undefined" != typeof Symbol && B[Symbol.hasInstan

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地

YOLOv8/v10+DeepSORT多目标车辆跟踪(车辆检测/跟踪/车辆计数/测速/禁停区域/绘制进出线/绘制禁停区域/车道车辆统计)

01:YOLOv8 + DeepSort 车辆跟踪 该项目利用YOLOv8作为目标检测模型,DeepSort用于多目标跟踪。YOLOv8负责从视频帧中检测出车辆的位置,而DeepSort则负责关联这些检测结果,从而实现车辆的持续跟踪。这种组合使得系统能够在视频流中准确地识别并跟随特定车辆。 02:YOLOv8 + DeepSort 车辆跟踪 + 任意绘制进出线 在此基础上增加了用户

Imageview在百度地图中实现点击事件

1.首先第一步,需要声明的全局有关类的引用 private BMapManager mBMapMan; private MapView mMapView; private MapController mMapController; private RadioGroup radiogroup; private RadioButton normalview; private RadioBu

MMO地图传送

本篇由以下四个点讲解: 创建传送点 传送点配置 编辑器扩展:传送点数据生成 传送协议与实现 创建传送点 建碰撞器触发 //位置归零 建一个传送门cube放到要传送的位置(这个teleporter1是传出的区域 这是从另一张地图传入时的传送门 创建一个脚本TeleporterObject给每个传送cube都绑上脚本 通过脚本,让传送门在编辑器下面还能绘制出来

通过Ajax请求后台数据,返回JSONArray(JsonObject),页面(Jquery)以table的形式展示

点击“会商人员情况表”,弹出层,显示一个表格,如下图: 利用Ajax和Jquery和JSONArray和JsonObject来实现: 代码如下: 在hspersons.html中: <!DOCTYPE html><html><head><meta charset="UTF-8"><title>会商人员情况表</title><script type="text/javasc