unity C# 读取shp并生成mesh(ShpLoader使用)

这篇具有很好参考价值的文章主要介绍了unity C# 读取shp并生成mesh(ShpLoader使用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

声明 使用 :

Unity读取并解析Shapefile地图文件_SuperWiwi的博客-CSDN博客_unity读取shp

结构参考:

文件头_GIS基础工具篇01C#读写shp矢量文件_贱贱猪66的博客-CSDN博客

github:

 https://github.com/EIdeallab/ShpLoader

注意问题:拿到数据后先Arcgis打开unity C# 读取shp并生成mesh(ShpLoader使用)

1 编码格式   更多情况是数据来源自其它地方需要 先在Arcgis中查看  我拿到的是GBK (GB2312)(找了好久才主要到这个问题-主要是解析中文问题 )

.cpg文件也可以看到编码格式 

2 坐标参照系  分清楚局部坐标和世界坐标

使用:

ShapeLoader-Loader-...

想代码动态加载查看 ShapeRendererUI.cs 文件 改改就行

   if (GUILayout.Button("Load Data"))
            {
                shapeFile = LoadFiles(shpFilePath) as ShpFile;
                dbfFile = LoadFiles(dbfFilePath) as DbfFile;
            }

中文解析:

 public class DBCharacter : IElementString
    {
        public DbfFieldDiscriptor discriptor { get; set; }
        public string Value { get; set; }

        public DBCharacter(DbfFieldDiscriptor fd)
        {
            discriptor = fd;
        }

        public string numberValue()
        {
            return Value;
        }
        public long GetLength()
        {
            return discriptor.FieldLength;
        }

        public void Load(ref BinaryReader br)
        {
            //char[] rawData = br.ReadChars(discriptor.FieldLength);
            Value = Encoding.GetEncoding("GB2312").GetString(br.ReadBytes(discriptor.FieldLength));
            //Value = new string(rawData);
            //Debug.Log(Value);
        }
    }

如果不行 

 class DbfFile : IFile
    {
        private bool disposed;
        private FileStream fs;
        private BinaryReader br;

。。。
 public DbfFile(string path)
        {
            fs = File.OpenRead(path);
            br = new BinaryReader(fs, Encoding.ASCII);
        }

将dbf设置为 AsCLL

unity 打包PC 发现无法解析 原因:

unity 打包后缺失对应编码解析包 需要

推荐目录:"Editor\Data\MonoBleedingEdge\lib\mono\unityjit"  找I18N.dll和I18N.CJK.dll   其他目录没有效果

两个dll文件放进原工程的Assets文件夹下

一定要是原工程!!!!!不是打包后的执行程序!!!!!    

直接拷贝进Asset文件夹下,等待Editor导入dll文章来源地址https://www.toymoban.com/news/detail-501233.html

到了这里,关于unity C# 读取shp并生成mesh(ShpLoader使用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 1.Unity中c#代码学习(读取物体名称+位置+移动)

    Ctrl + K + C 批量注释 Ctrl + K + U 批量取消注释 Debug.Log(\\\"**\\\");输出“**”中内容 GameObject obj = this.gameObject; this表示当前指代的物品 GameObject表示游戏中物体 Debug.Log(\\\"** 物体名字:\\\" + this.gameObject.name); this.gameObject.name直接调用类名 string name = obj.name; string 是c#中的字符串类型 Debug.Log(\\\"**

    2023年04月11日
    浏览(38)
  • Unity - 导出的FBX模型,无法将 vector4 保存在 uv 中(使用 Unity Mesh 保存即可)

    备忘,便于日后自己索引 为了学习了解大厂项目的效果: 上周为了将 王者荣耀的 杨玉环 的某个皮肤的头发效果还原 所以我想直接抓模型,再还原 shader 我使用的还是以前的老方法: GPA + 夜神模拟器,具体可以查看以前的另一篇教程,具体参考:教你如何使用GPA导出模型,

    2024年02月05日
    浏览(40)
  • 【游戏开发算法每日一记】使用随机prime算法生成错综复杂效果的迷宫(C#,C++和Unity版)

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :Unity基础实战 1.首先全部判定为墙,最外的为路包裹墙( 类似于防止数组越界 ) 2.红色为它的检测范围(假设检测点在如图所示的位置)—

    2024年02月05日
    浏览(33)
  • 前端 解析压缩包,并且读取Shp生成GeoJson在MapBox上渲染

    这里需要先安装shapefile;jszip;turf npm install shapefile npm install jszip npm install @turf/turf

    2024年01月17日
    浏览(28)
  • 【Unity 3D】C#从JSON文件中读取、解析、保存数据(附源码)

    JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式存储和表示数据,简洁和清晰的层次结构使JSON成为理想的数据交换语言,易于读者阅读和编写,同时也易于机器解析和生成,并有效的提高网络传输效率 生成JSON数据实例代码如下 下面的代码将JSON中数据

    2024年02月11日
    浏览(45)
  • 教你如何使用GPA导出模型,另送一个 GPA CSV2MESH Tool in unity

    以前写过一篇:Unity - RenderDoc 抓帧导出 FBX(带UV) 我估计GPA是怕收律师函,因为如果 GPA 将所有资源一键提取,一键导出,那么可能很多开发商会告他 可以看到也好几个帖子问 GPA 官方,都是被官方忽悠回答了: UV MAPS capture GPA: No UV map support? (除了这个,我自己还搜索过还

    2023年04月09日
    浏览(31)
  • Unity网格篇Mesh(一)

    创建网格坐标 使用携程计算他们位置 利用三角形确定一个面 自动生成法线 添加纹理坐标和切线 这篇教程中我们将利用顶点和三角面创建一个网格。 原英文篇 如果你想要在Unity显示一些东西,你需要一个网格。他可以是一个3D模型从另一个程序倒入的(3dmax,maya)。它也可

    2024年02月03日
    浏览(38)
  • Unity网格篇Mesh(二)

    本文接上一遍Unity网格篇Mesh(二) 我们的网格目前处于一种特殊的情况下。因为我们到目前为止还没有给他们法线向量,默认的法线向量是(0,0,1)(垂直于屏幕向里),而我们需要的正好相反。 法线工作原理是什么呢? 法线是垂直于面的向量。我们通常使用单位长度的法向量

    2024年01月17日
    浏览(44)
  • 【Unity3D】Unity 组件 ① ( 组件 Component 概念 | Transform 组件和 Light 组件 | Mesh Filter 组件和 Mesh Renderer 组件 )

    组件 Component 是 选中 游戏物体 GameObject 后 , 在 Inspector 检查器 窗口 中 , 查看到的内容 ; 组件 Component 代表了 游戏物体 GameObject 的一种功能 ; 空物体 只有 Transform 组件 , 只能提供 坐标 , 旋转角度 , 缩放倍数 功能 ; 平行光源 物体 有 Light 组件 提供光照功能 ; 立方体 物体 有 M

    2024年02月06日
    浏览(35)
  • 【Unity】导航基本组件:Nav Mesh Agent、Off Mesh Link、Nav Mesh Obstacle

    Nav Mesh Agent 通常放在角色身上,用于实现角色的导航移动。 关于 Nav Mesh Agent 的基本使用,可以参考上一篇文章:【Unity】Unity寻路系统讲解及Navigation实际应用 Agent Type :导航类型,默认为Humanoid人类。也可以选择 Open Agent Setting 进入代理设置页面,添加自己想要的代理类型。

    2024年02月02日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包