如何在网页中调用百度地图api-程序员宅基地

技术标签: ViewUI  前端  javascript  

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

百度地图api

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

首先你需要进入到百度地图官网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>

来看看效果:

百度地图api调取效果

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

地图层级

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

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

地图插件

怎么样?这样的用户体验是不是蛮拉轰的?
不过我们需要知道的是,在给用户带来了好的体验的同时也是有损失的。利用对外的加载会让我们的网页打开速度下降。
如果你还有什么不懂的,可以留言哦!

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


转载于:https://my.oschina.net/jokeny/blog/308380

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33794672/article/details/91809385

智能推荐

Linux虚拟机配置nat模式与主机通讯_linux虚拟机net模式访问主机端口-程序员宅基地

1.设置PC物理网卡的IP地址为固定IP2.设置PC物理网卡的共享属性,共享给虚拟机的NAT模式下的虚拟网卡3.设置此虚拟网卡的IP地址,子网掩码,需要注意的是,设置前后IP地址不一致,可以忽略,在详细信息页面可以看到之前设置的IP地址4.VMware虚拟机软件中打开虚拟网络编辑器,编辑NAT模式的网卡信息,设置子网IP与虚拟网卡的IP在同一网段,都为192.168.137.***,..._linux虚拟机net模式访问主机端口

【JEECG技术文档】JEECG online 表单填值规则使用说明_onl_cgreport_param-程序员宅基地

1. 功能介绍 JEECG online规则值自动生成功能 为实现online表单数据初始化功能。 为实现图中红框字段初始化功能,需要完成下面4步操作: 1)编写规则实现类 2) 配置填值规则 3)online创建表单时填写规则code 4) online功能测试新增表单中显示字段默认值。 2. 编写规则实现类 创建一个实现IFillRuleHandle_onl_cgreport_param

测试光驱挂载简单测试用例_linux 光驱测试速度-程序员宅基地

用例编号摘要测试步骤检查值Case1在linux下挂载光驱a.启动虚拟机b.调用mount_iso接口c.检查返回值是否为成功d.到nc的/mnt目录下查看是否生成iso_share文件夹,文件夹下是否有共享的.iso文件和NFS上一致e.到虚拟机下执行mount /dev/hdc /mnt(插入光驱操作)f.查看mnt下文件,是否和当初制作的mnt_linux 光驱测试速度

在Google上安装接口测试工具-程序员宅基地

百度网盘链接:https://pan.baidu.com/s/1ksEUdO7t7xQ1FH-pNFvRbw 提取码:yc2x 1. 点击Google浏览器右上角 2. 选择 ---》更多工具----》扩展程序3. 将E:\接口测试工具\google插件使用方法\Advanced-REST-client_v3.1.9加载到里面4. 打开详细信息 ...

Mysql 最常用操作语句汇总_adamlanbot的博客-程序员宅基地

原生SQL语句-- -sql语句的注意 : 1 以;作为结束符 2 不区分大小写--01 mysql 数据库的操作 -- 链接数据库 mysql -uroot -pmysql -- 不显示密码 mysql -uroot -p mysql -- 退出数据库 exit/quti/ctrl + d -- sql语句最后需要有分号;结尾 -- 显示数据库版本 version select ve..

面试题1-概率问题_概率面试题-程序员宅基地

1.n把钥匙开锁,第k次(1=&lt;K&lt;=N)打开的概率?分析:钥匙开过一次就知道是否能打开,因此是有序排列;只有一把可以打开,前k-1次都没有挑中正确的钥匙求解1:第一次没打开P(X=0)=(N-1)/N 第二次没打开P(X=0)=(N-2)/(N-1) ... 第k次打开P(X=1)=1/(N-(k-1))..._概率面试题

随便推点

java远程加载class文件_java 远程加载class-程序员宅基地

1.在win上创建java文件并编译2.上传到远程服务器3.编写java代码准备: 引入jar包 ganymed-ssh2-262.jar1.加载外部class要定义自己的类加载器2.使用内存流import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStrea..._java 远程加载class

人工智能产品经理是否需要懂技术_udacity ai产品经理-程序员宅基地

对于产品经理是否需要懂技术,在互联网时代一直是一个非常有争议的话题。在人工智能时代的,或许我们可以有一个准确的答案。个人觉得在人工智能时代我们需要懂技术、而且是需要在自己所在的领域中掌握前沿急速的实现原理,谙熟每种技术实现手段的优劣势,对技术的发展方向和技术如何融合产品经理自己的独到认知。 对于“懂技术”,这儿我们可以从以下三个方面进行描述。 ..._udacity ai产品经理

RG-Route-map应用及注意事项-程序员宅基地

对比Route-Map在 Redistribute以及Policy-Routing中的应用及注意点 route-map 可以应用在两种不同的地方:redistribute 和 policy routing,但是区别必须搞清楚:一、deny语句1、route-map 中的deny语句如果匹配,redistribute时匹配的条目将不被重分发。2、route-map...

linux之用户的相关操作-程序员宅基地

1.文件管理 命令 参数 作用 ls 显示文件信息 ls -l 长列表显示文件信息 ls -a 显示所有文件包括以“.”开头的 ls -s 显示文件的大小 ls -S 按文件的大小进行排序 ls -d 显示目录本身,-ld显示目录本身的属性 ls -R 递归显示。...

ahooks:useClickAway-程序员宅基地

优雅的管理目标元素外点击事件的 Hook。读ahooks源码前置知识:node.contains( otherNode )字段说明node目标元素otherNode目标元素是否包含此dom节点JavaScript的contains方法用来查看dom元素的包含关系这和dart、java的不一样。dart的contains用来检查数组中是否包含目标元素简单实现html:<body> <div id="box">box</di_useclickaway

使用uIP将TUN网卡适配到TAP网卡-tun2tap-程序员宅基地

想玩虚拟网卡一定要玩TUN/TAP(以下简称TAP),想玩TAP一定要知道uIP。uIP是一个用户态实现的一个超级轻量级的麻雀虽小五脏俱全的TCP/IP协议栈,相比lwIP要好用好玩得多,具体怎么个意思,还是请教它的大帅哥作者吧。本文要说的只是它的一个应用,既如何将TUN模式的虚拟网卡适配成TAP模式的虚拟网卡,这个需求确实是需要的。 到底什么时候需要把TUN模式的虚拟网卡装bi成一个TAP模式的..._tun2tap

推荐文章

热门文章

相关标签