


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、利用ArcSDE C API向SQL SERVER空间数据库中添加实体图形收藏此页 打印【IT168知识库】 摘要:本文以一个C/C+实例分步讲述了利用ArcSDE C API向空间数据库中添加实体图形的方法。 利用ArcSDE8.1 C API向空间数据库中添加实体图形大致可分为六步。步骤如下: 第一步:与空间数据库建立连接。 SE_CONNECTION handle; /空间数据库连接对象 SE_ERROR Connect_error; /错误状态 LONG rc; /执行结果状态 CHAR server30 = "LCR" /空间数据库服务器名 CHAR instan
2、ce30 = "esri_sde" /空间数据库实例名 CHAR database30 = "" /数据库名 CHAR user30 = "sa" /用户名 CHAR passwd30 = "sapassword" /密码 /* 创建连接 */ rc = SE_connection_create( server, instance, database, user, passwd, &Connect_error, &handle; /*错误检查 */ check_error (handle, NULL
3、, rc, "SE_connection_create" 第二步:建立用户定义属性表。 LONG num_cols; /列数 SE_SHAPE shape; /形 SE_ENVELOPE rect; /矩形范围 LONG part_offsets2, int_val; CHAR *attrs; /属性列 CHAR column32, table32; /列与表 SE_COORDREF coordref; /坐标系引用 SE_POINT pt10; /坐标点 SE_LAYERINFO layer; /层信息 SE_COLUMN_DEF *column_defs; /列定义对象
4、 SE_STREAM stream; /数据流 /* 创建数据流连接 */ SE_stream_create (handle, &stream; check_error (handle, NULL, rc, "SE_stream_create" /* 创建用户表 */ strcpy(table, "MYTABLE" num_cols = 1; column_defs = (SE_COLUMN_DEF * calloc (num_cols, sizeof(SE_COLUMN_DEF; strcpy (column_defs0.column_name
5、, "ATTR_COL" column_defs0.sde_type = SE_INTEGER_TYPE; /为整形列 column_defs0.nulls_allowed = TRUE; /允许为空 rc = SE_table_create(handle, table, num_cols, column_defs,"DEFAULTS" check_error (handle, NULL, rc, "SE_table_create" 第三步:创建并设置图层信息。 /* 创建层的坐标系参考 */ rc = SE_coordref_cre
6、ate (&coordref; check_error (handle, NULL, rc, "SE_coordref_create" /设置假定坐标源点与比例尺 rc = SE_coordref_set_xy (coordref,0,0,10000; check_error (handle, NULL, rc, "SE_coordref_set_xy" /分配并初始化层信息结构layer rc = SE_layerinfo_create (coordref, &layer; check_error (handle, NULL, rc,
7、"SE_layerinfo_create" /设置层的格网尺寸、允许的形类型、创建关键字和空间列 rc = SE_layerinfo_set_grid_sizes (layer,1000,0,0; check_error (handle, NULL, rc, "SE_layerinfo_set_grid_sizes" rc = SE_layerinfo_set_shape_types(layer, SE_NIL_TYPE_MASK | SE_POINT_TYPE_MASK | SE_LINE_TYPE_MASK | SE_SIMPLE_LINE_TYPE
8、_MASK | SE_AREA_TYPE_MASK | SE_MULTIPART_TYPE_MASK ; check_error(handle, NULL, rc, "SE_layerinfo_set_shape_types" rc = SE_layerinfo_set_creation_keyword (layer, "DEFAULTS" check_error (handle, NULL, rc, "SE_layerinfo_set_creation_keyword" strcpy(column, "SPATIAL_CO
9、L" rc = SE_layerinfo_set_spatial_column (layer, table, column; check_error (handle, NULL, rc, "SE_layerinfo_set_spatial_column" /* 创建层 */ rc = SE_layer_create (handle, layer, 0,0; check_error (handle, NULL, rc, "SE_layer_create" 第四步:创建图形实体对象,并设置属性与空间列。 /* 创建形 */ rc = SE_shap
10、e_create (coordref, &shape; check_error (handle, NULL, rc, "SE_shape_create" /* 将表插入数据流 */ attrs = (CHAR * malloc (sizeof(CHAR * * 2; attrs0 = "ATTR_COL" attrs1 = column; rc = SE_stream_insert_table (stream, table, 2, (const CHAR* attrs; check_error (handle, NULL, rc, "S
11、E_stream_insert_table" free (attrs; /* 设置矩形的最值并产生矩形*/ rect.minx = 5000.0; rect.miny = 1000.0; rect.maxx = 8000.0; rect.maxy = 4000.0; /生成矩形 rc = SE_shape_generate_rectangle (&rect, shape; check_error (handle, NULL, rc, "SE_shape_generate_rectangle" /* 设定形和属性列 */ int_val = 2; rc =
12、SE_stream_set_integer (stream, 1, &int_val; check_error (NULL, stream, rc, "SE_stream_set_integer" rc = SE_stream_set_shape (stream, 2, shape; check_error (NULL, stream, rc, "SE_stream_set_shape" /*插入行 */ rc = SE_stream_execute (stream; check_error (NULL, stream, rc, "SE
13、_stream_execute" /* 对面域设定坐标数组 一个中间有洞的矩形,并生成多边形 */ part_offsets0 = 0; pt0.x = 1000.; pt0.y = 1000.; pt1.x = 4000.; pt1.y = 1000.; pt2.x = 4000.; pt2.y = 4000.; pt3.x = 1000.; pt3.y = 4000.; pt4.x = 1000.; pt4.y = 1000.; pt5.x = 2000.; pt5.y = 2000.; pt6.x = 2000.; pt6.y = 3000.; pt7.x = 3000.; p
14、t7.y = 3000.; pt8.x = 3000.; pt8.y = 2000.; pt9.x = 2000.; pt9.y = 2000.; /生成多边形 rc = SE_shape_generate_polygon (10,1,part_offsets,pt,NULL,NULL,shape; check_error (handle, NULL, rc, "SE_shape_generate_polygon" /* 设定形及属性列 */ int_val = 3; rc=SE_stream_set_integer (stream, 1, &int_val; check_error (NULL, stream, rc, "SE_stream_set_integer" rc = SE_stream_set_shape (stream, 2, shape; check_error (NULL, stream, rc, "SE_stream_set_shape" /* 插入行 */ rc = SE_str
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件制作协议合同协议
- 郑州安置房购房合同协议
- 软件项目承包合同协议
- 漏水保修协议书
- 收购企业保密协议
- 退房协议书合同协议
- 汽车原厂协议书
- 消防联盟协议书
- 民事终结协议书
- 建筑工程招投标与合同管理教材
- 采购文员考试试题及答案
- 隆德县招聘城市社区工作者笔试真题2024
- 2025年河南郑州航空港科创投资集团有限公司招聘笔试参考题库含答案解析
- 北京市一零一中学2024-2025学年高三适应性调研考试语文试题含解析
- 模具维护保养培训
- 2025年中考语文常考作文押题《10个主题+15篇范文》
- 维护国家文化安全
- 儿童流行性感冒疫苗预防和抗病毒药物应用的实践指南(2024版)解读课件
- 高效时间管理培训的技巧
- 2025年河南郑州航空港科创投资集团有限公司招聘笔试参考题库附带答案详解
- 2025年形势与政策-特朗普2.0时代中美关系及国际形势变化-课件
评论
0/150
提交评论