跳到主要内容

🌍 Flywave.gl

CI Code Coverage Twitter

一个基于 TypeScript 构建的开源 3D 地图渲染引擎

使用 WebGL 和 Three.js 创建高性能、可扩展的 3D 地图可视化解决方案

快速开始 · 文档 · 示例


项目简介

flywave.gl 是一个基于 TypeScript 构建的开源 3D 地图渲染引擎。该项目采用模块化 monorepo 架构,旨在提供一个高性能、可扩展且模块化的 3D 地图渲染解决方案。

您可以使用此引擎来:

  • 🌍 开发视觉上吸引人的 3D 地图 - 利用 WebGL 技术创建沉浸式地图体验
  • 🎨 使用 WebGL 创建高度动画和动态的地图可视化 - 基于流行的 three.js
  • 🎨 创建可动态切换的主题地图 - 支持多种地图样式和主题
  • 通过高性能的地图渲染和解码创建流畅的地图体验 - Web Workers 并行化 CPU 密集型任务
  • 🔧 模块化设计地图 - 可以根据需要交换模块和数据提供者

系统截图

球面视图地形渲染3D Tiles渲染
后期处理交互控制平面地图
大气效果动画系统光照系统
新功能 1新功能 2新功能 3

文档

快速开始

环境要求

  • Node.js >= 22.15.0 (检查命令: node --version)
  • pnpm >= 9.0.0 (检查命令: pnpm --version)

安装

使用 pnpm (推荐):

pnpm add @flywave/flywave.gl

或使用 npm:

npm install @flywave/flywave.gl

代码中使用

import { MapView, GeoCoordinates, sphereProjection } from "@flywave/flywave.gl";

const mapView = new MapView({
projection: sphereProjection,
target: new GeoCoordinates(36, 118),
zoomLevel: 6,
canvas: document.getElementById("mapCanvas") as HTMLCanvasElement
});

核心功能

  • 🚀 高性能渲染: 利用 WebGL 和现代图形技术实现流畅的 3D 地图渲染
  • 🔧 模块化设计: 可以根据需要选择和组合不同的功能模块
  • 🎨 可扩展主题: 支持动态切换和自定义地图主题
  • 🗺️ 多数据源支持: 支持多种地图数据源格式
  • 🖱️ 丰富的交互功能: 提供完整的地图交互和控制功能
  • 🌍 多种投影方式: 支持球面、平面和椭球投影
  • 🏔️ 地形支持: 内置数字高程模型 (DEM) 支持

许可证

Copyright © 2022-2025 Flywave Project Authors

Licensed under the Apache License, Version 2.0.