台湾高雄三维倾斜摄影模型3DTiles样例数据介绍

台湾一直是国内研究的重点方向,最主要的原因是祖国统一大业尚未完成,加上当前国际局势比较复杂,台湾及周边有众多不稳定因素,美国、日本等国家与台湾地区当局一直保持着紧密关系,成为祖国统一进程的一大阻碍。在国内众多研究台湾的方向中,台湾地理空间环境研究一直是热点方向,这也让我的产品研发方向有一定的侧重点,一方面谷歌等全球级倾斜摄影数据转换成3DTiles和OSGB格式,另一方面,收集转换台湾地区数据,包括地形、建筑模型以及倾斜摄影数据,能够加载到我们常用的GIS或三维可视化平台上来。台湾的地形和建筑模型数据都有介绍,之前发布过台湾10米DEM数据和2024年全台湾建筑模型数据,对于台湾的三维倾斜摄影模型,我发布了3DTiles转换工具 V1.1版以及OSGB V2.0版,除了谷歌地球上台北、台中、桃园这三个地区的数据外,台湾其他地区的倾斜摄影都没有相关介绍。

一、开发背景

之前一直未向大家介绍台湾其他地区的三维倾斜摄影模型数据,主要是谷歌三维倾斜摄影转换成3DTiles和OSGB研发工作比较复杂,产品迭代持续了比较长的时间,针对台湾其他地区三维倾斜摄影模型数据转换工作没有开展。上次发布了谷歌三维倾斜摄影OSGB数据V2.0版本后,便紧锣密鼓开始进行这项工作的预研与研发。台湾的倾斜摄影数据主要都是台湾官方测绘部门进行生产及发布使用的,出于数据保密的需要,官方发布时采用了自定义二进制数据,其显示也并非Cesium等常用三维GIS平台。因此数据既非我们常用的3DTiles、OSGB等格式,也无法在Cesium和OsgEarth上加载使用。我经过两个月的大量预研与研发,在产品研发截止日期前,顺利解决了诸多技术难题,将台湾官方公开的三维倾斜摄影数据转成了我们常用的3DTiles格式,并成功加载到Cesium上显示。

二、数据范围

目前台湾官方公开的三维倾斜摄影数据覆盖地区约有100平方公里,包括新竹、台中、台南、高雄、台东、花莲等县市,比较遗憾,未有覆盖整个县市的数据发布,主要以样例数据为主,覆盖面积大小不等,有的覆盖整个岛屿,比如兰屿岛,做到了全岛覆盖,大约有50平方公里,有的只有2平方公里,总体而言,公开的数据是越来越多,覆盖区域也是越来越大。

三、数据介绍

这次给大家介绍的是台湾高雄青埔车站及周边区域的3DTiles数据。数据分辨率能够达到3cm,比谷歌地球的三维倾斜摄影数据还要高,主要覆盖台湾高雄青埔车站和周边区域,面积有2平方公里,面积虽小,但是数据量高达29.5GB。

四、数据使用

前面文章中已经介绍过,3DTiles数据都是静态文件,使用Nginx直接静态代理即可,无需部署发布程序,这里分享一个nginx.conf里Server的样例,大家可以直接粘贴过去,修改root对应的路径。

xml 复制代码
server
  {
    listen       8804;
    server_name  localhost;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    add_header Access-Control-Allow-Origin "$http_origin";
    add_header Access-Control-Allow-Credentials true;
    add_header Access-Control-Allow-Methods 'GET, POST,OPTIONS';
    add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
    if ($request_method = 'OPTIONS') {
      return 204;
    }

        location / {
      autoindex on;
            root   D:/GXQP-3DTILES/;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
  }

同时在前端Cesium上接入也比较容易,创建Cesium3DTileset对象,加入到pirmitives,同时需要注意的是,depthTestAgainstTerrain要设置成false,否则会有地形遮挡显示问题。下面是示例代码:

javascript 复制代码
let tileset = await Cesium.Cesium3DTileset.fromUrl(
    "http://localhost:8804/tileset.json");
  viewer.scene.primitives.add(tileset);
  viewer.scene.globe.depthTestAgainstTerrain = false;

我将数据使用Nginx进行代理发布后,加载到CesiumJS上进行可视化展示,Cesium是1.121.1版本,底图是ESRI卫星影像瓦片,显示效果请看下面截图。



五、结语

受限于官方数据来源,目前数据覆盖区域范围比较小,还没形成比较大的使用价值,象征意义大于使用价值,但是我已经开发好了转换工具,待官方发布新的数据,我会第一时间进行转换,同时也会对转换工具进行更新迭代。

相关推荐
海棠AI实验室18 分钟前
机器学习基础算法 (一)-线性回归
人工智能·python·机器学习
星霜旅人19 分钟前
均值聚类算法
人工智能·机器学习·支持向量机
长风清留扬21 分钟前
机器学习中的密度聚类算法:深入解析与应用
人工智能·深度学习·机器学习·支持向量机·回归·聚类
看星猩的柴狗23 分钟前
机器学习-正则化技术
人工智能·机器学习
程序员非鱼23 分钟前
深度学习任务简介:分类、回归和生成
人工智能·深度学习·分类·回归·生成
dwjf32125 分钟前
机器学习(二)-简单线性回归
人工智能·机器学习·线性回归
AI_Mind26 分钟前
Gemini 2.0:面向智能体时代的全新 AI 模型
人工智能·搜索引擎
i查拉图斯特拉如是1 小时前
基于MindSpore NLP的PEFT微调
人工智能·自然语言处理
mahuifa1 小时前
QtCreator配置github copilot实现AI辅助编程
人工智能·ai编程·github copilot·qtcreator
千穹凌帝1 小时前
基于深度学习多图像融合的屏幕缺陷检测方案
人工智能·深度学习·数码相机