Mapbox GL JS CookbookMapbox GL JS Cookbook
快速开始
样式规范
空间数据
插件
进阶
DECK.GL
  • 文档
  • 术语
  • 示例
GitHub
快速开始
样式规范
空间数据
插件
进阶
DECK.GL
  • 文档
  • 术语
  • 示例
GitHub
  • 快速开始
  • 标准样式
  • 交互处理

    • 弹窗
    • 控件
    • 标记
  • 教程

    • 高亮
  • 地理与几何
  • 地图服务

    • 地图服务
    • GeoServer
    • OGC API

控件

定位

GeolocateControl 提供一个按钮,该按钮使用浏览器的 Geolocation API 在地图上定位用户。

map.addControl(new mapboxgl.GeolocateControl())

全屏

FullscreenControl 可以切换地图的全屏模式。

map.addControl(new mapboxgl.FullscreenControl())

导航

NavigationControl 包含缩放和指南针。

map.addControl(new mapboxgl.NavigationControl({ visualizePitch: true }))

比例尺

ScaleControl 显示地图上的距离与地面上相应距离的比率。

map.addControl(new mapboxgl.ScaleControl())

自定义

Mapbox GL JS 提供了 IControl 接口。自定义控件必须实现 onAdd 和 onRemove 方法,并且有一个 HTML 元素,通常为 div 元素。如果要使用 Mapbox GL JS 默认控件样式,需要给元素添加 mapboxgl-ctrl 样式。

官方示例

// es6 类
class HelloWorldControl {
  onAdd(map) {
    this._map = map
    this._container = document.createElement('div')
    this._container.className = 'mapboxgl-ctrl'
    this._container.textContent = 'Hello, world'
    return this._container
  }

  onRemove() {
    this._container.parentNode.removeChild(this._container)
    this._map = undefined
  }
}

// es5 原型类
function HelloWorldControl() {}

HelloWorldControl.prototype.onAdd = function (map) {
  this._map = map
  this._container = document.createElement('div')
  this._container.className = 'mapboxgl-ctrl'
  this._container.textContent = 'Hello, world'
  return this._container
}

HelloWorldControl.prototype.onRemove = function () {
  this._container.parentNode.removeChild(this._container)
  this._map = undefined
}

城市选择器

一个快速定位城市的控件。GitHub 地址:城市选择器

在 GitHub 上编辑此页!
上次更新:
贡献者: huangli, huanglii
Prev
弹窗
Next
标记