【曲线救国】图层视角自适应哪家强,API中找Bounds,再见吧setFitView

发布时间:2024年01月15日

【曲线救国】图层视角自适应哪家强,API中找Bounds

一、背景

使用vue-amap海量点插件,调用高德地图原生图层自适应API:setFitView函数,当地图放大层级大时,出现偶尔失效情况,作为精品应用是不允许这种偶然事件发生的。

前面一直考虑是不是setFitView的参数传值不对,各种尝试海量点对象的传入,均无效。

因此就另辟蹊径,考虑地图的另一个展示范围API Bounds对象。

二、Bounds对象

2.1 构造函数

官方文档查看1,传入西南和东北的经纬度坐标对象即可。

AMap.Bounds(southWest:LngLat, northEast:LngLat)//参数southWest、northEast分别代表地物对象西南角经纬度和东北角经纬度值。

2.2 获取方位角工具类函数

函数参考博客2

/**
 * 坐标集合的最西南角
 * @param {*} list
 *  list 是接口获取的点 的数组
 */
export const getSW = (list) => {
  let south = null
  let west = null
  for (let item of list) {
    if ((west && item.longitude < west) || !west) {
      west = item.longitude - 0.7
    }
    if ((south && item.latitude < south) || !south) {
      south = item.latitude - 0.7
    }
  }
  return [west, south]
}

/**
 *  最东北角
 * @param {*} list
 */
export const getNE = (list) => {
  let north = null
  let east = null
  for (let item of list) {
    if ((east && item.longitude > east) || !east) {
      east = item.longitude + 0.7
    }
    if ((north && item.latitude > north) || !north) {
      north = item.latitude + 0.7
    }
  }

  return [east, north]
}

三、结果

this.$refs['map'].$$getInstance().setBounds(mybounds)

对较为分散的10个坐标点进行自适应,如下图所示,分布较为均匀。

看着就舒服。😃

在这里插入图片描述
一个点也是用,直接居中显示。

在这里插入图片描述


  1. [地物对象的经纬度矩形范围](https://lbs.amap.com/api/javascript-api/reference/core#Bounds) ??

  2. web高德地图自适应海量点标记, 调整视角 ??

文章来源:https://blog.csdn.net/qq_40657528/article/details/135607560
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。