矢量数据编辑与管理_第1页
矢量数据编辑与管理_第2页
矢量数据编辑与管理_第3页
矢量数据编辑与管理_第4页
矢量数据编辑与管理_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

矢量数据编辑与1功能:

–1.交互式数据录入(鼠标)

–2.外部文件导入导出(Shape)

–3.利用PostGIS管理数据

–4.图形的基本显示功能(漫游、缩放)

–5.鼠标交互的地物选择(点选择、框选择)

–6.符号及属性管理开发语言:C++开发环境:VisualStudio20052PostGIS集成在PostgreSQL中,本次实习PostGIS管理数据(shapefile),libpq/libpq++库提供了C++应用程序在PostgreSQL的后端接口,通过这些接口在PostGIS数据库中读取数据。3classCGeometry{public: GeometryTypem_geometryType;//几何图形类型 intm_LineType;//线型 intm_LineWidth;//线宽 intm_PenColor;//画笔颜色 intm_BrushType;//画刷类型 intm_BrushColor;//画刷颜色 boolm_bSelect;//是否处于选中状态 intm_layerIndex;//图层索引

EnumGeometryType{GeoNone,GeoPoint,GeoPolyline,GeoSimplePolygon,GeoMultiPoint,GeoMultiPolyline,GeoMultiPolygon };structDbPoint{doubleX;doubleY;};4public: CGeometry(constCGeometry&geometry);//复制构造函数 CGeometry(intlineType,intlineWidth,intpenColor,intBrushType,intBrushColor);//带参数的构造函数 GeometryTypegetType();//获得几何图形的类型

//以下函数都设为虚函数,需在不同类型几何图形类中重载 virtualvoidDraw(CDC*pDC);//绘制几何图形 virtualvoidMove(doublex,doubley);//平移(漫游) virtualvoidZoom(doublescale);//缩放

//以下函数用于图形选择实现 doubleCalDistance(DbPointpoint1,DbPointpoint2);//两点间的距离 doublePoint2Line(DbPointpt,DbPointpoint1,DbPointpoint2);//点到直线的距离 boolPointRgn(DbPointpt,vector<DbPoint>points,doubleblc);//判断点是否在区域内 virtualvoidGetRect(CRect&rect);//得到图形元素的边界矩形 virtualboolIsPoint(DbPointpt,doublelimit,doubleblc);//判断是否点选选择了图形元素 virtualboolIsInRgn(vector<DbPoint>points,doubleblc);//判断图形元素是否在多边形区域内};5classCGeoPoint:publicCGeometry{protected: DbPointm_point;public:

CGeoPoint(constCGeoPoint&point); CGeoPoint(intlineType,intlineWidth,intpenColor,intBrushType,intBrushColor,DbPointpoint);

doublegetX();

doublegetY(); DbPointgetPoint();

voidsetX(doublex);

voidsetY(doubley); voidsetPoint(DbPointpoint); virtualvoidDraw(CDC*pDC); virtualvoidMove(doublex,doubley); virtualvoidZoom(doublescale); virtualboolIsPoint(DbPointpt,doublelimit,doubleblc);//判断是否点选选择了图形元素 virtualboolIsInRgn(vector<DbPoint>points,doubleblc);//判断图形元素是否在多边形区域内};6classCGeoPolyLine:publicCGeometry{protected: vector<DbPoint>m_pointsArray;public:

CGeoPolyLine(constCGeoPolyLine&polyline); CGeoPolyLine(intlineType,intlineWidth,intpenColor,intBrushType,intBrushColor,vector<DbPoint>pointsArray); vector<DbPoint>getPoints(); voidsetPoints(vector<DbPoint>pointsArray); virtualvoidDraw(CDC*pDC); virtualvoidMove(doublex,doubley); virtualvoidZoom(doublescale); virtualvoidGetRect(CRect&rect);//得到图形元素的边界矩形 virtualboolIsPoint(DbPointpt,doublelimit,doubleblc);//判断是否点选选择了图形元素 virtualboolIsInRgn(vector<DbPoint>points,doubleblc);//判断图形元素是否在多边形区域内};7classCGeoSimplePolygon:publicCGeometry{protected: vector<DbPoint>m_pointsArray; doublem_Area;public:

CGeoSimplePolygon(constCGeoSimplePolygon&simplePolygon); CGeoSimplePolygon(intlineType,intlineWidth,intpenColor,intBrushType,intBrushColor,vector<DbPoint>pointsArray); vector<DbPoint>getPoints(); voidsetPoints(vector<DbPoint>pointsArray); doublegetArea(); voidCalArea(); virtualvoidDraw(CDC*pDC); virtualvoidMove(doublex,doubley); virtualvoidZoom(doublescale); virtualvoidGetRect(CRect&rect);//得到图形元素的边界矩形 virtualboolIsPoint(DbPointpt,doublelimit,doubleblc);//判断是否点选选择了图形元素 virtualboolIsInRgn(vector<DbPoint>points,doubleblc);//判断图形元素是否在多边形区域内};8classCGeoLayer{//属性private: GeometryTypem_layerType; CStringm_layerName; intm_layerIndex; boolm_isVisible; vector<CGeometry*>m_Geometrys;public://构造函数 CGeoLayer(constCGeoLayer&layer); CGeoLayer(GeometryTypelayerType,CStringlayerName,intlayerIndex,boolisVisible,vector<CGeometry*>geometrys);//基本方法 GeometryTypeGetLayerType(); voidSetLayerName(CStringname); CStringGetLayerName();

9public: voidSetLayerIndex(intindex); intGetLayerIndex(); voidSetVisible(boolisVisible); boolGetVisible(); voidAddGeometry(CGeomet

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论