⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jdemdataset.cpp.html

📁 gdal库的学习文档
💻 HTML
📖 第 1 页 / 共 2 页
字号:
        CPLError( CE_Failure, CPLE_AppDefined,                   <span class="stringliteral">"JDEM Scanline corrupt.  Perhaps file was not transferred\n"</span>                  <span class="stringliteral">"in binary mode?"</span> );        <span class="keywordflow">return</span> CE_Failure;    }        <span class="keywordflow">if</span>( JDEMGetField( pszRecord + 6, 3 ) != nBlockYOff + 1 )    {        CPLFree( pszRecord );        CPLError( CE_Failure, CPLE_AppDefined,                   <span class="stringliteral">"JDEM scanline out of order, JDEM driver does not\n"</span>                  <span class="stringliteral">"currently support partial datasets."</span> );        <span class="keywordflow">return</span> CE_Failure;    }    <span class="keywordflow">for</span>( i = 0; i &lt; nBlockXSize; i++ )        ((<span class="keywordtype">float</span> *) pImage)[i] = (<span class="keywordtype">float</span>)            (JDEMGetField( pszRecord + 9 + 5 * i, 5) * 0.1);    <span class="keywordflow">return</span> CE_None;}<span class="comment">/************************************************************************/</span><span class="comment">/* ==================================================================== */</span><span class="comment">/*                              JDEMDataset                             */</span><span class="comment">/* ==================================================================== */</span><span class="comment">/************************************************************************/</span><span class="comment">/************************************************************************/</span><span class="comment">/*                            ~JDEMDataset()                             */</span><span class="comment">/************************************************************************/</span>JDEMDataset::~JDEMDataset(){    FlushCache();    <span class="keywordflow">if</span>( fp != NULL )        VSIFClose( fp );}<span class="comment">/************************************************************************/</span><span class="comment">/*                          GetGeoTransform()                           */</span><span class="comment">/************************************************************************/</span>CPLErr JDEMDataset::GetGeoTransform( <span class="keywordtype">double</span> * padfTransform ){    <span class="keywordtype">double</span>      dfLLLat, dfLLLong, dfURLat, dfURLong;    dfLLLat = JDEMGetAngle( (<span class="keywordtype">char</span> *) abyHeader + 29 );    dfLLLong = JDEMGetAngle( (<span class="keywordtype">char</span> *) abyHeader + 36 );    dfURLat = JDEMGetAngle( (<span class="keywordtype">char</span> *) abyHeader + 43 );    dfURLong = JDEMGetAngle( (<span class="keywordtype">char</span> *) abyHeader + 50 );        padfTransform[0] = dfLLLong;    padfTransform[3] = dfURLat;    padfTransform[1] = (dfURLong - dfLLLong) / GetRasterXSize();    padfTransform[2] = 0.0;            padfTransform[4] = 0.0;    padfTransform[5] = -1 * (dfURLat - dfLLLat) / GetRasterYSize();    <span class="keywordflow">return</span> CE_None;}<span class="comment">/************************************************************************/</span><span class="comment">/*                          GetProjectionRef()                          */</span><span class="comment">/************************************************************************/</span><span class="keyword">const</span> <span class="keywordtype">char</span> *JDEMDataset::GetProjectionRef(){    <span class="keywordflow">return</span>( <span class="stringliteral">"GEOGCS[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",7004]],TOWGS84[-148,507,685,0,0,0,0],AUTHORITY[\"EPSG\",6301]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",8901]],UNIT[\"DMSH\",0.0174532925199433,AUTHORITY[\"EPSG\",9108]],AXIS[\"Lat\",NORTH],AXIS[\"Long\",EAST],AUTHORITY[\"EPSG\",4301]]"</span> );}<span class="comment">/************************************************************************/</span><span class="comment">/*                                Open()                                */</span><span class="comment">/************************************************************************/</span><a class="code" href="classGDALDataset.html">GDALDataset</a> *JDEMDataset::Open( GDALOpenInfo * poOpenInfo ){<span class="comment">/* -------------------------------------------------------------------- */</span><span class="comment">/*      Before trying JDEMOpen() we first verify that there is at        */</span><span class="comment">/*      least one "\n#keyword" type signature in the first chunk of     */</span><span class="comment">/*      the file.                                                       */</span><span class="comment">/* -------------------------------------------------------------------- */</span>    <span class="keywordflow">if</span>( poOpenInfo-&gt;fp == NULL || poOpenInfo-&gt;nHeaderBytes &lt; 50 )        <span class="keywordflow">return</span> NULL;    <span class="comment">/* check if century values seem reasonable */</span>    <span class="keywordflow">if</span>( (!EQUALN((<span class="keywordtype">char</span> *)poOpenInfo-&gt;pabyHeader+11,<span class="stringliteral">"19"</span>,2)          &amp;&amp; !EQUALN((<span class="keywordtype">char</span> *)poOpenInfo-&gt;pabyHeader+11,<span class="stringliteral">"20"</span>,2))        || (!EQUALN((<span class="keywordtype">char</span> *)poOpenInfo-&gt;pabyHeader+15,<span class="stringliteral">"19"</span>,2)             &amp;&amp; !EQUALN((<span class="keywordtype">char</span> *)poOpenInfo-&gt;pabyHeader+15,<span class="stringliteral">"20"</span>,2))        || (!EQUALN((<span class="keywordtype">char</span> *)poOpenInfo-&gt;pabyHeader+19,<span class="stringliteral">"19"</span>,2)             &amp;&amp; !EQUALN((<span class="keywordtype">char</span> *)poOpenInfo-&gt;pabyHeader+19,<span class="stringliteral">"20"</span>,2)) )    {        <span class="keywordflow">return</span> NULL;    }    <span class="comment">/* -------------------------------------------------------------------- */</span><span class="comment">/*      Create a corresponding GDALDataset.                             */</span><span class="comment">/* -------------------------------------------------------------------- */</span>    JDEMDataset         *poDS;    poDS = <span class="keyword">new</span> JDEMDataset();    poDS-&gt;fp = poOpenInfo-&gt;fp;    poOpenInfo-&gt;fp = NULL;    <span class="comment">/* -------------------------------------------------------------------- */</span><span class="comment">/*      Read the header.                                                */</span><span class="comment">/* -------------------------------------------------------------------- */</span>    VSIFSeek( poDS-&gt;fp, 0, SEEK_SET );    VSIFRead( poDS-&gt;abyHeader, 1, 1012, poDS-&gt;fp );    poDS-&gt;nRasterXSize = JDEMGetField( (<span class="keywordtype">char</span> *) poDS-&gt;abyHeader + 23, 3 );    poDS-&gt;nRasterYSize = JDEMGetField( (<span class="keywordtype">char</span> *) poDS-&gt;abyHeader + 26, 3 );<span class="comment">/* -------------------------------------------------------------------- */</span><span class="comment">/*      Create band information objects.                                */</span><span class="comment">/* -------------------------------------------------------------------- */</span>    poDS-&gt;SetBand( 1, <span class="keyword">new</span> JDEMRasterBand( poDS, 1 ));<span class="comment">/* -------------------------------------------------------------------- */</span><span class="comment">/*      Initialize any PAM information.                                 */</span><span class="comment">/* -------------------------------------------------------------------- */</span>    poDS-&gt;SetDescription( poOpenInfo-&gt;pszFilename );    poDS-&gt;TryLoadXML();    <span class="keywordflow">return</span>( poDS );}<span class="comment">/************************************************************************/</span><span class="comment">/*                          GDALRegister_JDEM()                          */</span><span class="comment">/************************************************************************/</span><span class="keywordtype">void</span> GDALRegister_JDEM(){    <a class="code" href="classGDALDriver.html">GDALDriver</a>  *poDriver;    <span class="keywordflow">if</span>( <a class="code" href="gdal_8h.html#e8ae868eef1e4773283d137b0a1adfc4">GDALGetDriverByName</a>( <span class="stringliteral">"JDEM"</span> ) == NULL )    {        poDriver = <span class="keyword">new</span> <a class="code" href="classGDALDriver.html">GDALDriver</a>();                poDriver-&gt;<a class="code" href="classGDALMajorObject.html#f334bc8d152f130a55783ea36938735b">SetDescription</a>( <span class="stringliteral">"JDEM"</span> );        poDriver-&gt;<a class="code" href="classGDALMajorObject.html#3e157735f6ff6e11935c2a2dbcc24c92">SetMetadataItem</a>( GDAL_DMD_LONGNAME,                                    <span class="stringliteral">"Japanese DEM (.mem)"</span> );        poDriver-&gt;<a class="code" href="classGDALMajorObject.html#3e157735f6ff6e11935c2a2dbcc24c92">SetMetadataItem</a>( GDAL_DMD_HELPTOPIC,                                    <span class="stringliteral">"frmt_various.html#JDEM"</span> );        poDriver-&gt;<a class="code" href="classGDALMajorObject.html#3e157735f6ff6e11935c2a2dbcc24c92">SetMetadataItem</a>( GDAL_DMD_EXTENSION, <span class="stringliteral">"mem"</span> );        poDriver-&gt;<a class="code" href="classGDALDriver.html#31420fbca775dab837fc5c242690fbb4">pfnOpen</a> = JDEMDataset::Open;        GetGDALDriverManager()-&gt;<a class="code" href="classGDALDriverManager.html#a33cc86affa255ac37b463c129fbe49f">RegisterDriver</a>( poDriver );    }}</pre></div> <hr>Generated for GDAL by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1.</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -