AMap通過兩點獲取偏移量
阿新 • • 發佈:2018-11-17
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(),
}
}