那位有shape文件生成的c++代码(或第3方库)?

djliu221 2008-09-11 09:48:46
那位有shape文件生成的c++代码(或第3方库)?
...全文
159 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjtp 2009-01-17
  • 打赏
  • 举报
回复
reference open source :shapelib
jmzhj 2009-01-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 AsongWam 的回复:]
//创建SHAPE图层函数
void CCreateShapeDlg::CreateShpFile(CString &strPath, CString &strFile)
{
//创建shp,

UpdateData();
CComBSTR bsFolder=strPath;
CComBSTR bsName=strFile; //不要加Shp后缀
CComBSTR bsShapeFieldName=strFile;
m_geoType = (esriGeometryType)atoi(m_strGeotype);

IFeatureWorkspacePtr ipFeatureWork;
IWorkspacePtr ipWorkSpace;
IWorkspaceFactoryPtr ipWorkFact(__uu…
[/Quote]

谢谢分享.
AsongWam 2008-09-12
  • 打赏
  • 举报
回复
AE的二次开发,但要引入所有需要用到的接口的组件库.
AsongWam 2008-09-12
  • 打赏
  • 举报
回复
这是用VC++下AE开发的,编译以后可以脱离ARCGIS平台.
djliu221 2008-09-12
  • 打赏
  • 举报
回复
不用arcgis,脱离任何商业平台,最好用才c\c++直接生成
zjtp 2008-09-11
  • 打赏
  • 举报
回复
?
AsongWam 2008-09-11
  • 打赏
  • 举报
回复
//创建SHAPE图层函数
void CCreateShapeDlg::CreateShpFile(CString &strPath, CString &strFile)
{
//创建shp,

UpdateData();
CComBSTR bsFolder=strPath;
CComBSTR bsName=strFile; //不要加Shp后缀
CComBSTR bsShapeFieldName=strFile;
m_geoType = (esriGeometryType)atoi(m_strGeotype);

IFeatureWorkspacePtr ipFeatureWork;
IWorkspacePtr ipWorkSpace;
IWorkspaceFactoryPtr ipWorkFact(__uuidof(ShapefileWorkspaceFactory));
ipWorkFact->OpenFromFile(bsFolder,NULL,&ipWorkSpace);
ipFeatureWork = ipWorkSpace;

IFieldsPtr ipFields(__uuidof(Fields));
IFieldsEditPtr ipFieldsEdit; //用于编辑Fields
ipFieldsEdit = ipFields;

IFieldPtr ipField(__uuidof(Field));
IFieldEditPtr ipFieldEdit;
ipFieldEdit = ipField;

ipFieldEdit->put_Name(bsShapeFieldName);
ipFieldEdit->put_Type(esriFieldTypeGeometry);

IGeometryDefPtr ipGeoDef(__uuidof(GeometryDef));
IGeometryDefEditPtr ipGeoDefEdit;
ipGeoDefEdit = ipGeoDef;
ipGeoDefEdit->put_GeometryType(m_geoType);
// ISpatialReferencePtr sr(__uuidof(UnknownCoordinateSystem));

ISpatialReferencePtr ipSpatialRefe(__uuidof(GeographicCoordinateSystem));
// IGeographicCoordinateSystemPtr gcs(__uuidof(GeographicCoordinateSystem));
IGeographicCoordinateSystemPtr ipGeographCoorSys;
ipGeographCoorSys = ipSpatialRefe;

IGeographicCoordinateSystemEditPtr ipGeographCoorSysEdit;
ipGeographCoorSysEdit = ipGeographCoorSys;

VARIANT var1,var2,var3;
CComBSTR bstr;

bstr = m_strSparef;
var1.vt=VT_BSTR;
var1.bstrVal=bstr;//esriSRGeoCS_WGS1984;
var2.vt=VT_BSTR;
var2.bstrVal=bstr;
var3.vt=VT_NULL;

ipGeographCoorSysEdit->Define(&var1,&var2,&var3,&var3,&var3,&var3,&var3,&var3);

ipSpatialRefe->SetDomain(0,21474.83645,0,21474.83645);
ipSpatialRefe->SetFalseOriginAndUnits(0,0,100000);


ipGeoDefEdit->putref_SpatialReference(ipSpatialRefe);

ipFieldEdit->putref_GeometryDef(ipGeoDef);
ipFieldsEdit->AddField(ipField);

//添加其他字段
ipField = NULL;
ipField.CreateInstance(CLSID_Field);
ipFieldEdit = ipField;
ipFieldEdit->put_Length(30);
ipFieldEdit->put_Name(L"MiscText");
ipFieldEdit->put_Type(esriFieldTypeString);

ipFieldsEdit->AddField(ipField);

IFeatureClassPtr ipFeatureCls;
ipFeatureWork->CreateFeatureClass(bsName,ipFields,NULL,NULL,esriFTSimple,bsShapeFieldName,L"",&ipFeatureCls);

}

这是创建SHP文件的函数,怎么用,你自己再琢磨一下吧。

2,158

社区成员

发帖
与我相关
我的任务
社区描述
它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
社区管理员
  • 地理信息系统
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧