百度地图API示例之小实践 添加代理商标注
地图坐标无非是经度纬度。
每个代理商都有他的经度纬度参数,就能够在地图上标注出来了。
效果如下:
功能包括
标记代理商
显示导航
显示距离
测量距离
点击选中等
其中测距用到的是自定义控件
地图根据城市名称进行定位,省市联动可以获取城市名称。
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示例之小实践 添加代理商标注相关推荐
- python实现轨迹回放供应_运动轨迹回放 百度地图api示例源码
[实例简介] [实例截图] [核心代码] Track html{height:100%} body{height:100%;margin:0px;padding:0px} #controller{wi ...
- 百度地图API:如何查询数自己的数据库标注地图并让标注显示在最佳视野内
由于在实际项目中经常需要查询自己的数据库去标注地图,所以特地写了这个例子,数据库为oracle,把数据库查询出来的数据绑定到前台gridview控件,点击数据中的任何一行,实现标注.效果图: 地图标注 ...
- 使用百度地图API制作线路轨迹播放
1.使用百度地图API制作轨迹播放: 可应用于车辆跟踪.行驶线路回放.跑步行程的记录等地图应用场景, 1.1绘制静态轨迹图 获取多个轨迹点point(必须包含经度.纬度) 使用polyline对象依次 ...
- 地图上制作线路的动画_使用百度地图API制作线路轨迹播放
1.使用百度地图API制作轨迹播放: 可应用于车辆跟踪.行驶线路回放.跑步行程的记录等地图应用场景, 1.1绘制静态轨迹图 获取多个轨迹点point(必须包含经度.纬度) 使用polyline对象依次 ...
- 引用百度地图API完成热力图
近期肺炎疫情信息闹的火热,就该情况完成来沪人员分布热力图以及标注确诊患者足迹.就开发研究中遇到的问题以及解决方案做一下记录,如下所示: 一.效果示意图 简述完成效果:百度地图引入,增加热力图,添加比例 ...
- 数据视化Echarts+百度地图API实现市县区级下钻
开始 这两天公司有个页面需要做数据可视化的展示,数据视化采用的是Echarts+百度地图API做展示,需要用到县级区级下钻的一个联动效果发现网上关于Echarts做到县区级下钻的资料很少,有的话也不是 ...
- JAVA 百度地图 API
唉..已经无力吐槽废话..直接进入正题吧..第一次写..如有不足之处请谅解..哦对了..我们这个是 web 端 获取 API 的官方文档 :http://lbsyun.baidu.com/index. ...
- 【百度地图api】前端 百度地图添加地理围栏
需求:添加教练场区域,在百度地图上选择多边形电子围栏,保存坐标: 主要参考百度地图api: 遇到的小坑:注意绘制百度地图多边形时,传入的坐标数组的结构!!! 相对来说比较简单,百度api已经很详细了. ...
- 百度地图API公交检索示例 - 标绘结果路线、返回结果集
百度地图API具有公交检索功能:使用它的在线SDK示例来修改代码,快速演示一下: <html> <head><meta http-equiv="Content- ...
最新文章
- 如何判断数据库的某个字段不为空方法
- 如何做好项目规划,完成一个保质保量的软件工程!
- 编程语言圣经(卷一)
- 总结2020,起航2021,奔向腾讯,实现增长!
- MongoDB数据库使用总结
- 10个类手写实现 RPC 通信框架原理
- 我用Vue2全家桶重写「daza.io」的前端
- 我的NAS安装之旅(1)——硬件和软件选型篇
- 易语言linux静态编译失败,易语言静态编译连接失败
- 手机QQ空间如何显示和修改手机机型型号
- 迅雷总提示版权什么的。。
- 事业单位工资计算机公积金计算,求问事业单位住房公积金如何计算
- 2020博客之星年度总评选,我来啦
- UVA10115- Automatic Editing
- error C2533: “CTester::{ctor}”: 构造函数不能有返回类型
- 苹果换卡后显示无服务器,苹果手机插上sim卡无服务怎么办
- 2020-08-25
- 产品经理知识体系:6.如何做好产品运营?
- 运用Logistic模型实现客户流失预警分析
- 天冷导致电脑无法开机,如何解决?
热门文章
- php实现简单的框架,PHP 实现简单的 MVC 框架
- python新手图解_Python完全新手教程
- ajax查询功能查询源码,ajax实现分页查询功能
- 台州银行笔试考什么_台州银行笔试题型招聘考试真题考什么
- c ++ 打印二进制_C / C ++中的二进制搜索树
- rest教程_REST保证教程
- mariadb重置自动id_如何更改/重置MySQL或MariaDB根密码
- Android RxJava和改造
- 狗熊冬眠_4本最佳的冬眠书–Spring冬眠书
- 摄影获得最佳图像的十大要诀_十大最佳应用程序性能管理工具