地图投影与球面路线对比 / 26 三维地球、大圆路径与投影比较工作台 直接打开 双击 index.html。地球模型、真实低分辨率陆地、绘图和字体全部内嵌,运行无需联网。默认显示东京→温哥华→旧金山,球面总距 8836.989399 km。 完成一条自己的路线 1. 在航点表中填写名称、纬度和经度。点击某行选择它,可复制、上下排序、删除或反向整条路线。最多 30 点。经纬度也可以 CSV 批量导入。 2. “看整条路线”调整地球视角;选定一个航点后可“定位所选点”。拖动球体或使用方向与缩放按钮。三维路线略高于表面以便看清,长度始终按球面计算。 3. 选择 Lambert 圆柱等面积、Mercator 或等距圆柱;改变中央经线,可以让路线跨过或避开地图的裁切边界。相同路线、纬度探针和航点同步到地图。 4. 调整“纬度探针”,比较东西尺度、南北尺度与面积比。地图中的椭圆是该纬度无穷小圆的局部形变示意,不是假装地球上有同样大小的实体物体。 5. 导出路线 GeoJSON、分段/航点/插值 CSV、地图 PNG 或当前地球 PNG。保存 JSON 可以恢复全部航点与显示条件。 航点 CSV UTF-8,支持 BOM、双引号内逗号与换行。列名为 name,lat,lon;空数字不当作 0。示例: name,lat,lon 东京,35.6762,139.6503 温哥华,49.2827,-123.1207 旧金山,37.7749,-122.4194 纬度 −90° 至 90°,经度 −180° 至 180°;名称最多 60 个 UTF-16 单元;文件最大 256 KiB。地图添加按钮打开后,可点地图按实际逆投影新增航点,再到表里精调。 球面模型 默认半径为 6371.0088 km,可改成 100 至 10000 km。两点用球面单位向量确定中心角,再计算 R×中心角;初始航向从正北顺时针。航向会随行程变化,分段表报告的不是一条恒向线。 精确重合点的距离为 0,但方向未定义。从极点出发也不提供伪精确的初始航向。对跖点最短距离可确定为 πR,却没有唯一最短弧;极近对跖点数值对方向敏感。工具明确报告并要求增加中间点,此时完整路线 GeoJSON 不可导出。 大圆插点的最大间距由“采样步长”设置(20 至 1000 km)。跨反经线时,在球面弧上二分定位边界交点,正确切成 GeoJSON 的多段线。经过地理极点的路线会按入射/出射经线拆开,避免在平面上产生横跨全图的伪连接。 这是一套球体几何工具,不是 WGS84 椭球测地线、气象航路、避障或真实飞行规划。 三种地图的尺度 设相对中央经线为 λ,纬度为 φ。 Mercator:x=λ,y=asinh(tanφ)。东西/南北尺度都是 secφ,局部面积比为 sec²φ。为避免极点无穷,显示限制在 ±85°;CSV/GeoJSON 不裁掉真实极地路线。 Lambert 圆柱等面积:x=λ,y=sinφ。东西尺度 secφ,南北尺度 cosφ,两者乘积为 1。高纬度形状会横向拉长,但局部面积保持。 等距圆柱:x=λ,y=φ。东西尺度 secφ,南北尺度 1,面积比 secφ;“等距”不表示任意方向和任意地点的距离都准确。 图面使用相同的 x/y 投影单位像素比例,不为了装进固定卡片而额外横向或纵向拉伸。因此 Mercator 输出会更高,等面积输出较扁。例:60° 纬度时,Mercator 的尺度为 2、2、4;等面积为 2、0.5、1;等距圆柱为 2、1、2。 地图与许可 陆地来自 Natural Earth 1:110m 陆地 GeoJSON,127 个多边形要素,属于公共领域。它是真实低分辨率全球陆地,不包含用于导航的精确海岸或行政边界。制作中使用 Mapbox Earcut 2.2.4 将多边形(含洞)三角化,再细分贴合球面;其 ISC 许可已保留。最终 HTML 内嵌转换后的 23576 个陆地顶点,运行时不请求地图服务。 导出与恢复 GeoJSON 的坐标顺序是经度、纬度,保留球体半径、采样步长与总距离等属性;多航段大圆由密集折线近似,GeoJSON 本身不会自动把相邻点解释为球面弧。 航点 CSV 可以再次导入;分段 CSV 包含起终点、中心角、距离、初始航向与诊断;插值 CSV 包含每段进度与坐标。完整 JSON 包含所有输入、选择与投影状态。空文档可以保存,尚无路线时不会制造默认距离。 撤销/重做最多 36 次。浏览器暂存提供便利,独立 JSON 才是可带走的备份。异步文件读取使用独立世代和文档版本;后来的输入优先。WebGL 失败时地图和数值功能仍可用。 实际验证范围 9 项模型检查覆盖四分之一圆周、独立 Haversine 对照、近重合、对跖点、反经线、极点、投影局部尺度、最大 30 点回读和无效输入。地图及三维场景来自最终 HTML 的同一模型、Canvas 和原生 EGL 场景。没有使用浏览器截图;DOM/CSS、图像下载对话框、移动设备与本地双击冷启尚未实机验收。 资料 Natural Earth 许可:https://www.naturalearthdata.com/about/terms-of-use/ 原始陆地:https://github.com/nvkelso/natural-earth-vector/blob/master/geojson/ne_110m_land.geojson PROJ Mercator:https://proj.org/en/stable/operations/projections/merc.html PROJ 等面积:https://proj.org/en/stable/operations/projections/cea.html 球面公式作者资料:https://www.movable-type.co.uk/scripts/latlong.html GeoJSON RFC 7946:https://www.rfc-editor.org/rfc/rfc7946 Earcut:https://github.com/mapbox/earcut Noto Sans CJK SC 字体子集及完整 SIL OFL 1.1 许可内嵌。