地图坐标无非是经度纬度。

每个代理商都有他的经度纬度参数,就能够在地图上标注出来了。

效果如下:

功能包括

标记代理商

显示导航

显示距离

测量距离

点击选中等

其中测距用到的是自定义控件

地图根据城市名称进行定位,省市联动可以获取城市名称。

1.引入文件

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=sSelQoVi2L3KofLo1HOobonW"></script>
<script type="text/javascript" src="http://api.map.baidu.com/library/DistanceTool/1.2/src/DistanceTool_min.js"></script>

2.创建地图,根据城市名称

var map = new BMap.Map("maparea");
if (district !== null) {var cityName = city + district;map.centerAndZoom(cityName, 11);
} else {var cityName = province + city;map.centerAndZoom(cityName, 11);
}

3.添加导航

function addControl(map) {var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT}); // 左上角,添加比例尺var top_left_navigation = new BMap.NavigationControl({// 靠左上角位置
        anchor: BMAP_ANCHOR_TOP_LEFT,// LARGE类型
        type: BMAP_NAVIGATION_CONTROL_LARGE});map.addControl(top_left_navigation);map.addControl(top_left_control);
}

4.逐个添加代理商标记

$.each(json.data,
function(index, con) {opt_str += "<option value=" + con.id + " map_lng=" + con.map_lng + " map_lat=" + con.map_lat + ">" + con.name + " 电话:" + con.tel + "</option>";var point = new BMap.Point(con.map_lng, con.map_lat);var name = con.name;var tel = con.tel;addMarker(map, point, name, tel);
})

function addMarker(map, point, name, tel) {var marker = new BMap.Marker(point);map.addOverlay(marker);var label = new BMap.Label("姓名:" + name + " 电话:" + tel, {offset: new BMap.Size(20, -10)});marker.setLabel(label);marker.setAnimation(BMAP_ANIMATION_BOUNCE);marker.addEventListener("click", attribute);//marker.addEventListener("mouseover",attribute); // 可以添加多种事件类型
}

5.为标记添加点击事件

function attribute(e) {var p = e.target;var map_lng = p.getPosition().lng;var map_lat = p.getPosition().lat;//alert(map_lng+','+map_lat);$('#agent_id option[map_lng="' + map_lng + '"][map_lat="' + map_lat + '"]').attr('selected', 'selected');
}

6.添加自定义控件--测距

// 定义一个控件类,即function
function ZoomControl() { // 这是js类// 默认停靠位置和偏移量this.defaultAnchor = BMAP_ANCHOR_TOP_RIGHT;this.defaultOffset = new BMap.Size(10, 10);
}// 通过JavaScript的prototype属性继承于BMap.Control
ZoomControl.prototype = new BMap.Control();// 自定义控件必须实现自己的initialize方法,并且将控件的DOM元素返回
// 在本方法中创建个div元素作为控件的容器,并将其添加到地图容器中
ZoomControl.prototype.initialize = function(map) {// 创建一个DOM元素var div = document.createElement("div");// 添加文字说明div.appendChild(document.createTextNode("测距"));// 设置样式div.style.cursor = "pointer";div.style.border = "1px solid gray";div.style.backgroundColor = "white";// 绑定事件,点击一次放大两级div.onclick = function(e) {var myDis = new BMapLib.DistanceTool(map);myDis.open(); // 开启鼠标测距
    }// 添加DOM元素到地图中
    map.getContainer().appendChild(div);// 将DOM元素返回return div;
}function measureDistance(map) {// 创建控件var myZoomCtrl = new ZoomControl();// 添加到地图当中
    map.addControl(myZoomCtrl);
}

转载于:https://www.cnblogs.com/jiqing9006/p/5007141.html

百度地图API示例之小实践 添加代理商标注相关推荐

  1. python实现轨迹回放供应_运动轨迹回放 百度地图api示例源码

    [实例简介] [实例截图] [核心代码] Track html{height:100%} body{height:100%;margin:0px;padding:0px} #controller{wi ...

  2. 百度地图API:如何查询数自己的数据库标注地图并让标注显示在最佳视野内

    由于在实际项目中经常需要查询自己的数据库去标注地图,所以特地写了这个例子,数据库为oracle,把数据库查询出来的数据绑定到前台gridview控件,点击数据中的任何一行,实现标注.效果图: 地图标注 ...

  3. 使用百度地图API制作线路轨迹播放

    1.使用百度地图API制作轨迹播放: 可应用于车辆跟踪.行驶线路回放.跑步行程的记录等地图应用场景, 1.1绘制静态轨迹图 获取多个轨迹点point(必须包含经度.纬度) 使用polyline对象依次 ...

  4. 地图上制作线路的动画_使用百度地图API制作线路轨迹播放

    1.使用百度地图API制作轨迹播放: 可应用于车辆跟踪.行驶线路回放.跑步行程的记录等地图应用场景, 1.1绘制静态轨迹图 获取多个轨迹点point(必须包含经度.纬度) 使用polyline对象依次 ...

  5. 引用百度地图API完成热力图

    近期肺炎疫情信息闹的火热,就该情况完成来沪人员分布热力图以及标注确诊患者足迹.就开发研究中遇到的问题以及解决方案做一下记录,如下所示: 一.效果示意图 简述完成效果:百度地图引入,增加热力图,添加比例 ...

  6. 数据视化Echarts+百度地图API实现市县区级下钻

    开始 这两天公司有个页面需要做数据可视化的展示,数据视化采用的是Echarts+百度地图API做展示,需要用到县级区级下钻的一个联动效果发现网上关于Echarts做到县区级下钻的资料很少,有的话也不是 ...

  7. JAVA 百度地图 API

    唉..已经无力吐槽废话..直接进入正题吧..第一次写..如有不足之处请谅解..哦对了..我们这个是 web 端 获取 API 的官方文档 :http://lbsyun.baidu.com/index. ...

  8. 【百度地图api】前端 百度地图添加地理围栏

    需求:添加教练场区域,在百度地图上选择多边形电子围栏,保存坐标: 主要参考百度地图api: 遇到的小坑:注意绘制百度地图多边形时,传入的坐标数组的结构!!! 相对来说比较简单,百度api已经很详细了. ...

  9. 百度地图API公交检索示例 - 标绘结果路线、返回结果集

    百度地图API具有公交检索功能:使用它的在线SDK示例来修改代码,快速演示一下: <html> <head><meta http-equiv="Content- ...

最新文章

  1. 如何判断数据库的某个字段不为空方法
  2. 如何做好项目规划,完成一个保质保量的软件工程!
  3. 编程语言圣经(卷一)
  4. 总结2020,起航2021,奔向腾讯,实现增长!
  5. MongoDB数据库使用总结
  6. 10个类手写实现 RPC 通信框架原理
  7. 我用Vue2全家桶重写「daza.io」的前端
  8. 我的NAS安装之旅(1)——硬件和软件选型篇
  9. 易语言linux静态编译失败,易语言静态编译连接失败
  10. 手机QQ空间如何显示和修改手机机型型号
  11. 迅雷总提示版权什么的。。
  12. 事业单位工资计算机公积金计算,求问事业单位住房公积金如何计算
  13. 2020博客之星年度总评选,我来啦
  14. UVA10115- Automatic Editing
  15. error C2533: “CTester::{ctor}”: 构造函数不能有返回类型
  16. 苹果换卡后显示无服务器,苹果手机插上sim卡无服务怎么办
  17. 2020-08-25
  18. 产品经理知识体系:6.如何做好产品运营?
  19. 运用Logistic模型实现客户流失预警分析
  20. 天冷导致电脑无法开机,如何解决?

热门文章

  1. php实现简单的框架,PHP 实现简单的 MVC 框架
  2. python新手图解_Python完全新手教程
  3. ajax查询功能查询源码,ajax实现分页查询功能
  4. 台州银行笔试考什么_台州银行笔试题型招聘考试真题考什么
  5. c ++ 打印二进制_C / C ++中的二进制搜索树
  6. rest教程_REST保证教程
  7. mariadb重置自动id_如何更改/重置MySQL或MariaDB根密码
  8. Android RxJava和改造
  9. 狗熊冬眠_4本最佳的冬眠书–Spring冬眠书
  10. 摄影获得最佳图像的十大要诀_十大最佳应用程序性能管理工具