<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rubinium.org &#187; degrees</title>
	<atom:link href="http://rubinium.org/blog/archives/tag/degrees/feed/" rel="self" type="application/rss+xml" />
	<link>http://rubinium.org/blog</link>
	<description>The Element of Aron and Heather</description>
	<lastBuildDate>Fri, 25 Mar 2011 14:04:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>DMS to Decimal By Request</title>
		<link>http://rubinium.org/blog/archives/2008/01/17/dms-to-decimal-by-request/</link>
		<comments>http://rubinium.org/blog/archives/2008/01/17/dms-to-decimal-by-request/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 22:41:15 +0000</pubDate>
		<dc:creator>A R Baboon</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[degrees]]></category>
		<category><![CDATA[dms]]></category>
		<category><![CDATA[minutes]]></category>

		<guid isPermaLink="false">http://rubinium.org/blog/archives/2008/01/17/dms-to-decimal-by-request/</guid>
		<description><![CDATA[This is a function from my library that can be used to decode a degrees-minutes-seconds (DMS) string to a decimal degrees. Enjoy. /* ------------------------------ Function: geo_dms_to_deg Parse a degrees-minutes-seconds (DMS) value string into a double floating point in degrees. &#160; Parameters: str - [in] string containing an angle in DMS end_ptr - [out] a pointer [...]]]></description>
			<content:encoded><![CDATA[<p>This is a function from my library that can be used to decode a degrees-minutes-seconds (DMS) string to a decimal degrees.<br />
Enjoy.</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* ------------------------------
   Function: geo_dms_to_deg
     Parse a degrees-minutes-seconds (DMS) value string into a double floating
     point in degrees.
&nbsp;
   Parameters:
     str     - [in]  string containing an angle in DMS
     end_ptr - [out] a pointer to the character following the last in the DMS
     packed  - [in]  boolean whether to expect the DMS to lack delimiters
     value   - [out] value in degrees
&nbsp;
   Returns:
     true on success, false on failure
   ------------------------------ */</span>
<span style="color: #993333;">int</span> geo_dms_to_deg<span style="color: #009900;">&#40;</span> <span style="color: #993333;">const</span> <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>str<span style="color: #339933;">,</span> <span style="color: #993333;">const</span> <span style="color: #993333;">char</span> <span style="color: #339933;">**</span>endptr<span style="color: #339933;">,</span> <span style="color: #993333;">int</span> packed<span style="color: #339933;">,</span> <span style="color: #993333;">double</span> <span style="color: #339933;">*</span>value <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #993333;">int</span> d <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> m <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> s <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> pos <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
  <span style="color: #993333;">char</span> ps<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">20</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">*</span>ps_ptr<span style="color: #339933;">;</span>
  <span style="color: #993333;">float</span> p <span style="color: #339933;">=</span> <span style="color:#800080;">0.0</span><span style="color: #339933;">,</span> fraction<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> packed <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #993333;">char</span> format<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">64</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
    pos <span style="color: #339933;">=</span> strspn<span style="color: #009900;">&#40;</span> str<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;0123456789&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> pos <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">5</span> <span style="color: #339933;">||</span> pos <span style="color: #339933;">&gt;</span> <span style="color: #0000dd;">7</span> <span style="color: #009900;">&#41;</span>
      <span style="color: #b1b100;">return</span><span style="color: #009900;">&#40;</span> <span style="color: #0000dd;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    snprintf<span style="color: #009900;">&#40;</span> format<span style="color: #339933;">,</span> <span style="color: #0000dd;">64</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;%%%dd%%2d%%2d%%n&quot;</span><span style="color: #339933;">,</span> pos <span style="color: #339933;">-</span> <span style="color: #0000dd;">4</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> sscanf<span style="color: #009900;">&#40;</span> str<span style="color: #339933;">,</span> format<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>d<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>m<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>s<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>pos <span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #0000dd;">3</span> <span style="color: #009900;">&#41;</span>
      <span style="color: #b1b100;">return</span><span style="color: #009900;">&#40;</span> <span style="color: #0000dd;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> sscanf<span style="color: #009900;">&#40;</span> str<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;%d:%d:%d.%[0123456789]%n&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>d<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>m<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>s<span style="color: #339933;">,</span> ps<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>pos <span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #0000dd;">4</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    p <span style="color: #339933;">=</span> <span style="color:#800080;">0.0</span><span style="color: #339933;">;</span>
    fraction <span style="color: #339933;">=</span> <span style="color:#800080;">0.1</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span> ps_ptr <span style="color: #339933;">=</span> ps<span style="color: #339933;">;</span> <span style="color: #339933;">*</span>ps_ptr <span style="color: #339933;">!=</span> <span style="color: #ff0000;">'<span style="color: #006699; font-weight: bold;">\0</span>'</span><span style="color: #339933;">;</span> ps_ptr<span style="color: #339933;">++</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      p <span style="color: #339933;">+=</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">*</span>ps_ptr <span style="color: #339933;">-</span> <span style="color: #ff0000;">'0'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>fraction<span style="color: #339933;">;</span>
      fraction <span style="color: #339933;">*=</span> <span style="color:#800080;">0.1</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> sscanf<span style="color: #009900;">&#40;</span> str<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;%d:%d:%d%n&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>d<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>m<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>s<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>pos <span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #0000dd;">3</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #808080; font-style: italic;">/* empty */</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> sscanf<span style="color: #009900;">&#40;</span> str<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;%d:%d%n&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>d<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>m<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>pos <span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #0000dd;">2</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    s <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> sscanf<span style="color: #009900;">&#40;</span> str<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;%d%n&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>d<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>pos <span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #0000dd;">1</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    s <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
    m <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span><span style="color: #009900;">&#40;</span> <span style="color: #0000dd;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>d <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>m <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">0</span> <span style="color: #339933;">||</span> m <span style="color: #339933;">&gt;=</span> <span style="color: #0000dd;">60</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>s <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">0</span> <span style="color: #339933;">||</span> s <span style="color: #339933;">&gt;=</span> <span style="color: #0000dd;">60</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #339933;">*</span>endptr <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span>str<span style="color: #009900;">&#91;</span>pos<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> value <span style="color: #009900;">&#41;</span>
    <span style="color: #339933;">*</span>value <span style="color: #339933;">=</span> d <span style="color: #339933;">+</span> m<span style="color: #339933;">/</span><span style="color:#800080;">60.0</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>p <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">float</span><span style="color: #009900;">&#41;</span>s<span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color:#800080;">3600.0</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #b1b100;">return</span><span style="color: #009900;">&#40;</span> <span style="color: #0000dd;">1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://rubinium.org/blog/archives/2008/01/17/dms-to-decimal-by-request/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

