最近做百度地图的图形化定制。略有心得,在此和大家分享一下,少走弯路。先看目录,大致介绍一下都写了些啥。我会从最基本的来,一点点往下写,同志们可以看目录自己去找需要的部分。ps:注意,我用的是百度地图 2.0 版本,例子也都是。
这个完整代码,我会上传到 github 上,觉得有用记得给个 star 哈,下载
二、目录
1、百度地图基本使用,以及主题的配置
2、点标注,自定义点标注的样式,动画、文字标签等
3、信息窗口,完全自定义点标注信息窗口,定制样式功能
4、图形标注。定制图形标注,也就是图形覆盖物
5、聚合。聚合的定制,多种聚合同时出现的配置
三、百度地图基本使用,以及主题的配置
这里,为了方便,全部用 html + js 来实现,首先是基本用法,引入百度地图的源文件,注意,这里我用的 2.0 的版本,秘钥大家需要自己去申请。没秘钥肯定用不了的,申请流程很简单,请自行百度。关于 css、js 文件的引入,用到的我全部引入了,后面分开说各式做什么的。
做好准备工作,就开始新建一个dom,初始化 地图实例。然后 清除覆盖物 设置显示的中心点、设置 最大最小层级,设置默认显示层级。具体的直接看代码,都有注释。
到此,就已经可以看到地图了。然后我们换一些地图的 主题 。主题有2种,一种默认的,一种是我们自定义的。自定义的方法: 到这个链接去配置,配置完了复制配置信息,在我们的地图中使用。具体复制哪一块,代码里面怎么用这个配置,请看代码,都有注释。但是怎么用这个百度的工具,自己捣鼓去吧,都是图形化的东西,也不难。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>百度地图用法示例</title>
<link rel="stylesheet" media="all" href="http://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.css">
<style>
#myMap {
width: 700px;
height: 400px;
margin: 100px auto;
}
#myMap .grayInfo{
background-color: white;
width: 220px;
border-radius: 5px 5px;
}
#myMap .grayInfo .title {
padding: 0 10px;
height: 35px;
line-height: 35px;
background-color: #444444;
border-radius: 5px 5px 0px 0px;
color: white;
}
#myMap .grayInfo .content {
padding: 10px;
min-height: 50px;
}
</style>
</head>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=********"></script>
<script type="text/javascript" src="http://api.map.baidu.com/library/TextIconOverlay/1.2/src/TextIconOverlay_min.js"></script>
<script type="text/javascript" src="http://api.map.baidu.com/library/MarkerClusterer/1.2/src/MarkerClusterer_min.js"></script>
<script type="text/javascript" src="http://api.map.baidu.com/library/CurveLine/1.5/src/CurveLine.min.js"></script>
<script type="text/javascript" src="http://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.js"></script>
<script type="text/javascript" src="./js/InfoBox_main.js"></script>
<script type="text/javascript" src="./js/constants.js"></script>
<body>
<div id="myMap"></div>
</body>
<script type="text/javascript">
//1、 基本配置
const BMap = window.BMap
//实例化,并设置最大最小缩放层级
const map = new BMap.Map("myMap", {
minZoom: 3,
maxZoom: 20,
});
//清楚覆盖物
map.clearOverlays();
//设置中心点、默认缩放层级
map.centerAndZoom(new BMap.Point(120.08469, 30.301904), 13);
//可以鼠标缩放
map.enableScrollWheelZoom(true);
//2、 设置 默认主题 和 自定义主题
// 默认主题 normal blueSky light dark googlelite grassgreen midnight pink bluish grayscale
// 还有几个默认主题,但是发现并不好使
map.setMapStyle({
style: 'bluish'
});
// 自定义主题, 自定义,完事导出json配置
map.setMapStyle({
styleJson: THEME_CUS
});
</script>
</html>