百度地图

1. 基本用法

<!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>
1. 适应移动端页面展示

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

<meta  name="viewport"  content="initial-scale=1.0, user-scalable=no"  /> 
2. 设置容器样式
<style  type="text/css">
 html{height:100%}
 body{height:100%;margin:0px;padding:0px} 
 #container{height:100%} 
</style>  
3. 引用百度地图API文件
<script  type="text/javascript"  src="http://api.map.baidu.com/api?v=3.0&ak=您的密钥"></script>
4. 创建地图容器元素
<div  id="container"></div>  
5. 创建地图实例

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

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

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

6. 设置中心点坐标
var point = new BMap.Point(116.404, 39.915); 

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

7. 地图初始化,同时设置地图展示缩放级别

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

map.centerAndZoom(point, 15);  

添加控件

addMapCtrl();
        // 添加地图控制 
        function addMapCtrl(){
            map.enableScrollWheelZoom(true);                //地图可以缩放,鼠标滚轮
            map.addControl(new BMap.NavigationControl());   // 地图导航
            map.addControl(new BMap.ScaleControl());        // 缩放控件
            map.addControl(new BMap.OverviewMapControl());  //概况
            map.addControl(new BMap.MapTypeControl());      //地图类型
        }

2. 添加标注(覆盖物)

a. 小图标
<div id="container"></div> 
<script>
    var map = new BMap.Map("container"); 
    // 初始化地图
    var point = new BMap.Point(113.665, 34.784); 
    //  指定地图中心点(精度,纬度)
    map.centerAndZoom(point, 16);  
    //  地图指定中心和缩放层次
    map.enableScrollWheelZoom(true);                //地图可以缩放
    // 自定义标注
    let Icon = new BMap.Icon(
        './assets/start_point.png',
        // 图片的地址
        new BMap.Size(36,42),
        // 显示图片的大小
        {imageSize:new BMap.Size(36,42),anchor:new BMap.Size(18,42)})
        // 把原始图片缩小为 36,42, 偏移到底部中心区域,(默认是左上角)

    var marker = new BMap.Marker(point,{icon:Icon})
    // 创建一个标注
    map.addOverlay(marker);
    // 添加标注到地图
</script> 
b. 圆
        var circle = new BMap.Circle(
            point,
            // 中心点位置
            500,
            // 半径
            {strokeColor:"blue",strokeWeight:2,strokeOpacity:0.5,fillOpacity:0.4})
            // stroke边框  fill 填充   Opacity透明度
        map.addOverlay(circle);
c. 多边形
        var polygon = new BMap.Polygon([
            new BMap.Point(113.6729090076618, 34.792850585314234),
            new BMap.Point(113.67341716599596, 34.780524355204825),
            new BMap.Point(113.65634304596864, 34.78010506298753),
            new BMap.Point(113.64841577595597, 34.79184443213241)
        ],
        // 多边形顶点
        {strokeColor:"orange",strokeWeight:2,strokeOpacity:0.5,fillColor:'blue',fillOpacity:0.1})
        // 边框填充颜色与透明度
        map.addOverlay(polygon);
d. 折线
       var marker = new BMap.Marker(point,{icon:Icon})
        // 创建一个标注
        map.addOverlay(marker);
        // 添加标注到地图
        // 地图事件
        map.addEventListener("click",e=>{
            console.log(e);
            console.log(e.point);
            let marker = new BMap.Marker(new BMap.Point(e.point.lng,e.point.lat))
            map.addOverlay(marker);
            // 单击在页面中添加一个点
            // point 就是当前的经度纬度
        })

        let line = new BMap.Polyline([
            new BMap.Point(113.665, 34.784),
            new BMap.Point(113.66478440667755, 34.78598630008208),
            new BMap.Point(113.66747932320749, 34.78672745622025),
            new BMap.Point(113.66823389983587, 34.7868905096687),
            new BMap.Point(113.66832373038686, 34.787587188920526),
            new BMap.Point(113.66909627312545, 34.78763165760732),
        ],{strokeColor:"red",strokeWidth:2})
        map.addOverlay(line);

3. 信息窗口+搜索窗口

<input type="text" onblur="blurHd(this)"/>  
<div id="container"></div> 
<script>   
    var map = new BMap.Map("container"); 
    // 初始化地图
    var point = new BMap.Point(113.665, 34.784); 
    //  指定地图中心点(精度,纬度)
    map.centerAndZoom(point, 16);  
    //  地图指定中心和缩放层次
    map.enableScrollWheelZoom(true);                //地图可以缩放
    // 自定义标注
    let Icon = new BMap.Icon(
        './assets/start_point.png',
        // 图片的地址
        new BMap.Size(36,42),
        // 显示图片的大小
        {imageSize:new BMap.Size(36,42),anchor:new BMap.Size(18,42)})
        // 把原始图片缩小为 36,42, 偏移到底部中心区域,(默认是左上角)

    var marker = new BMap.Marker(point,{icon:Icon})

    map.addOverlay(marker);
        let str = `<div class="info"><p>一入前端深似海<p></div> `;
            var info = new BMap.InfoWindow(
            str,
            {title:'web前端大本营'})
            marker.addEventListener("click",()=>{
                map.openInfoWindow(info,point)
        })
        map.openInfoWindow(info,point);
    // 创建一个标注
    map.addOverlay(marker);


    var local = new BMap.LocalSearch(map, {
        renderOptions:{map: map}
    });
    local.search("景点");  

    function blurHd(e){
        local.search(e.value);  
    }
    // 添加标注到地图
    </script> 

4. 路径规划

var end = null;

// map.addOverlay(polygon);
map.addEventListener("click",e=>{
    console.log(e.point);
    end = new BMap.Point(e.point.lng,e.point.lat);
    // 单击获取结束的点;
    
    driving.search(point,end)
    // 查找两个点的路径
})
//  规划两个点的行车,公交,步行的路线
var driving = new BMap.DrivingRoute(map,{
    renderOptions:{map:map,autoViewport:true}
})

5. api 接口

    var local = new BMap.LocalSearch(map, {
        renderOptions:{map: map}
    });
//  通过百度api 获取当前的城市
  $(function(){
      $.ajax({
          url:'http://api.map.baidu.com/location/ip?ak=I5p02PxH5e459CAk9vt4elbXNTkgfxde&ip=&coor=bd09ll&output=jsonp',
          dataType:"jsonp",
          success:function(res){
              console.log(res);
              $("h1").html(res.content.address);
          }
      })
  })

//  通过百度api 获取当前的城市

  $(function(){
      $.ajax({
          url:'http://api.map.baidu.com/location/ip?ak=I5p02PxH5e459CAk9vt4elbXNTkgfxde&ip=&coor=bd09ll&output=jsonp',
          dataType:"jsonp",
          success:function(res){
            //   console.log(res);
              $("h1").html(res.content.address);
          }
      })

    //   当searchbox 发生改变时候 再发起ajax请求
    $("#searchbox").on("input",function(){
        // 显示tip
        $(".tip").show();
        $.ajax({
          url:`http://api.map.baidu.com/place/v2/suggestion?query=${$("#searchbox").val()}&region=郑州&city_limit=true&output=json&ak=I5p02PxH5e459CAk9vt4elbXNTkgfxde`,   
          dataType:"jsonp",
          success:function(res){
              console.log(res)   
              $(".tip").html(res.result.map(item=>`<p>${item.name}</p>`).join(''));
              //  设置tip的内容为result数组返回成p元素 连接为字符串
          },        
      })

    })
    $(".tip").on("click","p",function(){
        local.search($(this).text());  
        // 执行地图搜索 为当前单击的p标签
        $(".tip").hide();
        // 隐藏tip
    })
  })
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容