HTML新特性【账号和获取密钥、初始化、变更地图类型、添加控件、改变控件位置、添加覆盖物、自定义标注图标、添加文本标注】(四)-全面详解(学习总结---从入门到深化)(下)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: HTML新特性【账号和获取密钥、初始化、变更地图类型、添加控件、改变控件位置、添加覆盖物、自定义标注图标、添加文本标注】(四)-全面详解(学习总结---从入门到深化)

HTML新特性【账号和获取密钥、初始化、变更地图类型、添加控件、改变控件位置、添加覆盖物、自定义标注图标、添加文本标注】(四)-全面详解(学习总结---从入门到深化)(上):https://developer.aliyun.com/article/1420270


百度地图_改变控件位置



控制控件位置


初始化控件时,可提供一个可选参数,是一个json对象,里面有 个属性 anchor 表示控件的停靠位置,即控件停靠在地图的哪个角。当地图尺寸发生变化时,控件会根据停靠位置的不同来调整自己的位置 。

var scaleCtrl= new BMapGL.ScaleControl({anchor:BMAP_ANCHOR_TOP_LEFT})
//实例化控件的时候可以传递一个可选参数,为一个json
map.addControl(scaleCtrl)


控件位置偏移


除了指定停靠位置外,还可以通过偏移量来指示控件距离地图边界有多少像素。 通过 offset 设置。

var scaleCtrl= new BMapGL.ScaleControl({
           anchor:BMAP_ANCHOR_TOP_RIGHT,
           //offset为一个Size的实例,接受的俩个参数分别代表水平方向距离跟垂直方向距离
           offset:new BMapGL.Size(10,10)
       })
map.addControl(scaleCtrl)//添加比例尺控件


百度地图_添加覆盖物



所有叠加或覆盖到地图的内容,我们统称为地图覆盖物。


添加覆盖物map.addOverlay(覆盖物实例)


添加点(标注点)


       使用的类: Marker

var point = new BMapGL.Point(116.404,39.915);  
var marker = new BMapGL.Marker(point);
// 创建标注点  
map.addOverlay(marker);// 将标注添加到地图中


添加多边形


       使用的类: Polygon

var polygon = new BMapGL.Polygon([
        new BMapGL.Point(116.387112,39.920977),
        new BMapGL.Point(116.385243,39.913063),
        new BMapGL.Point(116.394226,39.917988),
        new BMapGL.Point(116.401772,39.921364),
        new BMapGL.Point(116.41248,39.927893)
   ], {strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5});
 map.addOverlay(polygon);


删除覆盖物map.removeOverlay(具体覆盖物实例) 或者 map.clearOverlays()

var overlays = map.getOverlays()//获取地图的所有覆盖物
map.removeOverlay(overlays[0])//删除对应的覆盖物
//map.clearOverlays()//删除地图上所有的覆盖物


监听覆盖物事件


overlay.addEventListener('事件名称',callback)

marker.addEventListener("click",
function(e){  
    console.log(e)
});


百度地图_自定义标注图标



1、定义标注图标


Icon(url: String, size: Size , opts: IconOptions)

url :指定图标要使用的图片路径

size :指定放置图标的区域大小

opts :指定关于图标的位置的一些参数

var myIcon = new BMapGL.Icon("markers.png", new BMapGL.Size(50, 50), //指定放置图标区域的大小
 {  
   //指定地理点跟图标左上角的相对偏移量
    anchor: new BMapGL.Size(10, 25),    
});


2、使用自定义的标注图标创建标注点

// 创建标注对象并添加到地图  
var marker = new BMapGL.Marker(point, { icon: myIcon });
map.addOverlay(marker);


百度地图_添加文本标注



添加文本标注


使用的类: 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);


修改文本标注的样式

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


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



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() 方法时您需要提供地址解析所在的城市。


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


Geocoder.getLocation(Point,callback)

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


百度地图_信息窗口



使用的类: 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)
           })
 })


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


百度地图_规划驾车路线



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月前
|
移动开发 HTML5
HTML5标签的类型
HTML5标签的类型。
54 5
|
2月前
|
移动开发 前端开发 JavaScript
Twaver-HTML5基础学习(15)形状连线(ShapeLink)四种类型(直线、正交、二次贝塞尔、三次贝塞尔)
本文介绍了Twaver HTML5中的形状连线(ShapeLink),包括如何使用它以及如何添加控制点。文章详细解释了ShapeLink支持的四种连线类型:直线(lineto)、正交(orthogonalto)、二次贝塞尔曲线(quadto)和三次贝塞尔曲线(cubicto),并通过示例代码展示了如何在React组件中创建和配置ShapeLink。
47 3
|
18天前
|
XML JavaScript 前端开发
如何解析一个 HTML 文本
【10月更文挑战第23天】在实际应用中,根据具体的需求和场景,我们可以灵活选择解析方法,并结合其他相关技术来实现高效、准确的 HTML 解析。随着网页技术的不断发展,解析 HTML 文本的方法也在不断更新和完善,
|
25天前
|
JavaScript 前端开发 UED
HTML 超链接的多种类型及应用
【10月更文挑战第17天】HTML 超链接类型丰富多样,它们共同构成了网页中不可或缺的导航和交互元素。通过合理地选择和运用这些超链接类型,我们可以为用户创造更加流畅和便捷的浏览体验,提升网站的可用性和吸引力。
27 1
|
1月前
|
Java BI API
spring boot 整合 itextpdf 导出 PDF,写入大文本,写入HTML代码,分析当下导出PDF的几个工具
这篇文章介绍了如何在Spring Boot项目中整合iTextPDF库来导出PDF文件,包括写入大文本和HTML代码,并分析了几种常用的Java PDF导出工具。
404 0
spring boot 整合 itextpdf 导出 PDF,写入大文本,写入HTML代码,分析当下导出PDF的几个工具
|
2月前
|
移动开发 前端开发 JavaScript
Twaver-HTML5基础学习(14)连线(Link)连线类型(直线、延伸直线、正交直线)
本文介绍了Twaver HTML5中连线(Link)的不同类型,包括直线、延伸直线和正交直线,并通过示例代码展示了如何在React组件中设置Link的类型和样式。
26 1
Twaver-HTML5基础学习(14)连线(Link)连线类型(直线、延伸直线、正交直线)
|
1月前
|
移动开发 数据安全/隐私保护 UED
HTML5 新的 Input 类型详解
HTML5引入了多种新输入类型,显著提升了表单的用户体验和可用性。这些类型包括普通文本、搜索、电子邮件、网址、电话号码、密码、数字、范围选择、日期、时间、颜色选择等,每个类型都有特定用途和优化功能。例如,`email` 类型可自动验证邮件格式,`number` 类型提供增减按钮,而 `date` 类型则内置日期选择器。这些新类型不仅简化了用户操作,还增强了开发者对表单验证和数据交互的控制能力。
|
1月前
|
存储 移动开发 数据库
HTML5 Web IndexedDB 数据库常用数据存储类型
IndexedDB 支持多种数据存储类型,满足复杂数据结构的存储需求。它包括基本数据类型(如 Number、String、Boolean、Date)、对象(简单和嵌套对象)、数组、Blob(用于二进制数据如图像和视频)、ArrayBuffer 和 Typed Arrays(处理二进制数据)、结构化克隆(支持 Map 和 Set 等复杂对象),以及 JSON 数据。尽管不直接支持非序列化数据(如函数和 DOM 节点),但可以通过转换实现存储。开发者应根据具体需求选择合适的数据类型,以优化性能和使用体验。
|
2月前
|
存储 移动开发 搜索推荐
HTML5 常用存储类型
HTML5 常用存储类型
|
2月前
|
前端开发 程序员
【前端web入门第二天】01 html语法实现列表与表格_合并单元格
本文介绍了HTML中的列表与表格的使用方法。列表包括无序列表(`<ul>`嵌套`<li>`)、有序列表(`<ol>`嵌套`<li>`)和定义列表(`<dl>`嵌套`<dt>`和`<dd>`)。
60 19