高德地图-2D地图下区域遮掩(只显示固定区域里的内容)

最近遇到一个新的需求需用用到高德地图

公司需要只显示固定区域范围的地图,其余地方的地图都用透明遮罩覆盖
完成后如下图所示:
地图体验网址
地图
刚开始的时候研究了半天高德地图的的JS API中只有一个区域遮掩符合条件
但是区域遮掩这个代码有一个很重要的前提是必须使用3D地图,
如果不使用3D地图还是全部显示,只是在周围描一圈的边
然后就卡在这里很久
区域遮掩
2D

苦苦查询了很久突然在 这里设定楼块样式发现了能够通过坐标点绘制一圈填充内部,既然如此我就在想能否和区域遮掩结合一下把外部的颜色填充一下就可以实现只显示固定范围的效果
设置样式
2D状态下

围栏
话不多说准备开写,在自定义范围的时候遇到一个很麻烦的事情就是如果你要绘制一个区域,就得把这个区域边界的点形成一个围栏,一个点一个点的去获取的话有时候还不知道获取到哪里了,于是我动手先写了一个绘制边界获取坐标的demo
网址如下:绘制坐标点获取

首先如果不在你要的区域范围内的话可以在右上角搜索定位到你要的地址
然后点击绘制线段
在这里插入图片描述
这里利用鼠标左键绘制形成一个封闭的区域,完成后点击鼠标右键会提示绘制完成
绘制
提示完成后点击下方获取全部坐标点,此时所有坐标点的位置就已经复制进粘贴板了直接找个记事本
Ctrl+V就可以得到坐标点的数组了
如果粘贴没有效果的话可以在网站f12看下控制台控制台里也会输出所有坐标点

获得到坐标点集合后我们就可以开始代码的编写了

   var options = {areas:[{ //围栏1//visible:false,//是否可见rejectTexture:true,//是否屏蔽自定义地图的纹理path: [[[116.316092,39.992203],[116.314933,39.999798],[116.31519,40.004598],[116.31562,40.005255],[116.316414,40.00583],[116.318216,40.006258],[116.318967,40.006652],[116.318946,40.008214],[116.3185,40.012725],[116.326804,40.013267],[116.328349,40.013251],[116.328972,40.013152],[116.330903,40.013218],[116.331632,40.012955],[116.335688,40.009356],[116.336675,40.007729],[116.336932,40.00689],[116.336954,40.006841],[116.337126,40.001368],[116.337705,39.992869],[116.325367,39.992409]]]}]};

首先把坐标点放进数组里

因为我们的的坐标点直接拿去绘制的话会填充内部所以我们需要结合3D区域遮掩的代码,将内部区域改为外部区域的反选

 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 pathArray = [outer];pathArray.push.apply(pathArray,options.areas[0].path)

最后只需一句高德地图的绘制方法就能将外部区域遮罩显示出来达到2D区域遮掩的效果

 new AMap.Polygon({bubble:true,fillOpacity:0.6,strokeWeight:2,strokeColor: '#00eeff',fillColor: '#71B3ff',path:pathArray,map:map})

下载地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410473.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 淘宝商品微信返利助手开发-(八)微信号对接

系列教程一目录:返利助手原理 系列教程二目录:返利助手开放文档以及帐号申请地址 系列教程三目录:返利助手开发(1)API介绍 系列教程四目录:返利助手开发(2)淘宝分享的内容如何只取…

C# 制作不规则窗体的两种解决方案

我的广告单元,有空点一下哦,谢谢! 冒着被拍砖的危险,投放到首页。C#制作不规则窗体应该又是一个老生常谈的问题了,可能很多老鸟会带BS的眼神,那么请老鸟们视该文章如浮云吧。 制作不规则窗体,本…

新概念英语第二册课文电子版_新概念英语第二册课文学生(Victoria)朗读

点击上"蓝字"关注我们专栏介绍【悦读时刻】是我们为中小学生在英语、语文朗读中的佼佼者开辟的专栏。我们会在优秀朗诵内容中进行优选之后上传发布。外研社新概念英语 II编者:何其莘 &L.G. AlexanderLONGMAN2简 介《新概念英语》(New Concept Engl…

C# 淘宝商品微信返利助手开发-(九)编写一个vue页面用于复制淘口令

系列教程一目录:返利助手原理 系列教程二目录:返利助手开放文档以及帐号申请地址 系列教程三目录:返利助手开发(1)API介绍 系列教程四目录:返利助手开发(2)淘宝分享的内容如何只取…

python color属性_使用Python制作一个带GUI界面的词云自动生成工具(连载七)

前几篇向大家介绍了词云自动生成工具(GUI)的详解GUI词云自动生成工具中词云属性设置界面的实现(连载六)。通过前面内容我们基本构建出了词云自动生成工具的主要框架。本篇结合tkinter中的filedialog和colorchooser的使用&#xff…

python爬取微博评论_用 python 爬取微博评论并手动分词制作词云

最近上海好像有举行个什么维吾尔族的秘密时装秀,很好看的样子,不过我还没时间看。但是微博上已经吵翻了天,原因是好吧,这不是我们关心的,我的心里只有学习我爱学习 Python 爬虫 本次爬取的是这条微博这条微博 微博的移…

公众号出现该公众号提供的服务出现故障分析

近日公众号出现了 出现该公众号提供的服务出现故障的错误提示 百度了一下这种错误的可能性 在这里插入图片描述 1. 程序后台未回复微信success 2. 5秒内无响应 3. 授权给了多个第三方平台,其中一个不可用。 4. ToUserName和 FromUserName 参数不正确无法找到接收…

数据结构之栈对逆BoLand表达式的计算

一. 后缀表达式: 后缀表达式,逆波兰表达式,是指运算符位于操作符之后,计算机对该式是从做到右进行计算,计算过程如下例子 二.计算思路 对于后缀表达式的计算,需要一个栈即可, 即遇见数字压栈,遇见运算符从栈中取出两个数,根据运算进行操作, 需要注意的是,减法以及除法都是后出栈…

c++ fork 进程时 共享内存_c/c++ Linux 进程间通信------共享内存

1. 什么是共享内存共享内存(Shared Memory),指两个或多个进程共享一个给定的存储区。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进…

python爬取新闻网站内容_python爬虫案例:抓取网易新闻

此文属于入门级级别的爬虫,老司机们就不用看了。 本次主要是爬取网易新闻,包括新闻标题、作者、来源、发布时间、新闻正文。 首先我们打开163的网站,我们随意选择一个分类,这里我选的分类是国内新闻。然后鼠标右键点击查看源代码&…

如何查看QQ和微信查看授权过那些应用?

平时生活中,要登录一些网站或者app时,为了省事儿,都用第三方登录,登录是简单快捷了一些 时间长了,授权过的那些应用都不知道了,甚至一些应用你没用去授权权限也一直开放给别人网站的 所以为了自己帐号的安全还是有必…

C# ASP.NET MVC 图片上传的多种方式(存储至服务器文件夹,阿里云oss)

图片上传时我们进场用到的一个功能今天将他整理了一下写了个demo希望对大家有用 该demo分为如下 1.上传至至服务器文件夹 2.上传至阿里云oss 3.百度webupload上传图片 效果图如下: 首先讲解一下后台代码 (1)上传至服务器存储 using System; using System.Collections; u…

java变量命名规则_浅谈JAVA开发规范与开发细节(上)

开发团队在开发过程中,由于每个人的开发习惯,以及对于技术的理解深浅程度不一,往往一个项目在开发过程中,代码的质量,代码的风格都不尽相似,所以有一份适合团队的代码规范是非常有必要的,而一个…

Charles

安装 https://www.jianshu.com/p/cb744a4c0344 https://blog.csdn.net/qq_28831197/article/details/81196571 使用说明: 来源:https://www.jianshu.com/p/73b134559c76 过滤网络请求 通常情况下,我们需要对网络请求进行过滤,只监…

.NET Core Docker使用初入篇

本篇内容如何在CentOS上安装Docker服务器与工具准备安装Docker更新系统安装Docker源设置Docker开机启动启动Docker使用Docker运行一个.NET Core 例子.net core 例子拉取.net core 例子停止.net core 例子启用其他如何在CentOS上安装Docker 服务器与工具准备 首先我们需要一个…

如何延长作用域链_第4部分2:作用域(链)和 闭包

知识列表作用域/作用域链 闭包(涉及JS垃圾回收机制 )https://zhuanlan.zhihu.com/p/27110726 【 js 基础 】【读书笔记】作用域和闭包https://juejin.im/post/5afb0ae56fb9a07aa2138425 深入理解闭包之前置知识→作用域与词法作用域(一&#…

C# T4模板在项目中的使用

1.什么是t4模版 T4,即4个T开头的英文字母组合:Text Template Transformation Toolkit。 T4(Text Template Transformation Toolkit)是微软官方在VisualStudio 2008中开始使用的代码生成引擎。在 Visual Studio 中,“T4 文本模板”是由一些文…

Docker中安装Jenkins实时发布.net core 项目(一)

Docker中安装Jenkins实时发布.net core 项目安装docker懒人篇手动安装dockerfile安装jenkins常规安装jenkinsjenkins的安装搜索jenkins拉取jenkins容器jenkins的启动jenkins密码其他安装docker 使用curl安装最新版 curl -fsSL https://get.docker.com/ | sh重启Docker systemc…

Docker中安装Jenkins实时发布.net core 项目(二)

Docker中安装Jenkins实时发布.net core 项目防坑点升级dockerjenkins运行运行命令jenkins拉取git并构建项目其他查看发布文件防坑点 升级docker 首先我们要确认我们在liunx安装的不是1.31.1的docker容器不然在后面的运行中会报错 can not open /etc/sysconfig/docker如果你是…

Jenkins构建 netcore5.0 项目时出现NU3028/NU3037错误的解决方案

我在使用Jenkins自动化部署项目的时候,出现了如下的错误 error NU3028: Package System.IO.Compression 4.3.0 from source https://api.nuget.org/v3/index.json: The repository primary signatures timestamp found a chain building issue: UntrustedRoot: self…