README.md

    基于Three.js实现的3D地图点位分布情况

    应用使用three.js实现点位在3D地图上的立体分布情况。以台北设计公司点位分布为例,实现公司点位分布,根据公司所在楼层高度显示,按照公司类型采用不用颜色渲染展示。可以根据类型过滤显示和鼠标移入查看公司属性信息。

    一、效果展示

    app

    二、核心实现

    1、地形图切片加载原理;

    2、经纬度坐标、Web墨卡托、切片顶点坐标之间的转换;

    3、空间数据经纬度和webgl空间坐标之间的转换。

    三、实现步骤

    数据准备

    地形图:地形图栅格切片处理

    设计公司位置信息:空间数据geojson文件存储

    开发应用

    1、应用采用nuxt3搭建,为什么呢?没有为什么,就是最近再用它做项目,对此应用影响不大;(由于是小型应用,对应用框架没有过多配置)

    2、引入three.js、camera-controls核心依赖;

    3、创建webgl场景;

    4、使用地形图切片原理请求切片作为纹理加载到场景中,其中需要做一系列坐标转换,经纬度转Web墨卡托、Web墨卡托转像素坐标;

    5、读取设计公司空间点位,将经纬度坐标转换成webgl空间坐标,通过楼层渲染点高度,公司类型设置不同材质颜色,渲染在场景中;

    6、增加场景旋转、过滤、鼠标移入点位显示属性操作,至此完成应用展示。

    四、其他说明

    欢迎交流,欢迎star,有问题提交Issue。

    项目简介

    云 IDE 应用挑战赛是由 CSDN 自主策划的轻量级挑战赛事。参赛者可在云 IDE 上自动拉取代码并在线运行、预览、提交代码,赛事所有的事项都可以在云 IDE 内一站式完成。比赛不对作品提交形式作限制,参赛者可以尽情发挥自己的想象力。

    具体参赛要求及赛事安排,详见左侧大赛介绍。

    发行版本

    当前项目没有发行版本

    贡献者 5

    慢慢走~ @weixin_48029895
    View Design @viewdesign1
    6 636330faf41fcd5b556fd4b5 @636330faf41fcd5b556fd4b5
    C cpongo2 @cpongo2

    开发语言

    • JavaScript 77.2 %
    • Vue 22.3 %
    • TypeScript 0.5 %