百度地图JavaScript API基础应用示例

字号+ 作者:alpha 来源:www.seoalphas.com 2018-09-06 08:13 我要评论(0)

百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可帮助您在网站中构建功能丰富、交互性强的地图应用,支持PC端和

开始学习百度地图API最简单的方式是看一个简单的示例。该示例帮助您快速了解百度地图API的基本使用,快速创建一张“我的地图”。

如下代码可以实现一个简单完整的全屏展示的地图Demo:

<!DOCTYPE html>  
<html>
<head>  
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<title>Hello, World</title>  
<style type="text/css">  
html{height:100%}  
body{height:100%;margin:0px;padding:0px}  
#container{height:100%}  
</style>  
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=您的密钥">
//v3.0版本的引用方式:src="http://api.map.baidu.com/api?v=3.0&ak=您的密钥"
</script>
</head>  
 
<body>  
<div id="container"></div> 
<script type="text/javascript"> 
var map = new BMap.Map("container");
// 创建地图实例  
var point = new BMap.Point(116.404, 39.915);
// 创建点坐标  
map.centerAndZoom(point, 15);
// 初始化地图,设置中心点坐标和地图级别  
</script>  
</body>  
</html>

最主要的就是这行代码了:

<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=您的密钥">

“您的密匙”在百度地图开放平台注册账号后,添加网站应用即可获得

QQ截图20180906082010.jpg

1、申请百度账号和ak


2、准备页面

根据HTML标准,每一份HTML文档都应该声明正确的文档类型,我们建议您使用最新的符合HTML5规范的文档声明:

<!DOCTYPE html>

您也可以根据需要选择其他类型的文档声明,这样浏览器会以标准的方式对页面进行渲染,保证页面最大的兼容性。我们不建议您使用quirks模式进行开发。


3、适应移动端页面展示

下面我们添加一个meta标签,以便使您的页面更好的在移动平台上展示。

<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />  


4、设置容器样式

设置容器样式大小,使地图充满整个浏览器窗口:

<style type="text/css">  

    html{height:100%}    

    body{height:100%;margin:0px;padding:0px}    

    #container{height:100%}    

</style> 


5、引用百度地图API文件

<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=您的密钥"></script>


6、创建地图容器元素

地图需要一个HTML元素作为容器,这样才能展现到页面上。这里我们创建了一个div元素。

<div id="container"></div> 


7、创建地图实例

位于BMap命名空间下的Map类表示地图,通过new操作符可以创建一个地图实例。其参数可以是元素id也可以是元素对象。

var map = new BMap.Map("container"); 

注意:

1.在调用此构造函数时应确保容器元素已经添加到地图上。

2.命名空间 API使用BMap作为命名空间,所有类均在该命名空间之下,比如:BMap.Map、BMap.Control、BMap.Overlay。


8、设置中心点坐标

这里我们使用BMap命名空间下的Point类来创建一个坐标点。Point类描述了一个地理坐标点,其中116.404表示经度,39.915表示纬度。(为天安门坐标)

var point = new BMap.Point(116.404, 39.915); 

注意:在使用百度地图JavaScript API服务时,需使用百度BD09坐标,如使用其他坐标( WGS84、GCJ02)进行展示,需先将其他坐标转换为BD09,详细说明请参考坐标转换说明,请勿使用非官方的转换方法!!!


9、地图初始化,同时设置地图展示级别

在创建地图实例后,我们需要对其进行初始化,BMap.Map.centerAndZoom()方法要求设置中心点坐标和地图级别。 地图必须经过初始化才可以执行其他操作。

map.centerAndZoom(point, 15);  

至此,我们就快速创建了一张以天安门为中心的地图~


地图配置与操作

地图被实例化并完成初始化以后,就可以与其进行交互了。

API中的地图对象的外观与行为与百度地图网站上交互的地图非常相似。它支持鼠标拖拽、滚轮缩放、双击放大等交互功能。您也可以修改配置来改变这些功能。


比如,默认情况下地图不支持鼠标滚轮缩放操作,因为这样可能会影响整个页面的用户体验,但是如果您希望在地图中使用鼠标滚轮控制缩放,则可以调用map.enableScrollWheelZoom方法来开启。配置选项可以在Map类参考中找到。


此外,您还可以通过编程的方式与地图交互。Map类提供了若干修改地图状态的方法。例如:setCenter()、panTo()、zoomTo()等等。


示例: 等待两秒钟后,地图它会移动到新中心点。panTo()方法将让地图平滑移动至新中心点,如果移动距离超过了当前地图区域大小,则地图会直跳到该点。


var map = new BMap.Map("container");    

var point = new BMap.Point(116.404, 39.915);    

map.centerAndZoom(point, 15);    

window.setTimeout(function(){  

    map.panTo(new BMap.Point(116.409, 39.918));    

}, 2000);



拓展应用示例代码 JavaScript API 2.0版本:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>Simple Map</title>
        <style type="text/css">
            body, html {width: 100%;height: 100%;margin:0;font-family:"微软雅黑";}
            p{margin-left:5px; font-size:14px;}
        </style>
        <script type="text/javascript" src="http://api.map.baidu.com/api?ak=申请的Key&v=2.0&services=false"></script>
    </head>
    <body>
        <div id="content" class="content">
        <input type="text" value="" id="keyword" />
        <input type="button" name="" id="" value="查询" onclick="search()" />
        <div style="width:600px;height:500px;border:0px solid gray" id="container"></div>
        <p id="aa"></p>
        <script type="text/javascript">
            //创建Map实例
            var map = new BMap.Map("container");
            var point = new BMap.Point(118.060576,36.842432);
            map.centerAndZoom(point,15);
            //添加鼠标滚动缩放
            map.enableScrollWheelZoom();
            
            //添加缩略图控件
            map.addControl(new BMap.OverviewMapControl({isOpen:false,anchor:BMAP_ANCHOR_BOTTOM_RIGHT}));
            //添加缩放平移控件
            map.addControl(new BMap.NavigationControl());
            //添加比例尺控件
            map.addControl(new BMap.ScaleControl());
            //添加地图类型控件
            //map.addControl(new BMap.MapTypeControl());
            
            //设置标注的图标
            var icon = new BMap.Icon("img/icon.jpg",new BMap.Size(100,100));
            //设置标注的经纬度
            var marker = new BMap.Marker(new BMap.Point(118.056156,36.840988),{icon:icon});
            //把标注添加到地图上
            map.addOverlay(marker);
            var content = "<table>";  
                content = content + "<tr><td> 编号:001</td></tr>";  
                content = content + "<tr><td> 地点:淄博市张店区</td></tr>"; 
                content = content + "<tr><td> 时间:2014-09-26</td></tr>";  
                content += "</table>";
            var infowindow = new BMap.InfoWindow(content);
            marker.addEventListener("click",function(){
                this.openInfoWindow(infowindow);
            });
            
            //点击地图,获取经纬度坐标
            map.addEventListener("click",function(e){
                document.getElementById("aa").innerHTML = "经度坐标:"+e.point.lng+" &nbsp;纬度坐标:"+e.point.lat;
            });
            
            //关键字搜索
            function search(){
                var keyword = document.getElementById("keyword").value;
                var local = new BMap.LocalSearch(map, {
                renderOptions:{map: map}
            });
            local.search(keyword);
            }
        </script>
        
        </div>
    </body>
</html>


标签
下一篇:没有了

本站部分技术文章为参考网上实用内容发布,目的是记录踩坑经验,若未备注来源而侵犯了您原创文章权益,请联系博主删除;对文章有不同看法的朋友欢迎在评论区留言互动

相关文章
  • 关于https站点调用百度地图api的说明

    关于https站点调用百度地图api的说明

    浏览次数:198

  • 百度地图开放平台使用说明

    百度地图开放平台使用说明

    浏览次数:176

网友点评
功能开发中......
0.312500s