Skip to content

sxguojf/three-tile-doc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 

Repository files navigation

three-tile

轻量级三维瓦片地图开发框架

GitHub stars GitHub forks npm version npm downloads

在线文档 | GitHub 仓库 | 问题反馈

一、简介

three-tile 是一个开源的轻量级前端三维瓦片框架,基于 threejs 使用 TypeScript 开发,提供三维地形模型,能轻松给你的应用增加三维瓦片地图。经过数十版迭代,框架功能、效果能够满足生产环境使用,已在多个项目中得到验证和应用。

three-tile 更像是游戏开发中的 LOD 地形,但它可以使用地图服务商提供的数据渲染地图。

::: warning 免责声明 本框架不含任何地图数据,示例和演示程序中使用的地图均为直接挂接第三方数据,并不代表本开发框架立场。开发者请遵循相关法律规定使用合法地图。 :::

二、特性

特性 说明
轻量级 打包后(不包括插件)不到70KB(zip:28KB),轻松集成到你的项目中
速度快 资源占用做到极致优化,内存占用少,渲染速度快,核显也能轻松达到60fps
依赖少 目前仅 threejs(V0.171)一个外部依赖,各项功能均自主实现
易扩展 插件式架构,瓦片数据加载、解析、建模、渲染过程均与核心独立,扩展性强
使用简单 熟悉 threejs 基本上没有学习成本

三、应用场景

1. 给现有应用增加地形

在 threejs 示例中,大部分简单应用使用一个平面作为地面,如果能把平面换为真实地形,效果立马提升。仅需三步:

  1. 定义地图数据源
  2. 创建地图模型
  3. 地图模型加入三维场景

2. 简单的 WebGIS

three-tile 地图模型可直接使用主流瓦片数据源,渲染出逼真的地形;提供地理坐标(经纬度海拔高度)到三维场景坐标的转换,能将地图元素(模型、标签)叠加在指定地理位置。

3. 游戏开发

完美支持 threejs 内置的各种控制器,仅更换控制器,即可实现第一人称、飞行等游戏功能。

4. 数据可视化

大气、卫星云图、风场动画、体渲染等数据可视化场景。

四、快速开始

安装

npm 方式引入

npm i three -S
npm i three-tile -S

Script 方式引入

<script type="importmap">
    {
        "imports": {
            "three": "https://unpkg.com/three@0.171.0/build/three.module.js",
            "three-tile": "https://unpkg.com/three-tile@0.11.10/dist",
            "three-tile/plugin": "https://unpkg.com/three-tile@0.11.10/dist/plugin"
        }
    }
</script>

使用

import * as THREE from "three";
import * as tt from "three-tile";
import * as plugin from "three-tile/plugin";

// 创建地图
const map = tt.TileMap.create({
    // 影像数据源
    imgSource: new plugin.ArcGisSource(),
    // 地形数据源
    demSource: new plugin.ArcGisDemSource(),
});
// 地图旋转到xz平面
map.rotateX(-Math.PI / 2);

// 初始化场景
const viewer = new plugin.GLViewer("#map");
// 地图添加到场景
viewer.scene.add(map);

五、地图数据源支持

内置支持主流瓦片地图服务:

  • ArcGIS
  • Mapbox
  • Bing
  • Google
  • 天地图
  • 高德
  • 腾讯

同时支持自定义瓦片数据源扩展。

六、API 文档

七、应用

基础

  • 介绍 - three-tile 是什么、特点、应用场景
  • 快速开始 - 安装和基本使用

示例 (38个)

分类 示例
基础功能 获取鼠标位置 · 获取加载信息 · 设置地图缩放 · 自定义地图源
地图显示 假地球 · 指南针 · 限制相机高度 · 天空盒
地形控制 添加网格 · 地形缩放 · 限制平移 · 设置地图边界
材质效果 添加阴影 · CSS滤镜 · 添加天空 · 添加水面
数据叠加 GeoJSON · MVT · WMS源 · CSS2D标签
模型加载 添加模型 · 图标标注 · Logo标注 · 白色模型
地形特效 蒙版 · 单张DEM · 单张影像 · 创建孔洞 · 多边形孔洞
场景配置 背景 · 切换控制器 · 地面组 · 2D地图
高级应用 非地图瓦片 · 3DTiles渲染 · SplatLuma · SplatDrei

应用案例 (7个)

案例 说明
第一人称 第一人称视角漫游
飞行控制 自由飞行模式
行走漫游 地面行走漫游
卫星云图渲染 三维云图展示
等高线 地形等高线
大气效果 大气渲染效果
GeoJSON 3D GeoJSON三维建筑物展示

八、相关链接

九、许可证

MIT License

About

three-tile document 开发文档

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors