使用说明
目前百度地图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, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
</style>
<script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>

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


被折叠的 条评论
为什么被折叠?



