下面代码是项目内的,需要可以自行截取
创建地图
<!--百度地图显示区域--> <div id="print"></div> <script type="text/javascript"> // 卡片设置 var opts = { width: 380, height: 180, opacity: 0.5, offset: new BMap.Size(0, -30), title: '<p style="font-size: 20px;color: #2ca90e;margin:0;margin-bottom: 20px;">这里是内容</p>', enableMessage: false, } map = new BMap.Map("print"); var infoWindow = new BMap.InfoWindow("", opts); map.openInfoWindow(infoWindow, new BMap.Point("0", "0")); //默认获取全国 </script>
map.enableScrollWheelZoom(); //启用滚轮放大缩小,默认禁用 map.enableContinuousZoom(); //启用地图惯性拖拽,默认禁用
这是一个遍历循环的公共方法,lat,lon是坐标.循环显示标注点,具体样式看方法内
state 是状态
data,是显示数据
I是循环的数
function addMarker(lat, lon, state, data, i) { // 根据设备状态显示不同的图标 var animation = false; // 动画状态 var icon = ''; if (state == 00) { //待机 icon = 'images/img/marker_daiji.png'; //待机图标 console.log("待机") } else if (state == 01) { //工作 icon = 'images/img/marker_kaiji.png'; //工作中图标
animation = true; // 此处是我用来判断状态,如果是工作状态 坐标图标回跳动
// 实例坐标点 var point = new BMap.Point(lat, lon);
// 设置图标 var myIcon = new BMap.Icon(icon, new BMap.Size(50, 65), { imageSize: new BMap.Size(35, 48), // 设置图标大小 });
//设置坐标上显示的内容 data.con[i].remarks 是循环到当前I当前的内容remarks var label = new BMap.Label(data.con[i].remarks, { offset : new BMap.Size(9, 28), //内容偏移量+ });
// 设置 标注点的内容的样式 label.setStyle({ background:'none',border:'none',color : "#fff", fontSize : "5px"//只要对label样式进行设置就可达到在标注图标上显示数字的效果 });
// 创建标注 var marker = new BMap.Marker(point, {icon: myIcon}); marker.setLabel(label);//显示标注点的内容
// 因为标注点是根据坐标来显示,如果叠加 会出现遮住,比如第三个标注点坐标比较小就回显示在后面,这个是强制按显示顺序显示 每个新坐标都在最前面 marker.setTop('true'); // 将标注添加到地图中 map.addOverlay(marker);
//跳动的动画 if (animation) { marker.setAnimation(BMAP_ANIMATION_BOUNCE); }
// 信息窗口 var opts = { width: 300, // 信息窗口宽度 height: 80, // 信息窗口高度 title: data.con[i].name, // 信息窗口标题 }
var infoWindow = new BMap.InfoWindow("地址:" + data.con[i].address, opts); // 创建信息窗口对象 marker.addEventListener("click", function () { map.openInfoWindow(infoWindow, point); //开启信息窗口 }); }
地图样式
// 按键事件 1 显示全国地图 2 3 4 5 6 7 //不同样式 自行体会 $(document).keypress(function (event) { // alert(event.keyCode) console.log(event.keyCode) if (event.keyCode == 49) { window.location.href = "/wfg/addons/clinic_map/index.php?type="; } if (event.keyCode == 50) { // 切换主题 白色 map.setMapStyle({style: 'normal'}); MapStyle = 'normal'; } if (event.keyCode == 51) { // 黑色 map.setMapStyle({style: 'dark'}); MapStyle = 'dark'; } if (event.keyCode == 52) { // 黑色 map.setMapStyle({style: 'grayscale'}); MapStyle = 'grayscale'; } if (event.keyCode == 53) { // 黑色 map.setMapStyle({style: 'midnight'}); MapStyle = 'midnight'; } if (event.keyCode == 54) { // 黑色 map.setMapStyle({style: 'redalert'}); MapStyle = 'redalert'; } if (event.keyCode == 55) { // 黑色 map.setMapStyle({style: 'bluish'}); MapStyle = 'bluish'; } });
百度地图可以实现自定义窗口样式,教程稀缺,自己做了一个但是最后没采取删了 哈哈,
http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html#a3b9
这是百度地图API类文件,那个自定义样式这个里面是没有的,以后想起来在补充吧!