放狼的羊 發表於 2019-11-22 13:54:00

JavaScript调用百度地图

<p>在网站开发过程中,经常会调用到地图,百度地图提供Web开发、Android开发、iOS开发API及SDK,百度地图JavaScript API可帮助您在网站中构建功能丰富、交互性强的地图应用,本篇博客简单介绍如何使用百度地图提供的JavaScript API调用百度地图。</p>
<p>百度地图开放平台地址:http://lbsyun.baidu.com/index.php?title=jspopular3.0</p>
<h3>获取服务密钥</h3>
<p>根据提示步骤操作,获取服务密钥</p>
<p><img src="https://img2018.cnblogs.com/common/1732950/201911/1732950-20191122102134214-872188710.png" alt=""></p>
<p><img src="https://img2018.cnblogs.com/common/1732950/201911/1732950-20191122102329191-1703848245.png" alt=""></p>
<h3>引用百度地图API文件</h3>
<pre class="brush: js;html-script: false;quick-code: true;smart-tabs: true;auto-links: false;toolbar: true;gutter; true;light: false;ruler: false;pad-line-numbers: 2;collapse: false;tab-size: 4;first-line: 1;">&lt;script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&amp;ak=您的密钥"&gt;&lt;/script&gt;</pre>
<h3>添加meta标签适应移动端</h3>
<pre class="brush: js;html-script: false;quick-code: true;smart-tabs: true;auto-links: false;toolbar: true;gutter; true;light: false;ruler: false;pad-line-numbers: 2;collapse: false;tab-size: 4;first-line: 1;">&lt;meta name="viewport" content="initial-scale=1.0, user-scalable=no" /&gt;
</pre>
<h3>JavaScript API制作动态地图</h3>
<pre class="brush: js;html-script: false;quick-code: true;smart-tabs: true;auto-links: false;toolbar: true;gutter; true;light: false;ruler: false;pad-line-numbers: 2;collapse: false;tab-size: 4;first-line: 1;">&lt;script type="text/javascript"&gt;
    $(function () {
      var map = new BMap.Map("container");//创建地图实例
      var point = new BMap.Point(116.403884, 39.914887);//设置中心点坐标
      map.centerAndZoom(point, 13);//地图初始化,同时设置地图展示级别
      map.enableScrollWheelZoom(true);//开启鼠标滚轮缩放
      map.addControl(new BMap.NavigationControl());//添加平移缩放控件
      map.addControl(new BMap.ScaleControl());//添加比例尺
      map.addControl(new BMap.OverviewMapControl());//添加缩略地图
      map.addControl(new BMap.MapTypeControl());//添加地图类型
      var marker = new BMap.Marker(point);// 创建标注
      map.addOverlay(marker);// 将标注添加到地图中
      marker.setAnimation(BMAP_ANIMATION_BOUNCE); //标注跳动的动画      
    })      
&lt;/script&gt;
</pre>
<h3>创建信息窗口,使用URL API调起PC端百度地图,提供公交、驾车换乘检索服务</h3>
<pre class="brush: js;html-script: false;quick-code: true;smart-tabs: true;auto-links: false;toolbar: true;gutter; true;light: false;ruler: false;pad-line-numbers: 2;collapse: false;tab-size: 4;first-line: 1;">&lt;script type="text/javascript"&gt;
    $(function () {
      //添加带检索功能的信息窗口
      var licontent = "&lt;b&gt;天安门&lt;/b&gt;&lt;br&gt;&lt;br&gt;";
      licontent += "&lt;span&gt;&lt;strong&gt;地址:&lt;/strong&gt;北京市东城区天安门广场北侧&lt;/span&gt;&lt;br&gt;&lt;br&gt;";
      licontent += "&lt;span&gt;&lt;strong&gt;电话:&lt;/strong&gt;(010)63095718,(010)63095630&lt;/span&gt;&lt;br&gt;&lt;br&gt;";
      licontent += "&lt;span class=\"input\"&gt;&lt;strong&gt;&lt;/strong&gt;";
      licontent += "&lt;input class=\"outset\" type =\"text\" name=\"origin\" /&gt;";
      licontent += "&lt;input class=\"outset-but\" type =\"button\" value=\"公交\" onclick=\"gotobaidu(1)\" /&gt;";
      licontent += "&lt;input class=\"outset-but\" type =\"button\" value=\"驾车\"onclick=\"gotobaidu(2)\"/&gt;";
      licontent += "&lt;a class=\"gotob\" ";
      licontent += "href =\"http://api.map.baidu.com/direction?destination=latlng:" + marker.getPosition().lat + "";
      licontent += "," + marker.getPosition().lng + "|name:天安门" + "?ion=北京" + "&amp;output=html\" ";
      licontent += "target=\"_blank\"&gt;&lt;/a&gt;&lt;/span&gt;";
      var hiddeninput = "&lt;input type=\"hidden\" value=\"" + '北京' + "\" name=\"region\" /&gt;";
      hiddeninput += "&lt;input type=\"hidden\" value=\"html\" name=\"output\" /&gt;";
      hiddeninput += "&lt;input type=\"hidden\" value=\"driving\" name=\"mode\" /&gt;";
      hiddeninput += "&lt;input type=\"hidden\" value=\"latlng:" + marker.getPosition().lat + "";
      hiddeninput += "," + marker.getPosition().lng + "|name:天安门" + "\" name=\"destination\" /&gt;";
      var content1 = "&lt;form id=\"gotobaiduform\" action=\"http://api.map.baidu.com/direction\" ";
      content1 += "target=\"_blank\" method=\"get\"&gt;" + licontent + hiddeninput + "&lt;/form&gt;";
      var opts1 = { width: 300 };
      //创建信息窗实例
      var infoWindow = new BMap.InfoWindow(content1, opts1);
      //打开信息窗
      marker.openInfoWindow(infoWindow);
      marker.addEventListener('click', function () {
            marker.openInfoWindow(infoWindow);
      });
    })
    function gotobaidu(type) {
      if ($.trim($("input").val()) == "") {
            alert("请输入起点!");
            return;
      } else {
            if (type == 1) {
                $("input").val("transit");
                $("#gotobaiduform").submit();
            } else if (type == 2) {
                $("input").val("driving");
                $("#gotobaiduform").submit();
            }
      }
    }
&lt;/script&gt;</pre>
<p><img src="https://img2018.cnblogs.com/common/1732950/201911/1732950-20191122133810710-1715453115.png" alt=""></p>
<p>官方示例地址:http://lbsyun.baidu.com/index.php?title=uri/guide/helloworld</p>
<h3>常见问题</h3>
<p><span style="color: rgba(255, 0, 0, 1)">This request has been blocked; the content must be served over HTTPS.</span><br>Console提示:此请求已被阻止,内容必须通过HTTPS提供。<br>解决方法:添加meta标签,将HTTP的不安全请求升级为HTTPS</p>
<pre class="brush: js;html-script: false;quick-code: true;smart-tabs: true;auto-links: false;toolbar: true;gutter; true;light: false;ruler: false;pad-line-numbers: 2;collapse: false;tab-size: 4;first-line: 1;">&lt;meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"&gt;</pre>
<p>更多常见问题请见官方文档:http://lbsyun.baidu.com/index.php?title=jspopular3.0/qa</p>
<p>End!</p>

</div>
<div id="MySignature" role="contentinfo">
    <div>作者:Wahaha、</div>
<div>出处:https://www.cnblogs.com/gygg/</div>
<div>本博客是作者在学习和工作途中的积累与总结,仅供自己参考,也欢迎大家转载,转载时请注明出处。</div><br><br>
来源:https://www.cnblogs.com/gygg/p/11910027.html
頁: [1]
查看完整版本: JavaScript调用百度地图