我想在木有提供地图接口的年代,前端工程师门要么只写上企业的具体地址,要么就是用一张标有自己位置的地图图片。但是现在不一样啦!为了增强用户体验,谷歌,甚至百度都很开放了,你可以在他们的网站上找到地图接口,通过进行直接的调用就可以了。

下面我来教你怎么在网页中用好百度地图,当然了,你也可以去百度地图网站去查找相关的技术资料。

首先你需要进入到百度地图官网http://developer.baidu.com/map/ 。因为我们是用的脚本进行加载的,所以我们要选择上图中的第一个“javascript api”,进去之后你会发现它的功能很强大有木有?

这里只是它的冰山一角。你可以在最下面“开始体验”。里面有源代码,你可以获取,然后放入到你的网页当中去。不过我今天讲的不是这么简单的。

我需要的是地图层,需要有移动,还需要能进行导航搜索功能。怎么实现呢?Copy下面的这段代码到你的网页中:

<script type=”text/javascript”>
// 百度地图API功能
var map = new BMap.Map(‘map’);
var poi = new BMap.Point(116.307852,40.057031);
map.centerAndZoom(poi, 16);
map.enableScrollWheelZoom();
var content = ’<div style=”margin:0;line-height:20px;padding:2px;”>’ +
‘<img src=”../img/baidu.jpg” alt=”" style=”float:right;zoom:1;overflow:hidden;width:100px;height:100px;margin-left:3px;”/>’ +
‘地址:北京市海淀区上地十街10号<br/>电话:(010)59928888<br/>简介:百度大厦位于北京市海淀区西二旗地铁站附近,为百度公司综合研发及办公总部。’ +
‘</div>’;
//创建检索信息窗口对象
var searchInfoWindow = null;
searchInfoWindow = new BMapLib.SearchInfoWindow(map, content, {
title : ”百度大厦”, //标题
width : 290, //宽度
height : 105, //高度
panel : ”panel”, //检索结果面板
enableAutoPan : true, //自动平移
searchTypes :[
BMAPLIB_TAB_SEARCH, //周边检索
BMAPLIB_TAB_TO_HERE, //到这里去
BMAPLIB_TAB_FROM_HERE //从这里出发
]
});
var marker = new BMap.Marker(poi); //创建marker对象
marker.enableDragging(); //marker可拖拽
marker.addEventListener(“click”, function(e){
searchInfoWindow.open(marker);
})
map.addOverlay(marker); //在地图中添加marker
searchInfoWindow.open(marker); //在marker上打开检索信息串口
$(“close”).onclick = function(){
searchInfoWindow.close();
}
$(“open”).onclick = function(){
var enableSendToPhone = false;
if ($(“enableSendToPhone”).checked) {
enableSendToPhone = true;
}
searchInfoWindow = new BMapLib.SearchInfoWindow(map, content, {
title : ”百度大厦”, //标题
width : 290, //宽度
height : 105, //高度
panel : ”panel”, //检索结果面板
enableAutoPan : true, //自动平移
enableSendToPhone: enableSendToPhone, //是否启用发送到手机
searchTypes :[
BMAPLIB_TAB_SEARCH, //周边检索
BMAPLIB_TAB_TO_HERE, //到这里去
BMAPLIB_TAB_FROM_HERE //从这里出发
]
});
if ($(“enableAutoPan”).checked) {
searchInfoWindow.enableAutoPan();
} else {
searchInfoWindow.disableAutoPan();
};
searchInfoWindow.open(marker);
}
$(“show”).onclick = function(){
searchInfoWindow.show();
}
$(“hide”).onclick = function(){
searchInfoWindow.hide();
}
$(“getPosition”).onclick = function(){
var position = searchInfoWindow.getPosition();
alert(“经度:” + position.lng + ”;纬度:” + position.lat);
}
$(“setValue”).onclick = function(){
searchInfoWindow.setPosition(new BMap.Point($(“lng”).value, $(“lat”).value));
searchInfoWindow.setTitle($(“title”).value);
searchInfoWindow.setContent($(“content”).value);
}
$(“getContent”).onclick = function(){
alert(searchInfoWindow.getContent());
}
$(“getTitle”).onclick = function(){
alert(searchInfoWindow.getTitle());
}
function $(id){
return document.getElementById(id);
}
//样式1
var searchInfoWindow1 = new BMapLib.SearchInfoWindow(map, ”信息框1内容”, {
title:”信息框1″, //标题
panel : ”panel”, //检索结果面板
enableAutoPan : true, //自动平移
searchTypes :[
BMAPLIB_TAB_FROM_HERE, //从这里出发
BMAPLIB_TAB_SEARCH //周边检索
]
});
function openInfoWindow1() {
searchInfoWindow1.open(new BMap.Point(116.319852,40.057031));
}
//样式2
var searchInfoWindow2 = new BMapLib.SearchInfoWindow(map, ”信息框2内容”, {
title: ”信息框2″, //标题
panel : ”panel”, //检索结果面板
enableAutoPan : true, //自动平移
searchTypes :[
BMAPLIB_TAB_SEARCH //周边检索
]
});
function openInfoWindow2() {
searchInfoWindow2.open(new BMap.Point(116.324852,40.057031));
}
//样式3
var searchInfoWindow3 = new BMapLib.SearchInfoWindow(map, ”信息框3内容”, {
title: ”信息框3″, //标题
width: 290, //宽度
height: 40, //高度
panel : ”panel”, //检索结果面板
enableAutoPan : true, //自动平移
searchTypes :[
]
});
function openInfoWindow3() {
searchInfoWindow3.open(new BMap.Point(116.328852,40.057031));
}
var isPanelShow = false;
//显示结果面板动作
$(“showPanelBtn”).onclick = function(){
if (isPanelShow == false) {
isPanelShow = true;
$(“showPanelBtn”).style.right = ”300px”;
$(“panelWrap”).style.width = ”300px”;
$(“map”).style.marginRight = ”300px”;
$(“showPanelBtn”).innerHTML = ”隐藏检索结果面板<br/>>”;
} else {
isPanelShow = false;
$(“showPanelBtn”).style.right = ”0px”;
$(“panelWrap”).style.width = ”0px”;
$(“map”).style.marginRight = ”0px”;
$(“showPanelBtn”).innerHTML = ”显示检索结果面板<br/><”;
}
}
</script>

别以为这样就ok啦,还有这些也是需要滴!

用来装地图的盒子,盒子里要用 id=”map”,还要有这个js库

<script type=”text/javascript” src=”http://api.map.baidu.com/api?v=1.5&ak=2b866a6daac9014292432d81fe9b47e3“></script>

来看看效果:

这里有些地方是可以更改的var poi = new BMap.Point(116.307852,40.057031);用来修改你具体位置在地图上的坐标点;map.centerAndZoom(poi, 16);可以用来显示地图层的,在地图上滚动你的滑轮你注意下就知道了。

要是我不知道我的具体位置的坐标点或者我想把地点弄的更精确怎么办?

你可以用坐标拾取工具,或者是用快速生成工具

怎么样?这样的用户体验是不是蛮拉轰的?

不过我们需要知道的是,在给用户带来了好的体验的同时也是有损失的。利用对外的加载会让我们的网页打开速度下降。

如果你还有什么不懂的,可以留言哦!



原文链接:http://www.qianduanview.com/237.html

如何在网页中调用百度地图api的更多相关文章

  1. ASP.NET中调用百度地图API

    1.打开链接http://developer.baidu.com/map/jshome.htm这里有很多DEMO,或者你直接百度搜索“百度地图API”,第一个就是.进入后有很多方向供你选择,由于现在开 ...

  2. 【c#】Form调用百度地图api攻略及常见问题

    首先,在Form中调用百度地图api,我们需要使用webbrowser控件,这个在前面的文章中已经讲过了,可以参照(http://blog.csdn.net/buptgshengod/article/ ...

  3. 在XAF(ASP.NET)中以ListEditor的形式调用百度地图API

    因为项目需要,在系统中使用地图显示设备的地理位置.考虑过ArgGIS,Bing和Baidu地图.本来想用ArgGIS,看教程嫌麻烦.所以还是用Web地图吧.Bing的话还要申请个key,没心情.百度地 ...

  4. 网页中嵌入百度地图报错:The request has been blocked,the content must served over Https

    网页中嵌入百度地图 1.进入百度地图开发平台:http://lbsyun.baidu.com/index.php?title=jspopular 2.获取密钥:http://lbsyun.baidu. ...

  5. Android应用中使用百度地图API并加入标注(一)

    网上一些资料这样的的内容已经过时了,这里是最新的内容,假设哪里不正确,请吐槽... 1)下载百度地图移动版API(Android)开发包       要在Android应用中使用百度地图API,就须要 ...

  6. pc网页中嵌入百度地图

    pc网页中嵌入百度地图 1 打开百度地图生成器: http://api.map.baidu.com/lbsapi/creatmap/ 2 设置好了之后,点击获取代码,将代码粘贴到文件中保存为html文 ...

  7. 调用百度地图API的总结

    因为项目要用到百度地图,所以先摸索了一下,各种功能官方都有文档,点击可查看,文章的话我就直接写我用到的功能例子了,要用可以直接复制粘贴~ 一.主要涉及到的几个接口(先申请密钥): 1.技术一:坐标转换 ...

  8. Python调用百度地图API实现批量经纬度转换为实际省市地点(api调用,json解析,excel读取与写入)

    1.获取秘钥 调用百度地图API实现得申请百度账号或者登陆百度账号,然后申请自己的ak秘钥.链接如下:http://lbsyun.baidu.com/apiconsole/key?applicatio ...

  9. Angular 调用百度地图API接口

    Angular 调用百度地图API接口 参考原文:https://blog.csdn.net/yuyinghua0302/article/details/80624274 下面简单介绍一下如何在Ang ...

随机推荐

  1. Kinect外包团队(长年承接微软Kinect体感项目外包,有大型Kinect案例)

    承接Kinect体感企业项目.游戏项目外包 北京公司.专业团队,成员为专业WPF产品公司一线开发人员,有大型产品开发经验: 提供优质的售后服务,保证产品质量,轻量级产品可以提供规范清晰的源代码,有业务 ...

  2. 程序设计入门——C语言 第7周编程练习 1多项式加法(5分)

    第7周编程练习 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统 ...

  3. 转:对于一个字节(8bit)的变量,求其二进制表示中“1”的个数

    转:http://toutiao.com/a4280977370/ [解法一] 可以举一个八位的二进制例子来进行分析.对于二进制操作,我们知道,除以一个 2,原来的数字将会减少一个0.如果除的过程中有 ...

  4. Spring jar包详解

    Spring jar包详解 org.springframework.aop ——Spring的面向切面编程,提供AOP(面向切面编程)的实现 org.springframework.asm——spri ...

  5. alter system switch logfile与alter system archive log current的区别

    以前知道 ALTER SYSTEM SWITCH LOGFILE对单实例数据库或RAC中的当前实例执行日志切换, ALTER SYSTEM ARCHIVE LOG CURRENT会对数据库中的所有实例 ...

  6. ==与equals的区别

    ==比较两个对象在内存里是不是同一个对象,就是说在内存里的存储位置一致.两个String对象存储的值是一样的,但有可能在内存里存储在不同的地方 . ==比较的是引用而equals方法比较的是内容.pu ...

  7. AJAX总结

    艾瑞宝迪,早上好,前端小菜鸟最近想更深入的了解ajax,无奈网上都没有看到合适系统的总结,于是心血来潮开始自己在博客园上的处女作,方便自己以后查看,也可以和大家一起交流

  8. 20155229-付钰涵-分析自我技能延展到c语言学习状况

    我的小技能 我记得幼儿园时表演的舞蹈,也记得从水彩到素描的学习,还记得小学和初中获得的钢琴省级奖项. 舞蹈止于一年级,绘画止于三年级,钢琴从学前班到高一那十年的时间里有过断续. 03年-04年的那个冬 ...

  9. JAVA语法02之课程问题解决

    (一)示例程序+运行结果: ①EnumTest.java public class EnumTest { public static void main(String[] args) { Size s ...

  10. 《精通C#》索引器与重载操作符(11.1-11.2)

    1.索引器方法结构大致为<modifier><return type> this [argument list],它可以在接口中定义: 在为接口声明索引器的时候,记住声明只是表 ...