网上找了好多方法还没有找到合适的,因为百度地图marker上所展现的数字其实是用背景图来实现,所以想了个比较笨的办法,在结合marker和自定义覆盖物的情况下可以实现这样的效果。

实现思路:首先生成marker,然后设置marker的背景图为红色或者绿色( 设置BMap.Icon),然后再添加自定义覆盖物也就是我们所需要的数字

然后再是把自定义覆盖物直接做成span标签,然后添加。

代码如下

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<meta name="viewport" content="width=device-width, initial-scale=1">

<title>map</title>

<script type="text/javascript" src="js/jquery/jquery.1.9.1.js"></script>

<link rel="stylesheet" type="text/css" href="css/style.min.css">

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=替换成自己的秘钥"></script>

</head>

<body>

  <div id="container" style="width:100%;height:780px"></div>

</body>

<script>

var map = new BMap.Map("container", { enableMapClick: true});

map.centerAndZoom(new BMap.Point(120.213634,30.24583), 15   );  // 初始化地图,设置中心点坐标和地图级别

map.setCurrentCity("杭州");          // 设置地图显示的城市 此项是必须设置的

map.enableScrollWheelZoom(true);

// ************************************自定义覆盖物**************************************************************

// 覆盖物构造方法

function ComplexCustomOverlay(point,index){

this._point = point;

this._index=index;

}

ComplexCustomOverlay.prototype = new BMap.Overlay();

ComplexCustomOverlay.prototype.initialize = function(map){

this._map = map;

var span=this._span=document.createElement("span");

  //设置样式

$(span).css({

'position':'absolute',

'zIndex':BMap.Overlay.getZIndex(this._point.lat),

'display':'block',

'width':'26px',

'color':'#FFF',

'text-align':'center',

'point-events':'none'});

  //设置数字也就是我们的标注

this._span.innerHTML=this._index;

map.getPanes().labelPane.appendChild(span);

return span;

}

ComplexCustomOverlay.prototype.draw = function(){

var map = this._map;

var pixel = map.pointToOverlayPixel(this._point);

  //设置自定义覆盖物span 与marker的位置

this._span.style.left = pixel.x - 12+'px';

this._span.style.top  = pixel.y -14+'px';

}

// *******************************添加点******************************

// 添加点

function addMarker(point,type){

// 设置不同点的背景图(红色和绿色两个图片)

if(type=='red'){

var myIcon=new BMap.Icon('img/position01.png',new BMap.Size(23,35));

}else{

var myIcon=new BMap.Icon('img/position02.png',new BMap.Size(23,35));

}

var marker = new BMap.Marker(point);

marker.setIcon(myIcon);

map.addOverlay(marker);

}

// 随机向地图添加25个标注

var bounds = map.getBounds();

var sw = bounds.getSouthWest();

var ne = bounds.getNorthEast();

var lngSpan = Math.abs(sw.lng - ne.lng);

var latSpan = Math.abs(ne.lat - sw.lat);

for (var i = 0; i < 25; i ++) {

var point = new BMap.Point(sw.lng + lngSpan * (Math.random() * 0.7), ne.lat - latSpan * (Math.random() * 0.7));

// 设置不同点的类型(红或者绿)

if(i%2==0){

addMarker(point,'red');

}else{

addMarker(point,'green');

}

var myCompOverlay = new ComplexCustomOverlay(point,i);

map.addOverlay(myCompOverlay);

}

</script>

</html>

效果图如下

虽然是比较直接的办法,但是最终效果还是实现了

转载于:https://www.cnblogs.com/nouveau/p/7490257.html

百度地图marker标注上如何加上数字相关推荐

  1. android百度地图覆盖物异步加载图片,Android 百度地图marker中图片不显示的解决方法(推荐)...

    目的: 根据提供的多个经纬度,显示所在地的marker样式,如下: 问题: 1.发现marker中在线加载的图片无法显示出来: 2.获取多个对象后,却只显示出了一个marker: 以下为官网实现方法: ...

  2. 基于JDBC从数据库中读取数据,在百度地图批量标注地点

    基于JDBC从数据库中读取数据,在百度地图批量标注地点 一.相关技术 JSP,JDBC,JSON,JS,百度地图API 二.基于JDBC从数据库读取数据 见"JSP基于JDBC操作MSSQL ...

  3. 百度地图自定义标注样式

    实现效果图 标注样式的自定义 // 百度地图marker样式 let icon1 = new BMap.Icon(require('../src/assets/nationMap/marker1.pn ...

  4. 百度地图多标注显示以及自定义图标

    ** 百度地图多标注显示以及自定义图标 ** 效果图: HTML部分 <style>*{margin:0px;padding:0px} html{font-size: 100%;} bod ...

  5. 百度地图自定义标注点

    百度地图自定义标注点 //创建点 var point = new BMap.Point(109.49926175379778, 36.60449676862417); //创建自定义标 //参数1:自 ...

  6. 百度地图,标注不在中心位置问题

    百度地图,标注不在中心位置问题 今天用百度地图,做一个效果根据后台传输过来的位置坐标,显示并标注.不知道为什么百度地图老是偏离标注位置一个屏幕. 这是点击查看位置时的效果 如图: 这个和我想的跑偏了十 ...

  7. 百度地图 php,php+js实现百度地图多点标注的方法

    本文实例讲述了php+js实现百度地图多点标注的方法.分享给大家供大家参考,具体如下: 1.php创建json数据 $products = $this->product_db->selec ...

  8. 移动端百度地图多点标注php,PHP学习:php+js实现百度地图多点标注的方法

    <PHP学习:php+js实现百度地图多点标注的方法>要点: 本文介绍了PHP学习:php+js实现百度地图多点标注的方法,希望对您有用.如果有疑问,可以联系我们. PHP教程 PHP教程 ...

  9. 地图标注源码 php,jQuery百度地图自定义标注信息代码

    jQuery百度地图自定义标注信息代码是一款简单实用的百度地图api标注联系地址名称电话等信息代码. new BaiduMap({ id: "container2", title: ...

最新文章

  1. 数据通信技术(四:链路聚合)
  2. android 发送前台广播,使用IntentService与BroadcastReceiver实现后台服务(Android7.0可用)...
  3. 【预告】新房装修网络规划网络布局学习笔记,家庭网络需求文章内容及结构...
  4. 5、Java Swing JButton:按钮组件
  5. OpenGL CPU射线行进
  6. Ubuntu 16.04安装Tomcat 8 图解
  7. ML.NET 1.4 发布,跨平台机器学习框架
  8. 户外lisp导向牌如何安装_深圳医院导向标识牌制作按功能可分为哪些?
  9. 在php里面找出有用的代码,如何在多个源代码文件中 找到某段代码?
  10. drop out, learning rate in nn
  11. 文本文件与二进制的区别
  12. Linux(centos7下载安装)
  13. SpringCloud版本Hoxton SR5 --- 第五讲:zuul 路由、过滤、容错与回退、集群、高可用
  14. Python中 or 和 and 用法
  15. mysql工作原理学习
  16. vue-i18n及ElementUI国际化配置步骤
  17. PHP jqGrid 表格数据更新帮助代码
  18. 论文:A Deep Hashing Technique for Remote Sensing Image-Sound Retrieval
  19. 1688以图搜货接口,1688图片搜索接口,拍立淘接口,以图搜商品接口,图片上传搜索商品接口,按图搜索接口代码对接参数说明
  20. 考上好大学,然后进入IT行业是穷人孩子晋级中产的唯一出路?

热门文章

  1. 数据结构_Java_基于 线性表-单链表的初始化、逆序、去重、非递减序列的合并(开辟新链表先整体插入一个链表全部元素,再遍历另外一个链表寻找合适位置插入 、开辟新链表实现舍弃原链表)等操作实现
  2. PHPStorm设置Ctrl+滚轮调整字体大小
  3. 利用screen命令将程序挂在linux后台
  4. Binary_Search(二叉树搜索---------二分)
  5. 计算机二级怎么样分屏方便,全国计算机等级考试二级教程
  6. 电话簿程序设计c语言,电话簿管理程序设计.doc
  7. 解决m3u8视频合并问题
  8. 使用Python制作专属微信小客服
  9. typescript学习记录-练习项目-贪食蛇
  10. 《寂静之声》口琴版,惊艳,有链接