百度地图API 添加标签
1.手动创建数据,实际项目则是接受GPS信息
/建立坐标点:
// lng:经度 lat:纬度
var points = [
{"lng":112.58,"lat":26.89,"url":"http://www.baidu.com","id":1,"name":"p1"},
{"lng":112.59,"lat":26.90,"url":"http://www.mi.com","id":2,"name":"p2"},
{"lng":112.57,"lat":26.88,"url":"http://www.csdn.com","id":3,"name":"p3"}
];
2.创建添加标注点到地图,并为标注点添加点击事件
//创建标注点并添加到地图中
function addMarker(points) {
//循环建立标注点
for(var i=0, pointsLen = points.length; i<pointsLen; i++) {
var point = new BMap.Point(points[i].lng, points[i].lat); //将标注点转化成地图上的点
var marker = new BMap.Marker(point); //将点转化成标注点
map.addOverlay(marker); //将标注点添加到地图上
//添加监听事件
(function() {
var thePoint = points[i];
marker.addEventListener("click",
//显示信息的方法
function() {
showInfo(this,thePoint);
});
})();
}
}
3.编写信息显示方法
function showInfo(thisMarker,point) {
//获取点的信息
var sContent =
'<ul style="margin:0 0 5px 0;padding:0.2em 0">'
+'<li style="line-height: 26px;font-size: 15px;">'
+'<span style="width: 50px;display: inline-block;">id:</span>' + point.id + '</li>'
+'<li style="line-height: 26px;font-size: 15px;">'
+'<span style="width: 50px;display: inline-block;">名称:</span>' + point.name + '</li>'
+'<li style="line-height: 26px;font-size: 15px;"><span style="width: 50px;display: inline-block;">查看:</span><a href="'+point.url+'">详情</a></li>'
+'</ul>';
var infoWindow = new BMap.InfoWindow(sContent); //创建信息窗口对象
thisMarker.openInfoWindow(infoWindow); //图片加载完后重绘infoWindow
}
4.创建地图
//创建地图
var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 设置中心点
map.centerAndZoom( "衡阳"); //指定中心城市
map.setCurrentCity("衡阳");
map.addControl(new BMap.MapTypeControl()); //设置可拖拽
map.enableScrollWheelZoom(true); //添加滚轮缩放
addMarker(points); //添加标注
</script>
Tip: 想使用百度地图api需要申请一个ak,申请方法就不介绍了,百度一大堆.
1.5 版本 完整代码(不包括api的ak 需要自己申请):
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
</style>
<script type="text/javascript"
//ak填自己申请的ak
src="http://api.map.baidu.com/api?v=2.0& ak=你申请的AK">
</script>
<title>百度地图api展示</title>
</head>
<body>
<div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
//新建三个地图上点
var points = [
{"lng":112.58,"lat":26.89,"url":"http://www.baidu.com","id":1,"name":"p1"},
{"lng":112.59,"lat":26.90,"url":"http://www.mi.com","id":2,"name":"p2"},
{"lng":112.57,"lat":26.88,"url":"http://www.csdn.com","id":3,"name":"p3"}
];
//创建标注点并添加到地图中
function addMarker(points) {
//循环建立标注点
for(var i=0, pointsLen = points.length; i<pointsLen; i++) {
var point = new BMap.Point(points[i].lng, points[i].lat); //将标注点转化成地图上的点
var marker = new BMap.Marker(point); //将点转化成标注点
map.addOverlay(marker); //将标注点添加到地图上
//添加监听事件
(function() {
var thePoint = points[i];
marker.addEventListener("click",
function() {
showInfo(this,thePoint);
});
})();
}
}
function showInfo(thisMarker,point) {
//获取点的信息
var sContent =
'<ul style="margin:0 0 5px 0;padding:0.2em 0">'
+'<li style="line-height: 26px;font-size: 15px;">'
+'<span style="width: 50px;display: inline-block;">id:</span>' + point.id + '</li>'
+'<li style="line-height: 26px;font-size: 15px;">'
+'<span style="width: 50px;display: inline-block;">名称:</span>' + point.name + '</li>'
+'<li style="line-height: 26px;font-size: 15px;"><span style="width: 50px;display: inline-block;">查看:</span><a href="'+point.url+'">详情</a></li>'
+'</ul>';
var infoWindow = new BMap.InfoWindow(sContent); //创建信息窗口对象
thisMarker.openInfoWindow(infoWindow); //图片加载完后重绘infoWindow
}
//创建地图
var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 设置中心点
map.centerAndZoom( "衡阳");
map.setCurrentCity("衡阳"); //设置为衡阳
map.addControl(new BMap.MapTypeControl());
map.enableScrollWheelZoom(true);
addMarker(points);
</script>
第二种写法
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>添加标注点-百度地图API</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.5&ak=YWdGplhYjUGQ3GtpKNeuTM2S"></script>
</head> <body>
<style type="text/css">
html{height:100%}
body{height:100%;margin:0 10px;}
#container{height:100%;margin: 20px;}
.info_ul{
margin:0 0 5px 0;
padding:0.2em 0;
}
.info_li{
line-height: 26px;font-size: 15px;
}
.info_span{
width: 50px;display: inline-block;
}
</style>
<div id="container"></div>
<script type="text/javascript">
var map = new BMap.Map("container"); //初始化地图 var points = [
{"lng":116,"lat":40,"url":"http://www.baidu.com","id":50,"name":"p1"},
{"lng":117,"lat":31,"url":"http://www.taobao.com","id":2,"name":"p2"},
{"lng":116,"lat":34,"url":"http://www.qq.com","id":3,"name":"p3"}
];//数据准备 map.centerAndZoom(new BMap.Point(103.388611,35.563611), 5);//设置中心点和显示级别。中国。 map.enableScrollWheelZoom();//滚轮放大缩小。 addMarker(points);//添加标注。 function addMarker(points){ // 创建图标对象
var point,marker;
// 创建标注对象并添加到地图
for(var i = 0,pointsLen = points.length;i <pointsLen;i++){
point = new BMap.Point(points[i].lng,points[i].lat);
marker = new BMap.Marker(point);
map.addOverlay(marker);
//给标注点添加点击事件。使用立即执行函数和闭包
(function() {
var thePoint = points[i];
marker.addEventListener("click",function(){
showInfo(this,thePoint);
});
})();
}
} //显示信息窗口,显示标注点的信息。
function showInfo(thisMaker,point){
var sContent =
'<ul class="info_ul">'
+'<li class="info_li">'
+'<span class="info_span">id:</span>' + point.id + '</li>'
+'<li class="info_li">'
+'<span class="info_span">名称:</span>' + point.name + '</li>'
+'<li class="info_li"><span class="info_span">查看:</span><a href="'+point.url+'" target="_blank">详情</a></li>'
+'</ul>';
var infoWindow = new BMap.InfoWindow(sContent);// 创建信息窗口对象
thisMaker.openInfoWindow(infoWindow);//图片加载完毕重绘infowindow
} </script>
</body>
</html>
1.2版本和1.5版本通用,但是不用申请ak
<!doctype html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>Baidu Map</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2&services=true">
</script>
</head>
<body>
<div id="container" style="width: 800px; height: 600px;">
</div>
</body>
</html>
<script type="text/javascript"> var map = new BMap.Map("container"); //初始化地图 var points = [
{ "lng": 121.653872, "lat": 38.928724, "url": "http://www.baidu.com", "id": 1, "name": "麦当劳" },
{ "lng": 121.653234, "lat": 38.928604, "url": "http://www.taobao.com", "id": 2, "name": "天天鱼巷" },
{ "lng": 121.64576, "lat": 38.929096, "url": "http://www.qq.com", "id": 3, "name": "好利来" },
{ "lng": 121.654402, "lat": 38.926787, "url": "http://www.qq.com", "id": 4, "name": "金铭烤肉" },
{ "lng": 121.647629, "lat": 38.927369, "url": "http://www.qq.com", "id": 5, "name": "嘉禾粥道" },
{ "lng": 121.646667, "lat": 38.925264, "url": "http://www.qq.com", "id": 6, "name": "彤德莱" },
{ "lng": 121.644799, "lat": 38.928085, "url": "http://www.qq.com", "id": 7, "name": "鼎香橼自助" },
{ "lng": 121.646209, "lat": 38.929818, "url": "http://www.qq.com", "id": 3, "name": "风情丽江斑鱼火锅" }
];//数据准备 map.centerAndZoom(new BMap.Point(121.650467, 38.927376), 16);//设置中心点和显示级别。中国。 map.enableScrollWheelZoom();//滚轮放大缩小。 addMarker(points);//添加标注。 function addMarker(points){ // 创建图标对象
var point,marker;
// 创建标注对象并添加到地图
for(var i = 0,pointsLen = points.length;i <pointsLen;i++){
point = new BMap.Point(points[i].lng,points[i].lat);
marker = new BMap.Marker(point);
map.addOverlay(marker);
//给标注点添加点击事件。使用立即执行函数和闭包
(function() {
var thePoint = points[i];
marker.addEventListener("click",function(){
showInfo(this,thePoint);
});
})();
}
} //显示信息窗口,显示标注点的信息。
function showInfo(thisMaker,point){
var sContent =
'<ul class="info_ul">'
+'<li class="info_li">'
+'<span class="info_span">id:</span>' + point.id + '</li>'
+'<li class="info_li">'
+'<span class="info_span">名称:</span>' + point.name + '</li>'
+'<li class="info_li"><span class="info_span">查看:</span><a href="'+point.url+'" target="_blank">详情</a></li>'
+'</ul>';
var infoWindow = new BMap.InfoWindow(sContent);// 创建信息窗口对象
thisMaker.openInfoWindow(infoWindow);//图片加载完毕重绘infowindow
} </script>
百度地图API 添加标签的更多相关文章
- 百度地图api添加自定义控件
官网栗子:http://lbsyun.baidu.com/jsdemo.htm#b0_6 <!DOCTYPE html><html><head> <meta ...
- 百度地图API多个点聚合时,标注添加的标签label地图刷新就丢失的问题解决
当将自定义的Marker(含有Label)通过MarkerClusterer 管理的时候,当地图发生任何移动.缩放 的时候,Marker 的Label 就会自动消失. 这个问题主要是由于百度的点聚合A ...
- 【百度地图API】——如何用label制作简易的房产标签
原文:[百度地图API]--如何用label制作简易的房产标签 摘要: 最近,API爱好者们纷纷说,自定义marker太复杂了!不仅定义复杂,连所有的dom事件都要自己重新定义.有没有快速简易创建房产 ...
- 【百度地图API】建立全国银行位置查询系统(三)——如何在地图上添加银行标注
原文:[百度地图API]建立全国银行位置查询系统(三)--如何在地图上添加银行标注 <摘要>你将在第三章中学会以下知识: 如何在地图上添加带银行logo的标注?(你也可以换成商场logo, ...
- 【百度地图API】建立全国银行位置查询系统(二)——怎样为地图添加控件
原文:[百度地图API]建立全国银行位置查询系统(二)--怎样为地图添加控件 <摘要>你将在第二章中学会以下知识: 使用手写代码的利器——notepad++: 如何为地图添加控件——鱼骨. ...
- 百度地图API,展示地图和添加控件
1.申请百度账号和AK 点我申请 2.准备页面 根据HTML标准,每一份HTML文档都应该声明正确的文档类型,我们建议您使用最新的符合HTML5规范的文档声明: <!DOCTYPE html&g ...
- 百度地图API 批量添加 带检索功能的信息窗口
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 百度地图API显示多个标注点并添加百度样式检索窗口
原作者博客地址:http://blog.csdn.net/a497785609/article/details/24009031 在此基础上进行了修改: 1.添加闭包,将i传入内部 2.添加地图和卫星 ...
- 百度地图API示例之添加/删除工具条、比例尺控件
代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" cont ...
随机推荐
- 利用CORS实现跨域请求--转
原文地址:http://newhtml.net/using-cors/ 跨域请求一直是网页编程中的一个难题,在过去,绝大多数人都倾向于使用JSONP来解决这一问题.不过现在,我们可以考虑一下W3C中一 ...
- Linux下大型容量件的切割与合并
Linux下大型容量件的切割与合并 当前目录下有sp4.exe文件容量129M我用64的U盘把spe.exe考到另一台机器上#split -b 60m sp4.exe-b, --bytes=SIZE ...
- OPENCV(1)
VS 程序的默认路径是源码所在路径(所以图片应该放在此处),而不是Debug路径 OpenCV 模块结构: core--定义了基本数据结构,包括最重要的Mat和一些其他的模块 imgproc--该 ...
- WebAssembly学习(四):AssemblyScript - 结构体系与内置函数
一.结构体系 1.编译 编译器的结构相对保守. 提供源文件,其文本被标记化并解析为抽象语法树. 这里执行语法级检查. 一旦解析了所有引用的源文件,就构造一个程序并从AST初始化. 在这里进行合理性检查 ...
- 今日SGU 5.19
SGU 142 题意:给你一个长度为n的串(由a,b组成),让你找出一个串不是n的子串,长度最下 收获:思维题,思路在代码里 #include<bits/stdc++.h> #define ...
- WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了
原文:WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4 ...
- 【Codeforces Round #460 (Div. 2) B】 Perfect Number
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 直接暴力求出第k个perfect数字就好. 纯模拟. [代码] #include <bits/stdc++.h> #de ...
- 【Henu ACM Round#14 F】 President and Roads
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 处理出起点到任意点的最短路以及最短路条数=>dis[0][i],cnt[0][i] 然后 把所有的边反向 处理出在反图上终点到 ...
- Tomcat 的三种高级运行模式
Tomcat 的连接器有两种:HTTP和AJP AJP(Apache JServ Protocol):AJP是面向数据包的基于TCP/IP的协议,它在Apache和Tomcat的实例之间提供了一个专用 ...
- 洛谷 P1705 爱与愁过火
P1705 爱与愁过火 题目背景 (本道题目隐藏了两首歌名,找找看哪~~~) <爱与愁的故事第一弹·heartache>第三章. 爱与愁大神说这是ta的伤心指数,只不过现在好很多了,翻译只 ...