Skip to content

Map 地图 ​

基于 OpenLayers 的地图组件,支持底图切换、滚轮缩放、控件配置等功能。

基础地图用法

控件 ​

通过 controls 属性配置地图控件,支持 9 种 OpenLayers 内置控件。

地图控件

控件列表 ​

控件说明默认开启
zoom缩放按钮(+/-)✅
attribution版权信息✅
scaleLine比例尺❌
mousePosition鼠标位置坐标❌
zoomSlider滑块式缩放❌
zoomToExtent缩放到指定范围❌
rotate重置地图旋转❌
overviewMap鹰眼图/小地图❌
fullScreen全屏切换❌

使用方式 ​

vue
<template>
  <hx-map
    :center="{ lon: 116.4, lat: 39.9 }"
    :zoom="10"
    :controls="{
      zoom: true,
      attribution: { collapsible: true, collapsed: true },
      scaleLine: { units: 'metric' },
      mousePosition: { projection: 'EPSG:4326' },
      fullScreen: true,
    }"
  />
</template>

controls 配置说明 ​

  • true:使用默认配置启用控件
  • false:禁用控件(仅对默认开启的 zoom 和 attribution 有效)
  • 配置对象:自定义控件选项

全局配置 ​

可以通过 HxConfigProvider 的 map 属性配置全局默认地图参数:

vue
<HxConfigProvider :map="{
  normalUrl: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
  center: { lon: 116.4, lat: 39.9 },
  zoom: 10
}">

可用瓦片服务 ​

服务标准地图 URL说明
ArcGIShttps://server.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}完全免费,全球覆盖(默认)
ArcGIS 卫星https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}卫星影像
OpenStreetMaphttps://a.tile.openstreetmap.org/{z}/{x}/{y}.png开源免费,无需 API Key
天地图https://t0.tianditu.gov.cn/vec_w/wmts?...国内访问快,需申请 Key

HxMap 属性 ​

属性说明类型默认值
normalUrl标准地图瓦片 URLstringArcGIS 街道图
satelliteUrl卫星地图瓦片 URLstringArcGIS 卫星图
center地图中心点{ lon: number, lat: number }{ lon: 116.4, lat: 39.9 }
zoom缩放级别number10
maxZoom最大缩放级别number18
minZoom最小缩放级别number3
width地图宽度(支持数字自动加 px)string | number'100%'
height地图高度(支持数字自动加 px)string | number'500px'
scrollWheelZoom是否启用滚轮缩放booleantrue
controls地图控件配置MapControlsConfig{ zoom: true, attribution: true }

HxMap 事件 ​

事件名说明回调参数
mapReady地图初始化完成(map: ol/Map) => void
mapClick点击地图(coordinate: [lon, lat]) => void

HxMap 暴露方法 ​

方法名说明参数
setCenter设置中心点(center: { lon, lat }) => void
setZoom设置缩放级别(zoom: number) => void
getCenter获取当前中心点() => { lon, lat } | null
getZoom获取当前缩放级别() => number | null
getMap获取原始 ol/Map 实例() => Map | null
fitExtent视野适应范围(extent: [minX, minY, maxX, maxY], padding?: number[]) => void

Released under the MIT License.