GDAL在Unity3D中的使用(一)
  ZcJgkb1g5qMe 2023年11月02日 161 0

1.上官网 选择对应版本  https://www.gisinternals.com/query.html?content=filelist&file=release-1930-x64-gdal-3-6-3-mapserver-8-0-0.zip

选择Stable Releases 然后选择对应得版本

GDAL在Unity3D中的使用(一)_Unity3d

点进来后,一般下载第一个

GDAL在Unity3D中的使用(一)_GDAL_02

  1.   把图中dll放到 Unity的Assets文件夹下面我们之前建立的Plugins文件夹下.  

 网上看到说只放这个文件夹下的dll就行  但是我实际测试中不可以,还需要放  bin目录下所有的dll,这样运行才不会报错

GDAL在Unity3D中的使用(一)_GDAL_03

3.进行测试

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GDALTest : MonoBehaviour
{
    void Start()
    {
        Gdal.AllRegister();
        Dataset ds = Gdal.Open(@"D:\mayawenunity\GDALTest\tin_TinRaste11.tif", Access.GA_ReadOnly);
        int w = ds.RasterXSize;
        int h = ds.RasterYSize;
        print("image width=" + w + ",height=" + h);
    }
}


 4.发现还会有报错(进行坐标系转换的时候),需访问压缩包中的一个数据库

GDAL在Unity3D中的使用(一)_Unity3d_04

5.将proj.db放到unity中

GDAL在Unity3D中的使用(一)_GDAL_05

重新测试:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GDALTest : MonoBehaviour
{
    [SerializeField] string PROJSearchPath = Application.streamingAssetsPath + "/Data/proj9";
    void Start()
    {
        Gdal.AllRegister();
         Osr.SetPROJSearchPath(PROJSearchPath);

        Dataset ds = Gdal.Open(@"D:\mayawenunity\GDALTest\tin_TinRaste11.tif", Access.GA_ReadOnly);
        int w = ds.RasterXSize;
        int h = ds.RasterYSize;
        Debug.Log("image width=" + w + ",height=" + h);
    }
}

至此报错全部解决.

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

ZcJgkb1g5qMe