当前位置: 首页 > news >正文

公司网站建设gghhhj12306网站做的好丑

公司网站建设gghhhj,12306网站做的好丑,深圳公司名称核准查询,室内设计说明500字简约#xfeff;#xfeff;GDAL(Geospatial Data AbstractionLibrary)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。本文将使用GDAL/OGR库读写Postgresql数据库中的表#x…GDAL(Geospatial Data AbstractionLibrary)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。本文将使用GDAL/OGR库读写Postgresql数据库中的表代码执行环境在ubuntu12.04直接上代码#include /usr/include/gdal/ogrsf_frmts.h#include /usr/include/gdal/ogr_feature.h#include /usr/include/gdal/ogr_geometry.h#include /usr/include/gdal/gdal_priv.h/////使用OGR读Postgresql///int getFeature( vector RoadList //RoadRec是自定义数据结构){OGRRegisterAll();const char* filepath PG:dbnametest host172.0.0.1 port5432 userpostgres passwordpostgres;const char* drivename Postgresql; //标明是Postgresql数据库操作const char* ptablename roadlist;//数据表名称 table nameOGRSFDriver* pdriver NULL;OGRLayer* player NULL;OGRDataSource* pDS NULL;//注册驱动这样ogr就知道即将打开的是什么类型的文件pdriver OGRSFDriverRegistrar::GetRegistrar()-GetDriverByName(drivename);if ( pdriver NULL ) {return FAILURE;}//驱动注册完毕打开数据库pDS pdriver-Open(filepath,0);if ( NULL pDS ) {return FAILURE;}//打开数据库中的数据表player pDS-GetLayerByName(ptablename);if ( NULL player ) {return FAILURE;}//OGRFeature*相当于指向数据表中一条记录的指针根据它可以获取每一个字段OGRFeature* pogrfeature NULL;player-ResetReading();int gid 0;//循环遍历每一条记录这里的遍历是按照表中数据的存储顺序遍历//并不会按照主键唯一值顺序遍历这和sql的select结果的顺序不一样//想要一样应该创建索引并将表数据按索引顺序存储/*CREATE INDEX roadlist_gid_idxON roadlistUSING btree(gid);cluster roadlist using roadlist_gid_idx;*/while( (pogrfeature player-GetNextFeature()) ! NULL ){gid;//获取一条记录中的几何属性字段的引用OGRGeometry *pgeo pogrfeature-GetGeometryRef();if ( NULL ! pgeo ){//判断一下是不是自己想要的类型这里我的数据是道路line数据if ( wkbMultiLineString pgeo-getGeometryType() || wkbLineString pgeo-getGeometryType() ){OGRGeometry* pgeometry pgeo;//单独处理一下multilinestring的情况if ( wkbMultiLineString pgeo-getGeometryType() ){OGRMultiLineString* pmultilinestring (OGRMultiLineString*)pgeo;if( 1 ! pmultilinestring-getNumGeometries() ){return FAILURE;}pgeometry pmultilinestring-getGeometryRef(0);}//定义OGRLineString类型指针指向几何数据//这样就可以使用OGRLineString提供的函数接口了OGRLineString* pline (OGRLineString *)pgeometry;int pointnum pline-getNumPoints();RoadRec tmp;//自定义数据类型//使用OGRFeature类提供的 GetFieldAsInteger//方法获取每个字段的值”link_id”,”road_name”都是字段名tmp.link_id pogrfeature-GetFieldAsInteger(link_id);//tmp.src_id pogrfeature-GetFieldAsInteger(src_id);tmp.road_name pogrfeature-GetFieldAsString(road_name);tmp.one_way pogrfeature-GetFieldAsInteger(one_way);//获得几何属性的每一个点坐标信息for ( int pointid 0; pointid pointnum;pointid ){OGRPoint point;pline-getPoint(pointid,point);GEO_POINT geo_point;geo_point.x point.getX();geo_point.y point.getY();tmp.vstShplist.push_back(geo_point);}RoadList.push_back(tmp);}}//释放Feature资源OGRFeature::DestroyFeature(pogrfeature);//cout}//释放指向该数据库的指针OGRDataSource::DestroyDataSource(pDS);return SUCCESS;}/////使用OGR写Postgresql///int setFeature( const vector RoadList ){OGRRegisterAll();const char* filepath PG:dbnametest host172.0.0.1 port5432 userpostgres passwordpostgres;const char* drivename Postgresql;const char* ptablename roadlist;OGRSFDriver* pdriver NULL;OGRLayer* player NULL;OGRDataSource* pDS NULL;pdriver OGRSFDriverRegistrar::GetRegistrar()-GetDriverByName(drivename);if ( pdriver NULL ) {return FAILURE;}pDS pdriver-Open(filepath,0);if ( NULL pDS ) {return FAILURE;}//相当于sql语句中的创建数据表只是这里只先指定表名称和几何字段属性player pDS-CreateLayer( ptablename,NULL,wkbLineString,NULL );if ( NULL player ){return FAILURE;}//定义一个字段one_wayOGRFieldDefn* pfielddefn_oneway new OGRFieldDefn(one_way,OFTInteger);//在数据表中创建定义的字段player-CreateField(pfielddefn_oneway);OGRFieldDefn* pfielddefn_name new OGRFieldDefn(road_name,OFTString);player-CreateField(pfielddefn_name);//删除字段定义指针delete pfielddefn_oneway;delete pfielddefn_name;int roadnum RoadList.size();//循环写入每一条道路数据for ( int roadcnt 0; roadcnt roadnum ;roadcnt ){const RoadRec roadrec RoadList.at(roadcnt);OGRLineString* pline new OGRLineString;//要写入的几何字段int pointnum roadrec.vstShplist.size();for ( int pointcnt 0; pointcnt pointnum ;pointcnt ){const GEO_POINT point roadrec.vstShplist.at(pointcnt);pline-addPoint(point.x,point.y);}OGRGeometry* pgeo (OGRGeometry*)pline;pgeo-setCoordinateDimension(2);//设置坐标系维度//创建一个指向要写入的记录的指针//指定要写入的数据库player-GetLayerDefn()OGRFeature* pfeature OGRFeature::CreateFeature( player-GetLayerDefn() );//设置当前记录的字段值pfeature-SetField(one_way,roadrec.one_way);pfeature-SetField(road_name,roadrec.road_name.c_str());if ( OGRERR_NONE ! pfeature-SetGeometry( pgeo ) ){return FAILURE;}//将记录写入数据表if ( OGRERR_NONE ! player-CreateFeature( pfeature ) ){return FAILURE;}delete pline;OGRFeature::DestroyFeature(pfeature);}OGRDataSource::DestroyDataSource(pDS);return SUCCESS;}int main(){vector roadlist;getFeature(roadlist);coutsetFeature(roadlist);return 0;}编译链接g -o feature feature_pro.cpp -lgdal相关文章总结如果觉得编程之家网站内容还不错欢迎将编程之家网站推荐给程序员好友。本图文内容来源于网友网络收集整理提供作为学习参考使用版权属于原作者。如您喜欢交流学习经验点击链接加入交流1群1065694478(已满)交流2群163560250
http://www.yutouwan.com/news/143004/

相关文章:

  • 公司网站如何做维护简述三只松鼠网络营销方式
  • 网站开发管理招聘网络架构图是什么
  • 宁波哪里有网站建设wordpress 后台教程
  • 大连平台网站建设黑色个人网站欣赏
  • 网站的种类有哪些深圳市企业服务体系平台建设方案
  • 网站字体大小是多少合适dede网站wap
  • 网站建设培训手册成立公司注册资金
  • 高端装饰公司网站设计横沥做网站
  • 河北网站建设企业建设工程网站有哪些内容
  • 自己怎么接单做网站国家建设工程信息网
  • 曲靖网站设计公司怎么启用wordpress
  • 珠海网站备案wordpress开场动画
  • 如何查看网站空间大小网站设计要注意事项
  • 展馆门户网站建设深圳做网站联系电话
  • 快手点赞购买网站king 主题WordPress
  • 客户做网站需要提供什么jsp网站开发公司
  • wordpress数据库密码修改seo推广专员工作内容
  • 网站建设中企动力上海网络营销的实现方式包括
  • 网站排名优化方法讲解《梦幻西游》官网
  • 马鞍山网站建设cnfg下载百度浏览器
  • 网站建设商品的分类江门免费建站
  • 利用地图建网站跑腿小程序源码
  • 网站开发的硬件设备有事业单位微信公众号怎么创建
  • php做网站登陆验证网站抓取qq
  • 试述网站建设的流程广州市番禺区官网
  • 宠物医院网站开发动画视频制作
  • 电商网站商品表设计方案互联网销售可以卖什么产品
  • 网站建设所有权楼梯平台设计
  • 公司网站建设应注意什么宝坻做网站哪家好
  • 加强网站建设的请示湖南郴州市地图