LngLat.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import Common from "./Common"
  2. /**
  3. * @description KMap.LngLat 经纬度
  4. */
  5. class LngLat{
  6. /**
  7. * @param {number} lng 纬度
  8. * @param {number} lat 经度
  9. * @constructor
  10. */
  11. constructor(lng,lat){
  12. Common.checkLngLat(lng,lat)
  13. let maplnglat = [Number(lng),Number(lat)]
  14. this.lngLat = maplnglat
  15. }
  16. /**
  17. * @description 当前经纬度坐标值经度移动w,纬度移动s,得到新的坐标。 经度向右移为正值,纬度向上移为正值,单位为°
  18. * @param {number} w 经度移动量
  19. * @param {number} s 纬度移动量
  20. */
  21. offset(w, s) {
  22. let lng = this.lngLat[0]+w
  23. let lat = this.lngLat[1]+s
  24. return new LngLat(lng,lat)
  25. }
  26. /**
  27. * @description 当前经纬度和传入经纬度之间的地面距离,单位为米----暂无该方法
  28. * @param {number} lnglat 经纬度
  29. */
  30. distance(lnglat) {
  31. return null
  32. }
  33. /**
  34. * @description 获取经度
  35. * @returns {number} 返回经度
  36. */
  37. getLng() {
  38. let lng = this.lngLat[0]
  39. return lng
  40. }
  41. /**
  42. * @description 获取纬度
  43. * @returns {number} 返回纬度
  44. */
  45. getLat() {
  46. let lat = this.lngLat[1]
  47. return lat
  48. }
  49. /**
  50. * @description 判断当前坐标对象与传入坐标对象是否相等
  51. * @param {KMap.LngLat} lnglat 格式的经纬度,必填
  52. * @returns {boolean} 坐标相等返回true,坐标不相等返回false
  53. */
  54. equals(lnglat) {
  55. if(lnglat.getLng() == this.lngLat[0] && lnglat.getLat() == this.lngLat[1]){
  56. return true
  57. }
  58. else{
  59. return false
  60. }
  61. }
  62. /**
  63. * @description LngLat对象以字符串的形式返回。
  64. * @returns {String} 返回经纬度格式的字符串,用逗号连接
  65. */
  66. toString() {
  67. return this.lngLat[0] + "," + this.lngLat[1]
  68. }
  69. }
  70. export default LngLat