Jinuss's blog Jinuss's blog
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript高级程序设计》
    • 《Vue》
    • 《React》
    • 《Git》
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • 学习
  • 实用技巧
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

东流

前端可视化
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript高级程序设计》
    • 《Vue》
    • 《React》
    • 《Git》
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • 学习
  • 实用技巧
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 框架

  • core模块

  • dom模块

  • control

  • geometry

  • geo

    • crs

      • CRS
      • CRS.Earth
        • 概述
        • 源码分析
          • 源码实现
          • 注意事项
        • 总结
      • CRS.EPSG3395
      • CRS.EPSG3857
      • CRS.EPSG4326
      • CRS.Simple
    • projection

    • LatLng
    • LatLngBounds
  • layer

  • Map

  • 《Leaflet源码》笔记
  • geo
  • crs
东流
2025-04-10
目录

CRS.Earth

# 概述

CRS.Earth 是一个用于表示地球坐标系的类,它继承自 CRS基类,并针对地图球体模型进行扩展,主要用于大圆距离计算和经纬度循环处理

# 源码分析

# 源码实现

CRS.Earth对象的源码实现如下:

export var Earth = Util.extend({}, CRS, {
  wrapLng: [-180, 180], //定义经度循环范围,当地图横向滚动时,经度值会在该区间内自动循环,如 190° -> -170°
  R: 6371000, // 定义地球半径,单位为米,用于计算两点间的距离
  // 计算两点间的大圆距离,采用 Haversine 公式计算
  distance: function (latlng1, latlng2) {
    var rad = Math.PI / 180,
      lat1 = latlng1.lat * rad,
      lat2 = latlng2.lat * rad,
      sinDLat = Math.sin(((latlng2.lat - latlng1.lat) * rad) / 2),
      sinDLon = Math.sin(((latlng2.lng - latlng1.lng) * rad) / 2),
      a =
        sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon,
      c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    return this.R * c;
  },
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 注意事项

CRS.Earth也是一个基础对象,一般不会直接使用,而是作为其它参考坐标系的基础,因为CRS.Earth没有code、projection 和transformation。

# 总结

在 Leaflet 中,CRS.Earth提供了基于球体模型的基础地理处理能力。

编辑 (opens new window)
上次更新: 2025/04/21, 05:18:23
CRS
CRS.EPSG3395

← CRS CRS.EPSG3395→

最近更新
01
GeoJSON
05-08
02
Circle
04-15
03
CircleMarker
04-15
更多文章>
Theme by Vdoing | Copyright © 2024-2025 东流 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式