Mars3D基础学习:地图控件

本文详细介绍了Cesium原生控件的配置方法,以及mars3d平台内置的Popup、Tooltip、SmallTooltip、ContextMenu等控件的使用。同时,展示了如何在map、layer和graphic对象上操作这些控件,以及创建和使用自定义平台控件。此外,还列举了部分平台控件类和示例,帮助开发者更好地理解和应用。
摘要由CSDN通过智能技术生成

1. Cesium原生控件

目前主要使用场景是在创建地球前,你可以在配置项中通过control对控件中的功能组件进行相应的配置,支持的参数参考 control参数说明 。此种方式支持 Cesium.Viewer 本身支持的一些Cesium原生控件的控制。

//方式1:在创建地球前的传参中配置control参数
var map = new mars3d.Map('mars3dContainer', {
  control: {
     //以下是Cesium.Viewer所支持的控件相关的options
    baseLayerPicker: true, //basemaps底图切换按钮,图层选择器,选择要显示的地图服务和地形服务
    homeButton: true, //视角复位按钮
    sceneModePicker: true, //二三维切换按钮, 选择投影模式,有三种:3D,2D,哥伦布视图
    navigationHelpButton: true, //帮助按钮,显示默认的地图控制帮助
    infoBox: true, //信息框
    selectionIndicator: true, //选择框
    vrButton: true, //vr模式按钮
    fullscreenButton: true, //全屏按钮
    animation: false, //动画部件按钮(左下角),控制视图动画的播放速度
    timeline: false, //时间线(下侧),指示当前时间,并允许用户跳到特定的时间
    geocoder: true, //POI查询按钮
    geocoderConfig: { key: ['ae29a37307840c7ae4a785ac905927e0'] }, //POI查询按钮参数配置

    //以下是mars3d.control定义的控件
    defaultContextMenu: true, //右键菜单
    mouseDownView: true,
    compass: { top: '10px', right: '5px' },
    distanceLegend: { left: '100px', bottom: '2px' },
  },
})

#2. 平台内置控件

目前平台内部已内置了一些常用控件,并在Map、图层、矢量数据 3类不同层次的对象中去使用, 目前支持的内置控件包括:

名称说明备注示例
Popup鼠标单击后显示的气泡窗继承自DivGraphic对象查看示例
Tooltip鼠标移入后显示的气泡窗继承自DivGraphic对象查看示例
SmallTooltip简易小气泡窗,一般用于鼠标操作的提示比如标绘中的提示查看示例
ContextMenu右键菜单查看示例
KeyboardRoam键盘漫游控制器查看示例

#2.1.在map地图对象上操作

map地图 对象上可以操作的常用方法有:

//Popup相关
map.openPopup(position, content, options) //打开Popup弹窗
map.closePopup()//关闭弹窗

//Tooltip相关
map.openTooltip(position, content, options) //打开Tooltip弹窗
map.closeTooltip()//关闭Tooltip弹窗

//SmallTooltip相关 
map.openSmallTooltip(position, message) //显示小提示窗,一般用于鼠标操作的提示。
map.closeSmallTooltip()//关闭小提示窗

//右键菜单相关
map.getContextMenu() //获取绑定的右键菜单数组
map.bindContextMenu(mapContextmenuItems) //绑定地图的默认右键菜单
map.unbindContextMenu() //解除绑定的右键菜单
map.openContextMenu(position, content, options) //打开右键菜单
map.closeContextMenu() //关闭右键菜单
 

#2.2.在layer图层对象上操作

layer图层 对象上可以操作的常用方法有:

//Popup相关
layer.hasPopup() //是否存在Popup绑定
layer.bindPopup(content, options) //绑定鼠标单击对象后的弹窗。
layer.unbindPopup()  //解除绑定的鼠标单击对象后的弹窗。
layer.openPopup(graphic) //打开Popup弹窗
layer.closePopup()//关闭弹窗

//Tooltip相关
layer.hasTooltip() //是否存在Tooltip绑定
layer.bindTooltip(content, options) //绑定鼠标移入对象后的弹窗。
layer.unbindTooltip()  //解除绑定的鼠标移入对象后的弹窗。
layer.openTooltip(graphic) //打开Tooltip弹窗
layer.closeTooltip()//关闭Tooltip弹窗

//SmallTooltip相关 
layer.openSmallTooltip(position, message) //显示小提示窗,一般用于鼠标操作的提示。
layer.closeSmallTooltip()//关闭小提示窗

//右键菜单相关
layer.hasContextMenu() //是否有绑定的右键菜单
layer.getContextMenu() //获取绑定的右键菜单数组
layer.bindContextMenu(content, options) //绑定地图的默认右键菜单
layer.unbindContextMenu() //解除绑定的右键菜单
layer.openContextMenu(position, options) //打开右键菜单
layer.closeContextMenu() //关闭右键菜单
 

#2.3. 在graphic矢量数据对象上操作

graphic矢量数据 对象上可以操作的常用方法有:

//Popup相关
graphic.hasPopup() //是否存在Popup绑定
graphic.bindPopup(content, options) //绑定鼠标单击对象后的弹窗。
graphic.unbindPopup()  //解除绑定的鼠标单击对象后的弹窗。
graphic.openPopup(position) //打开Popup弹窗
graphic.closePopup()//关闭弹窗

//Tooltip相关
graphic.hasTooltip() //是否存在Tooltip绑定
graphic.bindTooltip(content, options) //绑定鼠标移入对象后的弹窗。
graphic.unbindTooltip()  //解除绑定的鼠标移入对象后的弹窗。
graphic.openTooltip(position) //打开Tooltip弹窗
graphic.closeTooltip()//关闭Tooltip弹窗

//SmallTooltip相关 
graphic.openSmallTooltip(position, message) //显示小提示窗,一般用于鼠标操作的提示。
graphic.closeSmallTooltip()//关闭小提示窗

//右键菜单相关
graphic.hasContextMenu() //是否有绑定的右键菜单
graphic.getContextMenu() //获取绑定的右键菜单数组
graphic.bindContextMenu(content, options) //绑定地图的默认右键菜单
graphic.unbindContextMenu() //解除绑定的右键菜单
graphic.openContextMenu(position, options) //打开右键菜单
graphic.closeContextMenu() //关闭右键菜单

#3. 平台控件

平台的所有控件类都继承于BaseControl类 ,控件类均在mars3d.control.*命名空间下面。 下面我们演示创建一个控件对象 ,并调用map.addControl添加到地图上。

let _alllayers = this.map.getTileLayers()//获取所有瓦片图层
//创建分屏对比控件。
var mapSplit = new mars3d.control.MapSplit({
  rightLayer: _alllayers[0],
  leftLayer: _alllayers[1],
})
map.addControl(mapSplit)

#3.1 控件清单

类名说明示例
mars3d.control.Compass导航球控件查看示例
mars3d.control.DistanceLegend比例尺控件查看示例
mars3d.control.LocationBar鼠标经纬度等信息状态栏查看示例
mars3d.control.MouseDownView鼠标旋转、放大时的按键效果美化图标查看示例
mars3d.control.ToolButton工具栏 单个按钮控件查看示例
mars3d.control.Zoom工具栏 放大缩小按钮控件查看示例
mars3d.control.OverviewMap鹰眼地图 控件查看示例

注:本教程中所列清单可能不全,具体已功能示例和API为准。

#3.2 运行效果

 

 

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木遥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值