1. 程式人生 > >AMap通過兩點獲取偏移量

AMap通過兩點獲取偏移量

AMap通過兩點獲取偏移量

最近在用AMap做一個熱點圖,但是有些功能官方沒法提供,所以自己封裝了一些方法

  • 兩點確定偏移的米數

/**
   * 
   * @param {Object | include longitude & latitude} point1 
   * @param {Object | include longitude & latitude} point2 
   * @return {Object | include x & y} obj
   */
  getOffset
(point1, point2) {
   const p = new window.AMap.LngLat(point1.longitude, point1.latitude)    const x2 = new window.AMap.LngLat(point2.longitude, point1.latitude)    const x = Math.round(p.distance(x2))    const y2 = new window.AMap.LngLat(point1.longitude, point2
.latitude)
   const y = Math.round(p.distance(y2))    const arr = [      x,      y,   ]    if (point1.longitude > point2.longitude) arr[0] = -x    if (point1.latitude > point2.latitude) arr[1] = -y    return
{
     x: arr[0],      y: arr[1],   } }
  • 確定偏移後的點的經緯度


/**
   * 
   * @param {Object | include longitude, latitude, w, s} param0 
   * @param {Float | initial value : 1} rate 
   * @returns { Object | include longitude, latitude } obj
   */
  getOffsetLngLon({
    longitude,
    latitude,
    w,
    s,
  }, rate = 1) {
    const point = new window.AMap.LngLat(longitude, latitude)
    point.offset(w * rate, s * rate)
    return {
      longitude: point.getLng(),
      latitude: point.getLat(),
    }
  }