基于百度地图JSAPI,地图覆盖物反向镂空

本文介绍如何在百度地图JSAPI中实现地图覆盖物的反向镂空功能,解决原有方法可能出现的地图遮盖问题。通过获取地图边界多边形并过滤小的多边形,以确保地图上的特定区域突出显示。提供了优化后的代码示例和效果截图。
摘要由CSDN通过智能技术生成

基于百度地图JSAPI地图覆盖物突出显示

使用说明

目前百度地图JSAPI各个版本都没有提供镂空或者说是突出只显示某个省份的功能,根据其他网友与开发者的经验并进行了优化!
该方法的主要逻辑是通过JSAPI提供的边界查找功能获取对应的多边形边界,然后添加一个以该多边形和地图边界坐标围成的多边形!

问题

原有方法只是取了返回的边界中的某一个来进行覆盖物添加,在使用的过程中会出现添加失败,整个地图都被添加的覆盖物遮盖了!其实不然,实际上是添加成功了的,只不过是返回的多边形边界可能是多个多边形组成的:有飞地等!在添加的时候如果不过滤这些小的多边形或者以某个小的多边形为边界添加遮盖物的话就会出现好像添加失败了的情况。

解决办法

1、假设边界点比较多的多边形就是最大的那个
2、选取该多边形为边界添加覆盖物
3、设置中心点坐标(避免添加以后不在视野之内,无法找到)

贴代码

废话不多说,直接贴原生代码,方便复制使用:

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
	<style type="text/css">
		body,
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值