百度地图(HTML5新特性)-全面详解(学习总结---从入门到深化)(下)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 百度地图_添加文本标注

百度地图_添加文本标注

1、添加文本标注

使用的类: Label

var point = new BMapGL.Point(116.404,39.915);
var content = "label";
var label = new BMapGL.Label(content, { //创建文本标注
    position: point,      // 设置标注的地理位置
    offset: new BMapGL.Size(10, 20) // 设置标注的偏移量
})  
map.addOverlay(label);

2、修改文本标注的样式

label.setStyle({        // 设置label的样式
    color: '#000',
    fontSize: '30px',
    border: '2px solid #1E90FF'
})

1.下列说法错误的是:添加的文本标注不能监听鼠标的点击事件

百度地图_正/逆地址解析

Geocoder.getLocation(Point,callback)

1、获取地址解析器

new BMapGL.Geocoder()

2、使用地址解析器

     地址解析:根据地址描述获得该位置的地理经纬度坐标

Geocoder.getPoint(具体地址,callback)
// 创建地址解析器实例
var geocoder = new BMapGL.Geocoder()
//通过具体地址获得该地址对应的地理位置的经纬度坐标,并进行使用
geocoder.getPoint('北京市清华大学',function(p){
     console.log(p)
     map.centerAndZoom(p,15)
     var marker=new BMapGL.Marker(p)
     map.addOverlay(marker)        
},'北京市')

在调用 Geocoder.getPoint() 方法时您需要提供地址解析所在的城市。

逆地址解析:根据经纬度坐标点获得该地点的地址描述

map.addEventListener('click',function(e){
            console.log(e)
     //根据地理经纬度坐标获取具体地址信息
          geocoder.getLocation(e.latlng,function(result){
                console.log(result)
           })
       })

百度地图_信息窗口

1、使用的类: InfoWindow

 map.addEventListener('click', function(e) {
            geocoder.getLocation(e.latlng,function (result) {
           var str='当前地址为:'+result.address
           //实例化信息窗口
           var infowindow = new BMapGL.InfoWindow(str, {
              width: 100,//信息窗口宽度
              height: 50,//信息窗口高度
              title: '提示'//信息窗口标题
           })
            // 在地图上打开信息窗口
            map.openInfoWindow(infowindow,e.latlng)
           })
 })

同一时刻只能有一个信息窗口在地图上打开

百度地图_规划驾车路线

2345_image_file_copy_699.jpg

1、创建驾车导航实例

DrivingRoute(location,options)

2、使用实例发起检索

DrivingRoute.search(start,end)
// 创建驾车导航的实例
        var driving = new BMapGL.DrivingRoute(map,
           {   //设置结果呈现
                renderOptions: { map: map, autoViewport: true },
                //检索完成后的回调函数
                onSearchComplete: function (result) {
                    console.log(result)
               }
           })
        //获取地址解析器
        var geocoder = new BMapGL.Geocoder()
        var startPoint, endPoint;
        document.querySelector('#start').onblur = function (e) {
            // 获取起点的坐标
           geocoder.getPoint(e.target.value, function (p) {
                startPoint = p
           })
       }
      document.querySelector('#end').onblur = function (e) {
            //获取终点的坐标
            geocoder.getPoint(e.target.value,
            function (p) {
                endPoint = p
           })
       }
      document.querySelector('#search').onclick = function () {
            //发起检索
            driving.search(startPoint,endPoint)
       }

1.下列哪个写法可以发起路线的检索:DrivingRoute.search()

百度地图_规划公交路线

2345_image_file_copy_700.jpg

1、创建公交导航实例

TransitRoute(location,options)

2、使用实例发起检索

TransitRoute.search(start,end)
//创建公交导航实例
        var transit = new BMapGL.TransitRoute(map, {
            renderOptions: { map: map },
            onSearchComplete: function (result) {
                // 获取第一个计划
                var plan = result.getPlan(0)
                var distance = plan.getDistance(true)
                var duration = plan.getDuration(true)
                document.querySelector('.result').innerHTML = '总路程为:' + distance + ';预计花费' + duration
           }
       })
        //获取地址解析器
        var geocoder = new BMapGL.Geocoder()
        var startPoint, endPoint;
        document.querySelector('#start').onblur = function (e) {
            // 获取起点的坐标
            geocoder.getPoint(e.target.value, function (p) {
                startPoint = p
           })
       }
      document.querySelector('#end').onblur = function (e) {
            //获取终点的坐标
            geocoder.getPoint(e.target.value,function (p) {
                endPoint = p
           })
       }
     document.querySelector('#search').onclick = function () {
            //发起检索
            transit.search(startPoint,endPoint)
       }

1.路线检索成功后回调函数是:onSearchComplete

百度地图_规划步行路线

2345_image_file_copy_701.jpg

1、创建步行导航实例

WalkingRoute(location,options)

2、使用实例发起检索

         //创建步行导航实例
         var walking = new BMapGL.WalkingRoute(map, {
            renderOptions: { map: map },
            onSearchComplete: function (result) {
                // 获取第一个计划
                var plan = result.getPlan(0)
                var distance = plan.getDistance(true)
                var duration = plan.getDuration(true)
                document.querySelector('.result').innerHTML = '总路程为:' + distance + ';预计花费' + duration
           }
       })
        //获取地址解析器
        var geocoder = new BMapGL.Geocoder()
        var startPoint, endPoint;
        document.querySelector('#start').onblur = function (e) {
            // 获取起点的坐标
            geocoder.getPoint(e.target.value, function (p) {
                startPoint = p
           })
       }
       document.querySelector('#end').onblur = function (e) {
            //获取终点的坐标
           geocoder.getPoint(e.target.value, function(p) {
                endPoint = p
           })
       }
       document.querySelector('#search').onclick = function () {
            //发起检索
            walking.search(startPoint,endPoint)
       }

1.检索步行路线使用:WalkingRoute.search()

百度地图_定位

1、浏览器定位:优先调用浏览器H5定位接口,如果失败会调用IP 定位

     使用的类: Geolocation

     

// 创建定位实例
 var geolocation = new BMapGL.Geolocation();
        //获取定位并传递回调函数
         geolocation.getCurrentPosition(function(r) {
            console.log(r)
            //判断返回的状态码是否为成功
            if (geolocation.getStatus() == BMAP_STATUS_SUCCESS) {
                var mk = new BMapGL.Marker(r.point);
                map.addOverlay(mk);
                //将地图的中心改为指定的点
                map.panTo(r.point);
                alert('您的位置:' + r.point.lng + ',' + r.point.lat);
           }
            else {
                alert('失败' + geolocation.getStatus());
           }
       });

2、IP定位:根据用户IP 返回城市级别的定位结果

    使用的类: LocalCity

   

        //创建ip定位实例
        var myCity = new BMapGL.LocalCity();
        myCity.get(function(result){
            var cityName = result.name;
            //设置地图中心点,参数除了可以为坐标点以外,还支持城市名
            map.setCenter(cityName);
            console.log("当前定位城市:" + cityName);
       });

1.通过IP定位使用:Geolocation

百度地图_自定义视角动画

2345_image_file_copy_702.jpg

您可以自定义从地图上某一地点切换到另一地点的3D过渡动画效果。

1、初始化地图

2、自定义关键帧

var keyFrames = [
           {
                center: new BMapGL.Point(116.40396298757886,39.91511908708907),     // 定义第一个关键帧帧地图中心点
                zoom: 18,                
                     // 定义第一个关键帧地图等级
                tilt: 60,                
                     // 定义第一个关键帧地图倾斜角度
                heading: 0,              
                     // 定义第一个关键帧地图旋转方向
                percentage: 0            
                     // 定义第一个关键帧处于动画过程的百分比,取值范围0~1
           },
            {
                center: new BMapGL.Point(116.38096834279554,39.9156803086881),     // 定义第二个关键帧地图中心点
                zoom: 18,                
                     // 定义第二个关键帧地图等级
                tilt: 60,                
                     // 定义第二个关键帧地图倾斜角度
                heading: 0,              
                   // 定义第二个关键帧地图旋转方向
                percentage: 1            
                  // 定义第二个关键帧处于动画过程的百分比,取值范围0~1
           },
       ];

3、设置动画属性

var opts = {
    duration: 10000,     // 设置每次迭代动画持续时间
    delay: 3000,         // 设置动画延迟开始时间
    interation: 1        // 设置动画迭代次数
};

4、创建动画实例

var animation = new BMapGL.ViewAnimation(keyFrames, opts);

5、播放动画

map.startViewAnimation(animation);
//传入动画实例

6、强制停止动画

map.cancelViewAnimation(animation);      
  // 强制停止动画
目录
相关文章
|
23小时前
|
存储 移动开发 前端开发
html5有哪些新特性?
【10月更文挑战第19天】
|
23天前
|
算法 前端开发 Java
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
这篇文章总结了单链表的常见面试题,并提供了详细的问题分析、思路分析以及Java代码实现,包括求单链表中有效节点的个数、查找单链表中的倒数第k个节点、单链表的反转以及从尾到头打印单链表等题目。
28 1
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
|
15天前
|
人工智能
|
2月前
|
数据可视化 前端开发
Twaver-HTML5基础学习(39)鹰眼可视化视图组件(OverView)
本文介绍了如何在Twaver-HTML5中使用鹰眼(Overview)可视化视图组件,它作为Network的缩略图,允许用户通过缩略图导航Network,支持单击、双击和框选操作来控制Network视图。
36 5
Twaver-HTML5基础学习(39)鹰眼可视化视图组件(OverView)
|
2月前
|
数据可视化 前端开发 容器
Twaver-HTML5基础学习(41)列表可视化视图组件(List)
本文介绍了如何在Twaver-HTML5中使用列表可视化视图组件(List),展示了如何创建列表、设置列表属性(如行高、间隔颜色等)、实现数据绑定和排序,以及如何通过React代码示例进行操作。
26 2
Twaver-HTML5基础学习(41)列表可视化视图组件(List)
|
2月前
Twaver-HTML5基础学习(38)劈分面板SplitPane
本文介绍了如何在Twaver-HTML5中使用SplitPane组件来创建可分割的面板,通过动态调整分割条来改变面板的大小,支持水平和垂直分割。
32 2
Twaver-HTML5基础学习(38)劈分面板SplitPane
|
2月前
|
Web App开发 存储 移动开发
前端基础(十七)_HTML5新特性
本文概述了HTML5的关键新特性,包括canvas图形绘制、多媒体的`video`和`audio`元素、本地存储功能、语义化标签(如`header`、`footer`、`nav`等)及其新增表单控件和属性(如`url`、`email`、`date`类型输入框等)。这些改进增强了网页的功能性和用户体验。
35 1
前端基础(十七)_HTML5新特性
|
2月前
|
前端开发
Twaver-HTML5基础学习(37)network导出图片并下载
本文介绍了如何在Twaver-HTML5中将network导出为图片并提供下载,主要通过将network转换为canvas对象,然后转换为base64编码的图片进行展示和下载。
34 5
|
2月前
|
移动开发 数据可视化 HTML5
Twaver-HTML5基础学习(40)表格可视化视图组件(Table)
本文介绍了如何在Twaver-HTML5中使用表格可视化视图组件(Table),包括创建表格、定义列对象、实现数据绑定和排序,以及处理表格事件和获取表格数据的方法。
35 1
|
23天前
|
移动开发 前端开发 JavaScript
HTML入门(详细)
HTML入门(详细)
21 0