MFC读取shp格式文件坐标问题

我想用mfc读取shp文件并进行显示,但是发现程序读出来的点的坐标值和arcmap中用识别工具查看点属性得到的坐标值完全不相同,这是怎么回事呢?如果是因为坐标转换的问题,那么应该怎么转换呢?
已邀请:

刘锋

赞同来自: Meteor_141

你怎么也得把相关的代码发出来,你有代码都找不到原因,何况让大家猜,这个难度你懂得,还是把相关的代码贴出来吧。

朱新颖

赞同来自:

有没有进行动态投影啊?就是地图的空间参考和图层是否一致?

Meteor_141 - 95后大学生

赞同来自:

     CFile fileText;
    int filecode;
    int unused;
    int filelength;
    int version;
    int shapetype;
    double xmin,ymin,xmax,ymax,zmin,zmax,mmin,mmax;
    int RecordNum;
    int Contentlength;
    int shapetype1;
    double *x,*y;//x,y坐标数组
    if(fileText.Open("C:\\Users\\Metor\\Desktop\\arcgis编程测试\\点要素.shp", CFile::modeRead))
    {
        CArchive ar(&fileText, CArchive::load);
        ar>>filecode;
        filecode=BigToLittle(filecode);
        for(int i=0;i<5;i++)
            ar>>unused;
        ar>>filelength;
        filelength=BigToLittle(filelength);
        ar>>version;
        ar>>shapetype;
        ar>>xmin>>ymin>>xmax>>ymax>>zmin>>zmax>>mmin>>mmax;
        ymin*=-1;
        ymax*=-1;
        ar>>RecordNum;
        RecordNum=BigToLittle(RecordNum);
        ar>>Contentlength;
        Contentlength=BigToLittle(Contentlength);
        ar>>shapetype1;
        x=new double[Contentlength];
        y=new double[Contentlength];
        int a=sizeof(double);
        for(i=0;i<Contentlength;i++)
        {
            
            ar>>x[i];
            ar>>y[i];
        }
        ar.Close();                 
        fileText.Close();
    }

要回复问题请先登录注册