ArcGIS Engine 批量移动三维模型
分享
模型制作的过程中没有带坐标,只有一个带有各个模型名称和质心坐标的EXCEL表,这时候一个一个配准显然工作量过大。通过AE写的一个读取excel批量移动三维模型的功能可以大大简化这个过程。
文章来源:http://blog.csdn.net/sydbc/article/details/17681375
private void move3D(string a,double x,double y)
{
IFeatureWorkspace pFWS = pws as IFeatureWorkspace;
IFeatureClasspFC_L = pFWS.OpenFeatureClass(a);
IFeature pfeature = pFC_L.GetFeature(1);
IWorkspaceEdit pwe = pws as IWorkspaceEdit;
pwe.StartEditOperation();
IGeometry pGeo = pfeature.Shape;
ITransform3Dptran = pGeo as ITransform3D;
ptran.Move3D(x,y,0);
pfeature.Store();
pwe.StopEditOperation();
}
private voidbutton1_Click(object sender, EventArgs e)
{
IWorkspaceFactory pwf = new FileGDBWorkspaceFactory();
//string s =@”C:UsersyaoDocumentsArcGISDefault.gdb”;
pws =pwf.OpenFromFile(GDBpath, 0);
//在这里传参数,第一个参数是模型名称,第二个参数是X坐标移动值,第三个是Y坐标移动值,单位是经纬度
DataSeto=LoadDataFromExcel(Excelpath);
try
{
for (int i = 0; i < oo.Tables[0].Rows.Count; i++)
{
string name = Convert.ToString(oo.Tables[0].Rows[i][0]);
double x = Convert.ToDouble(oo.Tables[0].Rows[i][1]);
double y = Convert.ToDouble(oo.Tables[0].Rows[i][2]);
move3D(name, x, y);
}
MessageBox.Show(“ok”);
}
catch(Exception)
{
MessageBox.Show(“错误”);
}
}
public static DataSetLoadDataFromExcel(string filePath)
{
try
{
string strConn;
//strConn = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + filePath +“;Extended Properties=”Excel 8.0;HDR=False;IMEX=1″”;
strConn = “Provider=Microsoft.Ace.OleDb.12.0;” + “data source=” + filePath +“;Extended Properties=”Excel 12.0; HDR=NO; IMEX=1″”; //此连接可以操作.xls与.xlsx文件
OleDbConnection leConn = new OleDbConnection(strConn);
OleConn.Open();
String sql = “SELECT * FROM [Sheet1$]“;//可是更改Sheet名称,比如sheet2,等等
OleDbDataAdapter leDaExcel = new OleDbDataAdapter(sql, OleConn);
DataSet leDsExcle = new DataSet();
OleDaExcel.Fill(OleDsExcle, “Sheet1″);
OleConn.Close();
return OleDsExcle;
}
catch(Exception err)
{
MessageBox.Show(“数据绑定Excel失败!失败原因:” + err.Message,“提示信息”,
MessageBoxButtons.OK, MessageBoxIcon.Information);
return null;
}
}[/i][/i][/i]
文章来源:http://blog.csdn.net/sydbc/article/details/17681375
0 个评论
相关问题
- 如何优雅的使用ArcGIS知乎?
- 建设ArcGIS知乎平台的目和意义?
- ArcGIS知乎社区改进意见征集
- 【抽奖结果已出】ArcGIS知乎社区活动 之 你不知道的地理空间革命【转发分享有奖】【附奖品寄送照片】
- 苹果系统下可以使用arcgis 吗?
- arcgis版本兼容性
- 请问ArcGIS适合在局域网内用javaweb做二次开发吗?
- 请问大神们,怎么用ArcGIS做城镇间经济联系强度的图?
- ArcGIS如何求栅格图像的“质心”
- 在Visual studio 2015 中使用 Arcgis API for JavaScript v3.16 如何实现代码智能提示?
- 安装arcgis server 需要不需要安装网络服务器(如IIS和Apache)和.Net Frameworkma?