高德地图-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,一经查实,立即删除!

相关文章

数据结构之数组模拟栈

栈的特点即先进后出,采用数组模拟栈,实现栈的这一特性主要是靠定义一个指针(索引). 指针的初始位置指向的是-1 以下给出代码: package com.ebiz.stack;/*** author YHj* create 2019-07-20 14:20* 数组模拟栈*/public class ArrayStack {private int maxSize;private int [] …

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

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

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

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

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

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

HubbleDotNet使用备忘

Word格式下载转载于:https://www.cnblogs.com/wdfrog/archive/2011/07/30/2121817.html

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

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

数据结构之中缀表达式实现计算器

栈还是用的上一篇的数组模拟栈,并在此之上增加了 判断是否是一个运算符的方法 获取运算符的优先级方法 计算结果方法 查看栈顶元素的方法 四个方法,具体代码如下: package com.ebiz.stack;/*** author YHj* create 2019-07-20 14:20* 数组模拟栈*/public class ArrayStack {pri…

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

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

com 名字对象(3)使用IMoniker

一.名字对象比较 Hash和IsEqual方法 IMoniker* moniker2NULL; CreateFileMoniker(OLESTR("F:\\test.xlsx"),&moniker2); DWORD dw; moniker2->Hash(&dw); IMoniker* moniker3NULL; CreateFileMoniker(OLESTR("F:\\test2.xlsx"),&moniker3);…

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

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

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

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

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

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

[html] html中在span标签里面可以放那些标签?

[html] html中在span标签里面可以放那些标签? 都可以,但原则上不要。个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

得到WebService应用程序的路径

[WebMethod] public string ShowWebServicePhysicalPath() { string strpathSystem.Web.HttpContext.Current.Request.PhysicalPath; return strpath.Substring(0,strpath.LastIndexOf("\")); }转载于:https://www.cnblogs.com/lanbaoming/archive/2…

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

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

云服务器个人入门主机对比和分析

最近阿里云的云服务器快到期了,看看了市场上的各大云主机,然后进行了整理和对比希望对初次买云主机的用户有帮助 阿里云 学生主机腾讯云 学生主机百度云 学生主机华为云金山云滴滴云 DC2云服务器品牌类型CPU内存带宽硬盘价格所需用户阿…

[html] const nums1 = [1, 2, 2, 1], nums2 = [2] 交集是什么?

[html] const nums1 [1, 2, 2, 1], nums2 [2] 交集是什么? let a [1, 2, 2, 1]; let b [2]; let aSet new Set(a); let bSet new Set(b);let intersection Array.from(new Set(a.filter(v > bSet.has(v)))) console.log(intersection); // [2]个人简介 …

数据结构之栈实现中缀转后缀并计算结果

一.中缀变后缀过程分析 给定一个中缀,最后变为后缀的过程其实并不算复杂,下面分析一下过程: 1. 首先面对一个中缀表达式,我们需要两个栈,一个用来存放运算符,即符号栈 operatorstack,一个用来存放数字,运算符,即数字栈 numStack 2. 开始扫描中缀表达式 3.遇到操作数时,我们直接…

TreeView 小技巧

1、在把treeview的check事件给封了之后,在双击的情况下仍然会选中。这个要通过处理消息来解决。 解决: 在调用的时候将这个事件给过滤掉 if (e.Node.ForeColor Color.Gray) e.Cancel true; 自定义treeview中加入以下方法 protected ove…

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

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