91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 68.28MB
    文件類型: .zip
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2022-12-02
  • 語言: C/C++
  • 標(biāo)簽: GDAL??GIS??shp??

資源簡介

使用C++并利用GDAL庫實現(xiàn)對GIS中shp數(shù)據(jù)的讀取和顯示。該版本沒有放縮功能,有簡陋版放縮功能的版本,如有需要可以下載后評論可獲取。

資源截圖

代碼片段和文件信息

#include?“stdafx.h“
#include?“DataAdd.h“



DataAdd*DataAdd::m_pInstance?=?NULL;


IMPLEMENT_DYNAMIC(DataAdd?CWnd)

DataAdd::DataAdd()
{
OGRGeometry*poGeomtry?=?NULL;
}


DataAdd::~DataAdd()
{
}





OGRlayer*?DataAdd::ShpDataAdd(CString?FilePathName)
{

Instance();


//OGRDataSource?*poDS?=?NULL;
//poDS?=?OGRSFDriverRegistrar::Open(FilePathName?FALSE);
const?char*?filename?=?FilePathName.GetBuffer(sizeof(FilePathName));
GDALDataset*poDS?=?(GDALDataset*)GDALOpenEx(filename?GDAL_OF_VECTOR?NULL?NULL?NULL);

//Draw(poDS);
if?(poDS?==?NULL)
{
printf(“數(shù)據(jù)源打開失敗\n“);
}

/*if?(poDS->GetlayerCount()<0)
{
printf(“當(dāng)前圖層無效!\n“);
}*/

OGRlayer*polayer?=?NULL;
polayer?=?poDS->Getlayer(0);


return?polayer;
}

OGRlayer*DataAdd::FromPath(const?string&strFilePath)
{
Instance();
//新版本修改的去除了OGRDataSource類
GDALDataset*poDS?=?(GDALDataset*)GDALOpenEx(strFilePath.c_str()?GDAL_OF_VECTOR?NULL?NULL?NULL);

if?(poDS?==?NULL)
{
printf(“數(shù)據(jù)源打開失敗\n“);
return?NULL;
}
if?(poDS->GetlayerCount()? {
printf(“當(dāng)前圖層無效!\n“);
return?NULL;
}

OGRlayer*?polayer?=?NULL;
polayer?=?poDS->Getlayer(0);


DestoryInstance();
return?polayer;

}

void?DataAdd::DestoryInstance()
{
if?(NULL?!=?m_pInstance)
{
delete?m_pInstance;
m_pInstance?=?NULL;
}
}


DataAdd*DataAdd::Instance()
{
if?(NULL?==?m_pInstance)
{
m_pInstance?=?new?DataAdd();
}
return?m_pInstance;
}



void?DataAdd::getView(CView?*View)
{
pView?=?View;
}



OGRGeometry*?DataAdd::getOGRGeometry()
{
return?poGeometry;
}

OGRwkbGeometryType?DataAdd::getOGRwkbGeometryType()
{
return?eGeometryType;
}


void?DataAdd::Draw(OGRlayer*?poDS)
{
CClientDC?dc(pView);

OGRlayer*?polayer?=?poDS;
OGRFeature?*pFeature?=?NULL;
OGREnvelope?*poEnvelope?=?new?OGREnvelope();

polayer->GetExtent(poEnvelope);

CRect?rect;
pView->GetClientRect(&rect);

IMapRender?*pMapRender?=?new?IMapRender();
pMapRender->GetScale(poEnvelope?rect);

polayer->ResetReading();
while?((pFeature?=?polayer->GetNextFeature())?!=?NULL)
{
poGeometry?=?pFeature->GetGeometryRef();
eGeometryType?=?poGeometry->getGeometryType();

switch?(eGeometryType)
{
//處理點
case?wkbPoint25D:
case?wkbPoint:
{
?OGRPoint*?poPoint?=?NULL;
?poPoint?=?(OGRPoint*)poGeometry;

?double?centerx?=?poPoint->getX();
?double?centery?=?poPoint->getY();
?pMapRender->WorldToClinet(centerx?centery);

?CRect?pp(centerx?-?3?centery?-?3?centerx?+?3?centery?+?3);
?CBrush?brush;
?brush.CreateSolidBrush(RGB(255?0?0));
?dc.Selectobject(brush);
?dc.Ellipse(pp);
}
break;
//處理線
case?wkbLineString:
case?wkbLineString25D:
{
?OGRLineString*?poLineString?=?NULL;
?poLineString?=?(OGRLineString*)poGeometry;

?int?nLinePoints?=?poLineString->getNumPoints();

?OGRPoi

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-07-24?08:22??GDAL\
?????目錄???????????0??2017-07-24?17:34??GDAL\ReadShp\
?????目錄???????????0??2017-07-24?15:38??GDAL\ReadShp\Debug\
?????文件??????476160??2017-07-24?17:25??GDAL\ReadShp\Debug\ReadShp.exe
?????文件??????133147??2017-07-24?15:38??GDAL\ReadShp\Debug\ReadShp.exp
?????文件?????3469744??2017-07-24?17:25??GDAL\ReadShp\Debug\ReadShp.ilk
?????文件??????220084??2017-07-24?15:38??GDAL\ReadShp\Debug\ReadShp.lib
?????文件?????8899584??2017-07-24?17:25??GDAL\ReadShp\Debug\ReadShp.pdb
?????目錄???????????0??2017-07-24?08:26??GDAL\ReadShp\ipch\
?????目錄???????????0??2017-07-24?15:30??GDAL\ReadShp\ipch\readshp-ca4c9107\
?????文件????94109696??2017-07-24?15:30??GDAL\ReadShp\ipch\readshp-ca4c9107\readshp-41d29033.ipch
?????目錄???????????0??2017-07-24?17:25??GDAL\ReadShp\ReadShp\
?????文件????93126656??2017-07-24?17:34??GDAL\ReadShp\ReadShp.sdf
?????文件?????????967??2017-07-24?08:22??GDAL\ReadShp\ReadShp.sln
?????文件???????27136??2017-07-24?17:34??GDAL\ReadShp\ReadShp.v12.suo
?????文件????????8048??2017-07-24?15:30??GDAL\ReadShp\ReadShp\DataAdd.cpp
?????文件????????1013??2017-07-24?15:39??GDAL\ReadShp\ReadShp\DataAdd.h
?????目錄???????????0??2017-07-24?17:25??GDAL\ReadShp\ReadShp\Debug\
?????文件?????1153963??2017-07-24?15:39??GDAL\ReadShp\ReadShp\Debug\DataAdd.obj
?????文件???????46150??2017-07-24?15:30??GDAL\ReadShp\ReadShp\Debug\MainFrm.obj
?????文件?????1204764??2017-07-24?15:38??GDAL\ReadShp\ReadShp\Debug\MapRender.obj
?????文件?????????712??2017-07-24?14:57??GDAL\ReadShp\ReadShp\Debug\ReadShp.Build.CppClean.log
?????文件????????1592??2017-07-24?17:25??GDAL\ReadShp\ReadShp\Debug\ReadShp.log
?????文件???????52993??2017-07-24?17:25??GDAL\ReadShp\ReadShp\Debug\ReadShp.obj
?????文件????49872896??2017-07-24?15:30??GDAL\ReadShp\ReadShp\Debug\ReadShp.pch
?????文件???????78188??2017-07-24?15:30??GDAL\ReadShp\ReadShp\Debug\ReadShp.res
?????目錄???????????0??2017-07-24?17:25??GDAL\ReadShp\ReadShp\Debug\ReadShp.tlog\
?????文件????????4920??2017-07-24?17:25??GDAL\ReadShp\ReadShp\Debug\ReadShp.tlog\cl.command.1.tlog
?????文件???????78460??2017-07-24?17:25??GDAL\ReadShp\ReadShp\Debug\ReadShp.tlog\CL.read.1.tlog
?????文件????????6280??2017-07-24?17:25??GDAL\ReadShp\ReadShp\Debug\ReadShp.tlog\CL.write.1.tlog
?????文件????????2096??2017-07-24?17:25??GDAL\ReadShp\ReadShp\Debug\ReadShp.tlog\link.command.1.tlog
............此處省略139個文件信息

評論

共有 條評論