Highmaps 支持多种不同方式的地图交互操作,包括缩放、平移、缩放到指定的区域等,所有相关的属性都可以在地图导航器( mapNavigation )中找到。

需要注意的是地图导航器默认是关闭的,这是因为地图导航器可能会影响到网页的导航操作。当用户在地图上滚动鼠标滚轮时,用户可能是需要操作网页的滚动,而当开启了地图导航器,Highmaps 会捕获鼠标滚轮事件,并响应成地图的缩放操作;同样的情况也会发生在移动端的手势操作上,Highmaps 会响应是缩放操作,这可能会影响用户对网页的缩放操作。所以除非是明确需要地图的缩放操作,否则不要开启地图导航器。

缩放按钮

当开启了地图导航器后,默认会在地图的左下角显示两个缩放按钮 [+] 和 [-],分别对应放大和缩小地图。相关说明如下:

  1. mapNavigation: {
  2. enabled: true // 开启地图导航器,默认是 false
  3. enableButtons: true // 是否启用缩放按钮
  4. buttonOptions: { // 缩放按钮相关样式
  5. // ...
  6. },
  7. buttons: {
  8. zoomIn: { // 缩小按钮相关配置
  9. // ...
  10. },
  11. zoomOut: { // 放大按钮相关配置
  12. // ...
  13. }
  14. }
  15. }

其中缩小按钮默认调用的函数是 map.mapZoom(0.5),放大按钮默认调用的是 map.mapZoom(2) ,可以通过 onclick 属性来自定这个事件函数。

手势操作

在移动端,缩放和平移操作是通过缩放手势和触摸手势来实现的,如果不需要移动端的手势操作,可以通过下面的代码来关闭:

  1. mapNavigation: {
  2. enabled: true,
  3. enableTouchZoom: false // 在开启导航器的情况下关闭移动端手势操作
  4. }

鼠标滚轮缩放

开启地图导航器后,地图会根据鼠标所在的点为中心点进行滚轮缩放,enableMouseWheelZoom 可以开启或关闭这个操作,mouseWheelSensitivity 可以设置滚轮缩放比例。

另外 Highmaps 的滚轮操作也可以整合到 Highcharts 中使用,实现方法是引入 highmaps 模块文件,并开启地图导航器,下面是一个实例:

鼠标双击缩放

鼠标双击操作默认会缩放至当前的区域,当设置了 enableDoubleClickZoomTotrue 时,双击操作会将当前区域缩放至全屏(整个图表大小),如果不需要双击操作,可以通过 enableDoubleClickZoomTo 来关闭。

缩放相关的编程接口

Highmaps 地图可以通过编程接口 Chart.mapZoomPoint.zoomTo 来进行缩放操作。

原文: https://www.hcharts.cn/docs/map-navigation