zoukankan      html  css  js  c++  java
  • 百度地图实现案例

    前言

    对比百度地图的api和微信的api,发现百度的api特通俗易懂,微信的就真的不想多说什么了。今天就针对百度地图api做了一个小小的功能模块,有很多的不足,但是功能实现了以及界面达到了自己想要的样子,心里还是蛮开心的。

    代码

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>租房系统-酒店定位</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
    </head>
    <style>
      body{
        margin:0px;
        padding:0px;
      }
      #map{
         100%;
        height: 250px;
        margin-top: 10px;
      }
      .container{
        padding: 0px;
      }
      .panel{
        margin-bottom: 10px;
        border: none;
      }
      .panel-heading{
        background-color: deepskyblue !important;
        color: #fff !important;
      }
      .panel-body{
        background-color: #EFEFEF !important;
      }
      .panel-group{
        margin-bottom: 5px;
      }
      .panel-collapse .panel-body .row :first-child,.panel-collapse .panel-body .row :nth-child(3){
        font-weight: 800;
      }
    </style>

    <body >
      <div class="container-fluid">
        <div id="map"></div>
        <div style="margin-top: 10px;color: #337ab7;">|搜索周边</div>
        <div class="input-group">
          <input type="text" class="form-control" placeholder="可输入餐厅、商店、加油站..." id="sercher">
          <span class="input-group-addon" style="padding: 0px;"><a href="#" class="btn btn-primary" style="border-radius: 0px 4px 4px 0px;" onclick="select()">搜索</a></span>
        </div>
        <div style="margin-top: 10px;color: #337ab7">|路线推荐</div>
          <form class="bs-example bs-example-form" role="form">
            <div class="input-group">
              <span class="input-group-addon" style="padding: 6px 0px;"><a href="#" onclick="myLocation()" class="btn btn-primary" style="display: inline;padding: 6px 24px;border-radius: 4px 0px 0px 4px;">定位</a></span>
              <input id="myLocation" type="text" class="form-control" placeholder="请输入当前位置">
              <span class="input-group-addon" style="padding: 6px 0px;"><a href="#" onclick="gotoHouse()" class="btn btn-primary" style="display: inline;padding: 6px 24px;border-radius: 0px 4px 4px 0px;">去租房</a></span>
            </div>
          </form>
        <div class="panel panel-primary" style="margin-top: 10px;">
          <div class="panel panel-default">
            <div class="panel-heading">
              <h4 class="panel-title">
                <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
                  <div class="container">
                    驾车路线
                  </div>
                </a>
              </h4>
        </div>
        <div id="collapseOne" class="panel-collapse collapse">
          <div class="panel-body">
            <div class="container" style="font-size: 12px;" id="car">
            </div>
          </div>
        </div>
      </div>
      </div>
      <div class="panel panel-primary" style="margin-top: 10px;">
        <div class="panel panel-default">
          <div class="panel-heading">
            <h4 class="panel-title">
              <a data-toggle="collapse" data-parent="#accordion"  href="#collapseTwo">
                <div class="container">
                  公交路线
                </div>
              </a>
            </h4>
      </div>
      <div id="collapseTwo" class="panel-collapse collapse">
        <div class="panel-body">
          <div class="container" style="font-size: 12px;" id="bus">
          </div>
        </div>
      </div>
      </div>
    </div>
      <div class="panel panel-primary" style="margin-top: 10px;">
        <div class="panel panel-default">
          <div class="panel-heading">
            <h4 class="panel-title">
              <a data-toggle="collapse" data-parent="#accordion"  href="#collapseThree">
                <div class="container">
                  步行路线

                </div>
              </a>
            </h4>
          </div>
        <div id="collapseThree" class="panel-collapse collapse">
          <div class="panel-body">
            <div class="container" style="font-size: 12px;" id="walk">
            </div>
          </div>
        </div>
    </div>
    </div>
    </div>
    </body>
    </html>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=百度地图ak"></script>
    <script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

    <script>
      var map = null;
      //酒店位置
      var point = null;
      //我的位置
      var mylocation = null;
      $(document).ready(function(){
        map = new BMap.Map("map");
        point = new BMap.Point(113.476898,23.02429);
        //地图初始化,中心点坐标和地图级别
        map.addControl(new BMap.MapTypeControl({
        mapTypes:[
          BMAP_NORMAL_MAP,
          BMAP_HYBRID_MAP
        ]}));
        map.setCurrentCity("卡度尼大厦"); // 设置地图显示的城市 此项是必须设置的
        map.enableContinuousZoom(true); // 开启连续缩放效果
        map.enableInertialDragging(true); // 开启惯性拖拽效果
        map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
        map.enableKeyboard(true);
        //添加控件
        map.addControl(new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT}));
        map.addControl(new BMap.NavigationControl());
        //标注物
        var marker = new BMap.Marker(point);
        marker.disableMassClear();
        map.addOverlay(marker);
        map.centerAndZoom(point, 16);
        //事件
        map.addEventListener("click", function(e){
          var center = map.getCenter();
          console.log('点击的坐标为:',e.point.lng+','+e.point.lat);
          //point = new BMap.Point(e.point.lng,e.point.lat);
          //map.centerAndZoom(new BMap.Point(e.point.lng,e.point.lat),16)
          //map.setCenter(point);
        });
      });

    //检索
    function select(){
      //清除障碍物
      map.clearOverlays();
      var text = document.getElementById('sercher').value;
      var local = new BMap.LocalSearch(map,
      {renderOptions: {map: map,autoViewport: true}});
      local.searchNearby(text, point);
    }
    function myLocation(){
      //浏览器定位
      var geolocation = new BMap.Geolocation();
      geolocation.getCurrentPosition(function(r){
      if(this.getStatus() == BMAP_STATUS_SUCCESS){
        var mk = new BMap.Marker(r.point);
        mk.disableMassClear();
        map.addOverlay(mk);
        map.panTo(r.point);
        //逆地址解析
        var geoc = new BMap.Geocoder();
        geoc.getLocation(r.point, function(rs){
          var addComp = rs.addressComponents;
          $('#myLocation').val(addComp.province+'-'+addComp.city+'-'+addComp.district);
          console.log('逆地址解析:',addComp);
          mylocation = r.point;
          //alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);
        })
        //alert('您的位置:'+r.point.lng+','+r.point.lat);
      }else {
        alert('定位失败:'+this.getStatus());
      } });
    }
    function gotoHouse(){
      //驾车路线规划
      var driving = new BMap.DrivingRoute(map, {
        renderOptions: {
          map: map,
          panel : "car",
          autoViewport: true
        }

      });
      if(!mylocation){
      alert('请输入我的位置');
        return ;
      }
      if(!point){
        alert('没有定义终点位置');
      }
      driving.search(mylocation,point);
      //公交路线规划
      var transit = new BMap.TransitRoute(map, {
        renderOptions: {map: map, panel: "bus"}
      });
      transit.search(mylocation,point);
      //步行路线规划
      var walk = new BMap.WalkingRoute(map, {
        renderOptions: {map: map, panel: "walk"}
      });
      walk.search(mylocation,point);
    }
    </script>

  • 相关阅读:
    237. Delete Node in a Linked List
    430. Flatten a Multilevel Doubly Linked List
    707. Design Linked List
    83. Remove Duplicates from Sorted List
    160. Intersection of Two Linked Lists
    426. Convert Binary Search Tree to Sorted Doubly Linked List
    142. Linked List Cycle II
    类之间的关系
    初始化块
    明确类和对象
  • 原文地址:https://www.cnblogs.com/TomAndJerry/p/9402491.html
Copyright © 2011-2022 走看看