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

📄 jdemdataset.cpp.html

📁 gdal库的学习文档
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>GDAL: Sample Driver: jdemdataset.cpp</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.5.1 --><div class="tabs">  <ul>    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>    <li><a href="annotated.html"><span>Classes</span></a></li>    <li><a href="files.html"><span>Files</span></a></li>    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>  </ul></div><h1><a class="anchor" name="jdemdataset.cpp">Sample Driver: jdemdataset.cpp</a></h1><div class="fragment"><pre class="fragment"><span class="comment">/******************************************************************************</span><span class="comment"> * $Id: jdemdataset.cpp 10646 2007-01-18 02:38:10Z warmerdam $</span><span class="comment"> *</span><span class="comment"> * Project:  JDEM Reader</span><span class="comment"> * Purpose:  All code for Japanese DEM Reader</span><span class="comment"> * Author:   Frank Warmerdam, warmerdam@pobox.com</span><span class="comment"> *</span><span class="comment"> ******************************************************************************</span><span class="comment"> * Copyright (c) 2000, Frank Warmerdam &lt;warmerdam@pobox.com&gt;</span><span class="comment"> *</span><span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a</span><span class="comment"> * copy of this software and associated documentation files (the "Software"),</span><span class="comment"> * to deal in the Software without restriction, including without limitation</span><span class="comment"> * the rights to use, copy, modify, merge, publish, distribute, sublicense,</span><span class="comment"> * and/or sell copies of the Software, and to permit persons to whom the</span><span class="comment"> * Software is furnished to do so, subject to the following conditions:</span><span class="comment"> *</span><span class="comment"> * The above copyright notice and this permission notice shall be included</span><span class="comment"> * in all copies or substantial portions of the Software.</span><span class="comment"> *</span><span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS</span><span class="comment"> * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span><span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL</span><span class="comment"> * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span><span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING</span><span class="comment"> * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER</span><span class="comment"> * DEALINGS IN THE SOFTWARE.</span><span class="comment"> ****************************************************************************/</span><span class="preprocessor">#include "gdal_pam.h"</span>CPL_CVSID(<span class="stringliteral">"$Id: jdemdataset.cpp 10646 2007-01-18 02:38:10Z warmerdam $"</span>);CPL_C_START<span class="keywordtype">void</span>    GDALRegister_JDEM(<span class="keywordtype">void</span>);CPL_C_END<span class="comment">/************************************************************************/</span><span class="comment">/*                            JDEMGetField()                            */</span><span class="comment">/************************************************************************/</span><span class="keyword">static</span> <span class="keywordtype">int</span> JDEMGetField( <span class="keywordtype">char</span> *pszField, <span class="keywordtype">int</span> nWidth ){    <span class="keywordtype">char</span>        szWork[32];    CPLAssert( nWidth &lt; (<span class="keywordtype">int</span>) <span class="keyword">sizeof</span>(szWork) );    strncpy( szWork, pszField, nWidth );    szWork[nWidth] = <span class="charliteral">'\0'</span>;    <span class="keywordflow">return</span> atoi(szWork);}<span class="comment">/************************************************************************/</span><span class="comment">/*                            JDEMGetAngle()                            */</span><span class="comment">/************************************************************************/</span><span class="keyword">static</span> <span class="keywordtype">double</span> JDEMGetAngle( <span class="keywordtype">char</span> *pszField ){    <span class="keywordtype">int</span>         nAngle = JDEMGetField( pszField, 7 );    <span class="keywordtype">int</span>         nDegree, nMin, nSec;    <span class="comment">// Note, this isn't very general purpose, but it would appear</span>    <span class="comment">// from the field widths that angles are never negative.  Nice</span>    <span class="comment">// to be a country in the "first quadrant". </span>    nDegree = nAngle / 10000;    nMin = (nAngle / 100) % 100;    nSec = nAngle % 100;        <span class="keywordflow">return</span> nDegree + nMin / 60.0 + nSec / 3600.0;}<span class="comment">/************************************************************************/</span><span class="comment">/* ==================================================================== */</span><span class="comment">/*                              JDEMDataset                             */</span><span class="comment">/* ==================================================================== */</span><span class="comment">/************************************************************************/</span><span class="keyword">class </span>JDEMRasterBand;<span class="keyword">class </span>JDEMDataset : <span class="keyword">public</span> GDALPamDataset{    <span class="keyword">friend</span> <span class="keyword">class </span>JDEMRasterBand;    FILE        *fp;    GByte       abyHeader[1012];  <span class="keyword">public</span>:                ~JDEMDataset();        <span class="keyword">static</span> <a class="code" href="classGDALDataset.html">GDALDataset</a> *Open( GDALOpenInfo * );    CPLErr      GetGeoTransform( <span class="keywordtype">double</span> * padfTransform );    <span class="keyword">const</span> <span class="keywordtype">char</span> *GetProjectionRef();};<span class="comment">/************************************************************************/</span><span class="comment">/* ==================================================================== */</span><span class="comment">/*                            JDEMRasterBand                             */</span><span class="comment">/* ==================================================================== */</span><span class="comment">/************************************************************************/</span><span class="keyword">class </span>JDEMRasterBand : <span class="keyword">public</span> GDALPamRasterBand{    <span class="keyword">friend</span> <span class="keyword">class </span>JDEMDataset;      <span class="keyword">public</span>:                JDEMRasterBand( JDEMDataset *, <span class="keywordtype">int</span> );        <span class="keyword">virtual</span> CPLErr IReadBlock( <span class="keywordtype">int</span>, <span class="keywordtype">int</span>, <span class="keywordtype">void</span> * );};<span class="comment">/************************************************************************/</span><span class="comment">/*                           JDEMRasterBand()                            */</span><span class="comment">/************************************************************************/</span>JDEMRasterBand::JDEMRasterBand( JDEMDataset *poDS, <span class="keywordtype">int</span> nBand ){    this-&gt;poDS = poDS;    this-&gt;nBand = nBand;        eDataType = <a class="code" href="gdal_8h.html#22e22ce0a55036a96f652765793fb7a4f5cbd2f96abffd9ac061fc0dced5cbba">GDT_Float32</a>;    nBlockXSize = poDS-&gt;GetRasterXSize();    nBlockYSize = 1;}<span class="comment">/************************************************************************/</span><span class="comment">/*                             IReadBlock()                             */</span><span class="comment">/************************************************************************/</span>CPLErr JDEMRasterBand::IReadBlock( <span class="keywordtype">int</span> nBlockXOff, <span class="keywordtype">int</span> nBlockYOff,                                  <span class="keywordtype">void</span> * pImage ){    JDEMDataset *poGDS = (JDEMDataset *) poDS;    <span class="keywordtype">char</span>        *pszRecord;    <span class="keywordtype">int</span>         nRecordSize = nBlockXSize*5 + 9 + 2;    <span class="keywordtype">int</span>         i;    VSIFSeek( poGDS-&gt;fp, 1011 + nRecordSize*nBlockYOff, SEEK_SET );    pszRecord = (<span class="keywordtype">char</span> *) CPLMalloc(nRecordSize);    VSIFRead( pszRecord, 1, nRecordSize, poGDS-&gt;fp );    <span class="keywordflow">if</span>( !EQUALN((<span class="keywordtype">char</span> *) poGDS-&gt;abyHeader,pszRecord,6) )    {        CPLFree( pszRecord );

⌨️ 快捷键说明

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