• 大小: 244KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-17
  • 语言: 其他
  • 标签: prjproj4  

资源简介

ArcGIS的prj文件是一个专门用来描述坐标系投影的文件,里面定义了坐标系的名称、长短半轴、基准面、投影参数等一些其他重要的信息。proj4是C用语言编写的专门用来处理各个坐标系之间的转换的开源库。可以实现经纬度坐标转平面坐标或者两个不同的椭球体之间的坐标系转换,运算精度高,计算准确,在很多GIS项目和软件中都有使用

资源截图

代码片段和文件信息

#include 
#include 
#include “prj2proj4.h“


#include
#include 
#include 
#include   
using namespace std;

bool is_prj( wstring file_name )
{
int pos = file_name.rfind(L‘.‘);
wstring ext_name = file_name.substr( pos + 1 );
transform(ext_name.begin() ext_name.end() ext_name.begin() ::tolower); 
if ( ext_name == L“prj“ )
{
return true;
}
return false;
}

int get_all_path_list( const TCHAR* rootDir  vector&srcFiles )
{
WIN32_FIND_DATA fd;
ZeroMemory(&fd sizeof(WIN32_FIND_DATA));

HANDLE hFile;
TCHAR tmpPath[256];
TCHAR subPath[256];
ZeroMemory( tmpPath 256*sizeof(TCHAR) );
ZeroMemory( subPath 256*sizeof(TCHAR) );

BOOL bRet = TRUE;
static int nFileSize = 0 ;

//define the format of the basepath
wcscpy(tmpPath rootDir);
if(tmpPath[wcslen(tmpPath) -1] != L‘\\‘)
{
wcscat(tmpPath L“\\“);
}
wcscat(tmpPath L“*“);

hFile = FindFirstFile(tmpPath &fd);
while (hFile != INVALID_HANDLE_VALUE && bRet)
{
if (fd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY && 
wcscmp(fd.cFileName L“.“) && wcscmp(fd.cFileName L“..“))
{
wcscpy(subPath rootDir);
if(subPath[wcslen(subPath) -1] != L‘\\‘)
{
wcscat(subPath L“\\“);
}
wcscat(subPath fd.cFileName);
get_all_path_list( subPath  srcFiles );
}
else if(!wcscmp(fd.cFileName L“.“) || !wcscmp(fd.cFileName L“..“))
{

}
else
{
if ( is_prj( fd.cFileName ) )
{
nFileSize++;

wstring strdir = rootDir;
strdir += L“\\“; 
strdir += fd.cFileName;
srcFiles.push_back( strdir );
}
}
bRet = FindNextFile(hFile &fd);
}
FindClose(hFile);

return nFileSize;
}

string unicode_to_mbcs(std::wstring wstr )
{
int  len = 0;
len = (int)wstr.length();
int  ansiLen = ::WideCharToMultiByte( CP_ACP 0 wstr.c_str() -1 NULL 0 NULL NULL); 
char*  pAnsi; 
pAnsi = new  char[ansiLen+1]; 
memset(pAnsi0(ansiLen+1)*sizeof(char)); 
::WideCharToMultiByte( CP_ACP 0 wstr.c_str() -1 (LPSTR)pAnsi ansiLen NULL NULL); 
string str = pAnsi;
delete[] pAnsi;
return  str;
}

int main( int argc char* argv[] )
{
/*prj_file prg_f;
prg_f.load_doc( “E:\\接收文件\\程振冀\\Coordinate Systems\\Projected Coordinate Systems\\Gauss Kruger\\Xian 1980\\Xian 1980 3 Degree GK Zone 35.prj“ );
char* str = prg_f.generate_proj4_str( );*/

vector prj_name_list;
get_all_path_list( L“E:\\接收文件\\程振冀\\Coordinate Systems“  prj_name_list );
int file_num = prj_name_list.size();

FILE* pf = fopen( “E:\\接收文件\\程振冀\\Coordinate Systems\\prj.txt“  “w“ );
prj_file prg_f;
for ( int  i = 0 ; i < file_num ; i++ )
{
string prj_path = unicode_to_mbcs( prj_name_list.at(i));
fwrite( prj_path.c_str()  1   prj_path.size()  pf );
fwrite( “\n“  1  1  pf );

char epsg[8]={0};
prg_f.load_doc( prj_path.c_str() );
char* str = prg_f.generate_proj4_str( epsg );

fwr

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-10-26 23:19  prj2proj4\
     目录           0  2015-10-26 22:50  prj2proj4\Debug\
     文件       10850  2015-08-12 16:30  prj2proj4\Debug\BuildLog.htm
     文件      305474  2015-08-12 16:30  prj2proj4\Debug\MainCpp.obj
     文件          67  2015-08-12 16:30  prj2proj4\Debug\mt.dep
     文件         663  2015-04-08 11:24  prj2proj4\Debug\prj2proj4.exe.embed.manifest
     文件         728  2015-04-08 11:24  prj2proj4\Debug\prj2proj4.exe.embed.manifest.res
     文件         621  2015-08-12 16:30  prj2proj4\Debug\prj2proj4.exe.intermediate.manifest
     文件       35066  2015-08-11 19:35  prj2proj4\Debug\prj2proj4.obj
     文件       27954  2015-04-08 11:24  prj2proj4\Debug\prj_def.obj
     文件      494592  2015-08-12 16:30  prj2proj4\Debug\vc90.idb
     文件      290816  2015-08-12 16:30  prj2proj4\Debug\vc90.pdb
     文件        3243  2015-08-11 19:46  prj2proj4\MainCpp.cpp
     文件        8454  2015-08-11 19:34  prj2proj4\prj2proj4.cpp
     文件        2296  2015-08-11 19:34  prj2proj4\prj2proj4.h
     文件        5124  2015-07-13 16:59  prj2proj4\prj2proj4.vcproj
     文件        2025  2017-01-10 23:36  prj2proj4\prj2proj4.vcproj.Lenovo-wb.wb-admin.user
     文件        2004  2015-10-26 20:10  prj2proj4\prj2proj4.vcproj.WB.tcxt-yangzy.user
     文件        4767  2015-04-07 20:08  prj2proj4\prj_def.cpp
     文件        1072  2015-04-07 14:32  prj2proj4\prj_def.h

评论

共有 条评论

相关资源