
<?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/"
	 xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"  xmlns:georss="http://www.georss.org/georss" >

<channel>
	<title>Virorum Limited</title>
	<atom:link href="http://www.virorum.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.virorum.com</link>
	<description></description>
	<lastBuildDate>Tue, 27 Mar 2012 13:52:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>About Virorum</title>
		<link>http://www.virorum.com/2012/03/virorum/</link>
		<comments>http://www.virorum.com/2012/03/virorum/#comments</comments>
		<pubDate>Mon, 26 Mar 2012 12:08:01 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
				<category><![CDATA[Headliners]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[digital]]></category>
		<category><![CDATA[global]]></category>
		<category><![CDATA[globe]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[it]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.virorum.com/?p=93</guid>
		<description><![CDATA[Virorum is a specialized company involved in the creation of innovative technology based solutions for a broad range of business challenges. Most recently, this has taken in projects such as the creation of a secure digital media distribution platform for Digital Theatre and the development of a suite of mobile applications for Metro Newspapers. The...]]></description>
			<content:encoded><![CDATA[<p>Virorum is a specialized company involved in the creation of innovative technology based solutions for a broad range of business challenges. Most recently, this has taken in projects such as the creation of a secure digital media distribution platform for Digital Theatre and the development of a suite of mobile applications for Metro Newspapers.</p>
<p>The company is headed by Philip Shaw, whose areas of expertise range from the design of technical architecture through enterprise solution development and the provision of high level IT strategy.</p>
<p>Miles Weaver provides the design ethos of the company and leads the re- imagining of user-interface and user-experience development across every project, translating the demands end-users make of systems into ergonomically efficient and stylish designs.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.virorum.com/2012/03/virorum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mobile Apps for iOS and Android</title>
		<link>http://www.virorum.com/2012/03/about-mobile-apps-for-ios-and-android/</link>
		<comments>http://www.virorum.com/2012/03/about-mobile-apps-for-ios-and-android/#comments</comments>
		<pubDate>Mon, 26 Mar 2012 12:05:56 +0000</pubDate>
		<dc:creator>Miles</dc:creator>
				<category><![CDATA[Headliners]]></category>
		<category><![CDATA[Mobile Apps for iOS And Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[tablet]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.virorum.com/?p=496</guid>
		<description><![CDATA[Mobile Technology lies at the heart of Virorum’s business. We are challenged and enthused by new and evolving technologies like the iPhone and iPad, and mobile applications fit that bill perfectly. Working hand in hand with a client, we can take concepts as vague as ‘We want an iPhone App’, work with the client, consult...]]></description>
			<content:encoded><![CDATA[<p>Mobile Technology lies at the heart of Virorum’s business. We are challenged and enthused by new and evolving technologies like the iPhone and iPad, and mobile applications fit that bill perfectly.</p>
<p>Working hand in hand with a client, we can take concepts as vague as ‘We want an iPhone App’, work with the client, consult on their needs and develop their desire into a full fledged product, while also being completely comfortable working within a much more rigid framework of ‘This is what we would like on iPad, please make it’.</p>
<p>Our coders, developers, architects and designers are experienced working on Apple’s iOS4 and Google’s Android operating systems, covering over half of the Smartphone market. We are also just as comfortable developing for the iPad and other upcoming tablet devices as we are doing development for the iPhone, and are already looking toward developing for the newly relaunched, App compatible Apple TV and Mac App Store.</p>
<p>Virorum is a leading force in creating large and small scale Mobile Apps on iPhone and iPad. Our employees are constantly undergoing training to ensure that they excel in working with the latest technology, so that we may bring the most complete and cutting edge development service to our clients.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.virorum.com/2012/03/about-mobile-apps-for-ios-and-android/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apps for Smart TV</title>
		<link>http://www.virorum.com/2012/03/apps-for-smart-tv/</link>
		<comments>http://www.virorum.com/2012/03/apps-for-smart-tv/#comments</comments>
		<pubDate>Mon, 26 Mar 2012 11:47:04 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
				<category><![CDATA[Headliners]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[Smart TV]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[blu-ray]]></category>
		<category><![CDATA[bluray]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[creative]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[digital]]></category>
		<category><![CDATA[global]]></category>
		<category><![CDATA[globe]]></category>
		<category><![CDATA[lg]]></category>
		<category><![CDATA[net tv]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[panasonic]]></category>
		<category><![CDATA[philips]]></category>
		<category><![CDATA[samsung]]></category>
		<category><![CDATA[smart]]></category>
		<category><![CDATA[smart television]]></category>
		<category><![CDATA[smart tv]]></category>
		<category><![CDATA[sony]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[television]]></category>
		<category><![CDATA[tv]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web tv]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.virorum.com/?p=650</guid>
		<description><![CDATA[Apps for Smart TV are the latest expansion of the Virorum business. Building on our extensive experience working on iOS and Android, our move into Smart TV was a natural step forward for a company that has established itself as a true leader and innovator in the Mobile Apps market. We support Samsung, LG, Philips and...]]></description>
			<content:encoded><![CDATA[<p>Apps for Smart TV are the latest expansion of the <strong>Virorum</strong> business. Building on our extensive experience working on iOS and Android, our move into Smart TV was a natural step forward for a company that has established itself as a true leader and innovator in the Mobile Apps market.</p>
<p>We support <strong><a title="Samsung" href="http://www.samsung.com/" target="_blank">Samsung</a></strong>, <strong><a title="LG" href="http://www.lg.com/" target="_blank">LG</a></strong>, <strong><a title="Philips" href="http://www.philips.co.uk/" target="_blank">Philips</a></strong> and <strong><a title="Panasonic" href="http://panasonic.com/" target="_blank">Panasonic</a></strong> Smart TVs with a focus on Video On Demand services.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.virorum.com/2012/03/apps-for-smart-tv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Raspberry Pi Goodness</title>
		<link>http://www.virorum.com/2011/12/raspberry-pi-goodness/</link>
		<comments>http://www.virorum.com/2011/12/raspberry-pi-goodness/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 21:39:56 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
				<category><![CDATA[Articles]]></category>

		<guid isPermaLink="false">http://www.virorum.com/?p=646</guid>
		<description><![CDATA[One of the really great things about an all like FlipBoard is its ability to bring cool and interesting things to your attention that you might not have spotted. RaspberryPi is one such thing. These guys are making an ultra low-cost Linux based PC with everything you need on a PCB about the size of...]]></description>
			<content:encoded><![CDATA[<p>One of the really great things about an all like FlipBoard is its ability to bring cool and interesting things to your attention that you might not have spotted.</p>
<p><a href="http://www.raspberrypi.org/">RaspberryPi</a> is one such thing.</p>
<p>These guys are making an ultra low-cost Linux based PC with everything you need on a PCB about the size of a credit-card. What&#8217;s more, it&#8217;s perfectly capable of playing 1080p video seemingly.</p>
<p>Coming in with an expected price-tag of just $25, these little machines, with this sort of performance, suggest a whole range of exciting deployments from monitoring and control circuits, set-top-boxes and in-home appliance updates.</p>
<p>At present, RaspberryPi is scheduled for release some time in early 2012. I&#8217;ll be picking up a couple, together with the separate IO boards, just to play around with and put them through their paces.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.virorum.com/2011/12/raspberry-pi-goodness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converting OS Grid References to Latitude/Longitude on iOS</title>
		<link>http://www.virorum.com/2011/12/converting-os-grid-references-to-latitudelongitude-on-ios/</link>
		<comments>http://www.virorum.com/2011/12/converting-os-grid-references-to-latitudelongitude-on-ios/#comments</comments>
		<pubDate>Sat, 03 Dec 2011 12:03:40 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Dev Corner]]></category>
		<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://www.virorum.com/?p=629</guid>
		<description><![CDATA[One of the really cool sources of free but useful data on the net if you&#8217;re in the UK is the government&#8217;s Open Data site. There is a wealth of information here covering the nation&#8217;s health, wealth, policing, housing and environment. Much of this data, albeit in a wide variety of formats and qualities, lends...]]></description>
			<content:encoded><![CDATA[<p>One of the really cool sources of free but useful data on the net if you&#8217;re in the UK is the government&#8217;s <a title="UK Open Data" href="http://data.gov.uk" target="_blank">Open Data</a> site. There is a wealth of information here covering the nation&#8217;s health, wealth, policing, housing and environment.</p>
<p>Much of this data, albeit in a wide variety of formats and qualities, lends itself well to being incorporated into your apps to enrich the experience.</p>
<p>Leaving aside the different data formats for now, one of the challenges you face using any of the geographical data these source contain is converting from the easting/northing coordinates provided into lat/lon figures that you can use with iOS&#8217;s MapKit.</p>
<p>The mathematics involved is not straightforward but luckily there are a few helpful people on the net who&#8217;ve done this for you already. One of the best of these can be found at <a title="Movable Type" href="http://www.movable-type.co.uk/scripts/latlong-gridref.html" target="_blank">Movable Type&#8217;s</a> site.</p>
<p>First up is the conversion between OS Grid and Lat/Lon. The javascript can be readily converted to Objective-C as shown below.</p>
<div class="codecolorer-container objc blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #11740a; font-style: italic;">// Converts an OS Grid reference to a lat/long location</span><br />
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>CLLocationCoordinate2D<span style="color: #002200;">&#41;</span> locationFromOSGrid<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">double</span><span style="color: #002200;">&#41;</span> eastings withNorthings<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">double</span><span style="color: #002200;">&#41;</span> northings <span style="color: #002200;">&#123;</span><br />
<br />
<span style="color: #a61390;">double</span> a <span style="color: #002200;">=</span> <span style="color: #2400d9;">6377563.396</span>;<br />
<span style="color: #a61390;">double</span> b <span style="color: #002200;">=</span> <span style="color: #2400d9;">6356256.910</span>;<br />
<br />
<span style="color: #a61390;">double</span> f0 <span style="color: #002200;">=</span> <span style="color: #2400d9;">0.9996012717</span>;<br />
<br />
<span style="color: #a61390;">double</span> lat0 <span style="color: #002200;">=</span> <span style="color: #2400d9;">49.0</span> <span style="color: #002200;">*</span> M_PI <span style="color: #002200;">/</span> <span style="color: #2400d9;">180.0</span>;<br />
<span style="color: #a61390;">double</span> lon0 <span style="color: #002200;">=</span> <span style="color: #002200;">-</span><span style="color: #2400d9;">2.0</span> <span style="color: #002200;">*</span> M_PI <span style="color: #002200;">/</span> <span style="color: #2400d9;">180.0</span>;<br />
<span style="color: #a61390;">double</span> n0 <span style="color: #002200;">=</span> <span style="color: #002200;">-</span><span style="color: #2400d9;">100000.0</span>;<br />
<span style="color: #a61390;">double</span> e0 <span style="color: #002200;">=</span> <span style="color: #2400d9;">400000.0</span>;<br />
<br />
<span style="color: #a61390;">double</span> e2 <span style="color: #002200;">=</span> <span style="color: #2400d9;">1.0</span> <span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>b <span style="color: #002200;">*</span> b<span style="color: #002200;">&#41;</span> <span style="color: #002200;">/</span> <span style="color: #002200;">&#40;</span>a <span style="color: #002200;">*</span> a<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> n <span style="color: #002200;">=</span> <span style="color: #002200;">&#40;</span>a <span style="color: #002200;">-</span> b<span style="color: #002200;">&#41;</span> <span style="color: #002200;">/</span> <span style="color: #002200;">&#40;</span>a <span style="color: #002200;">+</span> b<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> n2 <span style="color: #002200;">=</span> n <span style="color: #002200;">*</span> n;<br />
<span style="color: #a61390;">double</span> n3 <span style="color: #002200;">=</span> n <span style="color: #002200;">*</span> n <span style="color: #002200;">*</span> n;<br />
<br />
<span style="color: #a61390;">double</span> lat <span style="color: #002200;">=</span> lat0;<br />
<span style="color: #a61390;">double</span> M <span style="color: #002200;">=</span> <span style="color: #2400d9;">0.0</span>;<br />
<br />
<span style="color: #a61390;">do</span> <span style="color: #002200;">&#123;</span><br />
lat <span style="color: #002200;">=</span> <span style="color: #002200;">&#40;</span>northings <span style="color: #002200;">-</span> n0 <span style="color: #002200;">-</span> M<span style="color: #002200;">&#41;</span> <span style="color: #002200;">/</span> <span style="color: #002200;">&#40;</span>a <span style="color: #002200;">*</span> f0<span style="color: #002200;">&#41;</span> <span style="color: #002200;">+</span> lat;<br />
<br />
<span style="color: #a61390;">double</span> Ma <span style="color: #002200;">=</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">1.0</span> <span style="color: #002200;">+</span> n <span style="color: #002200;">+</span> <span style="color: #002200;">&#40;</span><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">5.0</span><span style="color: #002200;">/</span><span style="color: #2400d9;">4.0</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> n2<span style="color: #002200;">&#41;</span> <span style="color: #002200;">+</span> <span style="color: #002200;">&#40;</span><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">5.0</span><span style="color: #002200;">/</span><span style="color: #2400d9;">4.0</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> n3<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> <span style="color: #002200;">&#40;</span>lat <span style="color: #002200;">-</span> lat0<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> Mb <span style="color: #002200;">=</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">3.0</span> <span style="color: #002200;">*</span> n <span style="color: #002200;">+</span> <span style="color: #2400d9;">3.0</span> <span style="color: #002200;">*</span> n <span style="color: #002200;">*</span> n <span style="color: #002200;">+</span> <span style="color: #002200;">&#40;</span><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">21.0</span><span style="color: #002200;">/</span><span style="color: #2400d9;">8.0</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> n3<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/sin.html"><span style="color: #a61390;">sin</span></a><span style="color: #002200;">&#40;</span>lat<span style="color: #002200;">-</span>lat0<span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/cos.html"><span style="color: #a61390;">cos</span></a><span style="color: #002200;">&#40;</span>lat<span style="color: #002200;">+</span>lat0<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> Mc <span style="color: #002200;">=</span> <span style="color: #002200;">&#40;</span><span style="color: #002200;">&#40;</span><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">15.0</span><span style="color: #002200;">/</span><span style="color: #2400d9;">8.0</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> n2<span style="color: #002200;">&#41;</span> <span style="color: #002200;">+</span> <span style="color: #002200;">&#40;</span><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">15.0</span><span style="color: #002200;">/</span><span style="color: #2400d9;">8.0</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> n3<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/sin.html"><span style="color: #a61390;">sin</span></a><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">2.0</span> <span style="color: #002200;">*</span> <span style="color: #002200;">&#40;</span>lat <span style="color: #002200;">-</span> lat0<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/cos.html"><span style="color: #a61390;">cos</span></a><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">2.0</span> <span style="color: #002200;">*</span> <span style="color: #002200;">&#40;</span>lat <span style="color: #002200;">+</span> lat0<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> Md <span style="color: #002200;">=</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">35.0</span><span style="color: #002200;">/</span><span style="color: #2400d9;">24.0</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> n3 <span style="color: #002200;">*</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/sin.html"><span style="color: #a61390;">sin</span></a><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">3.0</span> <span style="color: #002200;">*</span> <span style="color: #002200;">&#40;</span>lat<span style="color: #002200;">-</span>lat0<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/cos.html"><span style="color: #a61390;">cos</span></a><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">3.0</span> <span style="color: #002200;">*</span> <span style="color: #002200;">&#40;</span>lat<span style="color: #002200;">+</span>lat0<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>;<br />
M <span style="color: #002200;">=</span> b <span style="color: #002200;">*</span> f0 <span style="color: #002200;">*</span> <span style="color: #002200;">&#40;</span>Ma <span style="color: #002200;">-</span> Mb <span style="color: #002200;">+</span> Mc <span style="color: #002200;">-</span> Md<span style="color: #002200;">&#41;</span>;<br />
<br />
<span style="color: #002200;">&#125;</span> <span style="color: #a61390;">while</span> <span style="color: #002200;">&#40;</span>northings <span style="color: #002200;">-</span> n0 <span style="color: #002200;">-</span> M &gt;<span style="color: #002200;">=</span> <span style="color: #2400d9;">0.0001</span><span style="color: #002200;">&#41;</span>;<br />
<br />
<span style="color: #a61390;">double</span> cosLat <span style="color: #002200;">=</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/cos.html"><span style="color: #a61390;">cos</span></a><span style="color: #002200;">&#40;</span>lat<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> sinLat <span style="color: #002200;">=</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/sin.html"><span style="color: #a61390;">sin</span></a><span style="color: #002200;">&#40;</span>lat<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> nu <span style="color: #002200;">=</span> a <span style="color: #002200;">*</span> f0 <span style="color: #002200;">/</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/sqrt.html"><span style="color: #a61390;">sqrt</span></a><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">1.0</span> <span style="color: #002200;">-</span> e2 <span style="color: #002200;">*</span> sinLat <span style="color: #002200;">*</span> sinLat<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> rho <span style="color: #002200;">=</span> a <span style="color: #002200;">*</span> f0 <span style="color: #002200;">*</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">1.0</span> <span style="color: #002200;">-</span> e2<span style="color: #002200;">&#41;</span><span style="color: #002200;">/</span><a href="http://www.opengroup.org/onlinepubs/009695399/functions/pow.html"><span style="color: #a61390;">pow</span></a><span style="color: #002200;">&#40;</span><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">1.0</span> <span style="color: #002200;">-</span> e2 <span style="color: #002200;">*</span> sinLat <span style="color: #002200;">*</span> sinLat<span style="color: #002200;">&#41;</span>, <span style="color: #2400d9;">1.5</span><span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> eta2 <span style="color: #002200;">=</span> nu <span style="color: #002200;">/</span> rho <span style="color: #002200;">-</span> <span style="color: #2400d9;">1.0</span>;<br />
<br />
<span style="color: #a61390;">double</span> tanLat <span style="color: #002200;">=</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/tan.html"><span style="color: #a61390;">tan</span></a><span style="color: #002200;">&#40;</span>lat<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> tan2Lat <span style="color: #002200;">=</span> tanLat <span style="color: #002200;">*</span> tanLat;<br />
<span style="color: #a61390;">double</span> tan4Lat <span style="color: #002200;">=</span> tan2Lat <span style="color: #002200;">*</span> tan2Lat;<br />
<span style="color: #a61390;">double</span> tan6Lat <span style="color: #002200;">=</span> tan4Lat <span style="color: #002200;">*</span> tan2Lat;<br />
<br />
<span style="color: #a61390;">double</span> secLat <span style="color: #002200;">=</span> <span style="color: #2400d9;">1.0</span> <span style="color: #002200;">/</span> cosLat;<br />
<span style="color: #a61390;">double</span> nu3 <span style="color: #002200;">=</span> nu <span style="color: #002200;">*</span> nu <span style="color: #002200;">*</span> nu;<br />
<span style="color: #a61390;">double</span> nu5 <span style="color: #002200;">=</span> nu3 <span style="color: #002200;">*</span> nu <span style="color: #002200;">*</span> nu;<br />
<span style="color: #a61390;">double</span> nu7 <span style="color: #002200;">=</span> nu5 <span style="color: #002200;">*</span> nu <span style="color: #002200;">*</span> nu;<br />
<br />
<span style="color: #a61390;">double</span> vii <span style="color: #002200;">=</span> tanLat <span style="color: #002200;">/</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">2.0</span> <span style="color: #002200;">*</span> rho <span style="color: #002200;">*</span> nu<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> viii <span style="color: #002200;">=</span> tanLat <span style="color: #002200;">/</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">24.0</span> <span style="color: #002200;">*</span> rho <span style="color: #002200;">*</span> nu3<span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">5.0</span> <span style="color: #002200;">+</span> <span style="color: #2400d9;">3.0</span> <span style="color: #002200;">*</span> tan2Lat <span style="color: #002200;">+</span> eta2 <span style="color: #002200;">-</span> <span style="color: #2400d9;">9.0</span> <span style="color: #002200;">*</span> tan2Lat <span style="color: #002200;">*</span> eta2<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> ix <span style="color: #002200;">=</span> tanLat <span style="color: #002200;">/</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">720.0</span> <span style="color: #002200;">*</span> rho <span style="color: #002200;">*</span> nu5<span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">61.0</span> <span style="color: #002200;">+</span> <span style="color: #2400d9;">90.0</span> <span style="color: #002200;">*</span> tan2Lat <span style="color: #002200;">+</span> <span style="color: #2400d9;">45.0</span> <span style="color: #002200;">*</span> tan4Lat<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> x <span style="color: #002200;">=</span> secLat <span style="color: #002200;">/</span> nu;<br />
<span style="color: #a61390;">double</span> xi <span style="color: #002200;">=</span> secLat <span style="color: #002200;">/</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">6.0</span> <span style="color: #002200;">*</span> nu3<span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> <span style="color: #002200;">&#40;</span>nu<span style="color: #002200;">/</span>rho <span style="color: #002200;">+</span> <span style="color: #2400d9;">2.0</span> <span style="color: #002200;">*</span> tan2Lat<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> xii <span style="color: #002200;">=</span> secLat <span style="color: #002200;">/</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">120.0</span> <span style="color: #002200;">*</span> nu5<span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">5.0</span> <span style="color: #002200;">+</span> <span style="color: #2400d9;">28.0</span> <span style="color: #002200;">*</span> tan2Lat <span style="color: #002200;">+</span> <span style="color: #2400d9;">24.0</span> <span style="color: #002200;">*</span> tan4Lat<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> xiia <span style="color: #002200;">=</span> secLat <span style="color: #002200;">/</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">5040.0</span> <span style="color: #002200;">*</span> nu7<span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">61.0</span> <span style="color: #002200;">+</span> <span style="color: #2400d9;">662.0</span> <span style="color: #002200;">*</span> tan2Lat <span style="color: #002200;">+</span> <span style="color: #2400d9;">1320.0</span> <span style="color: #002200;">*</span> tan4Lat <span style="color: #002200;">+</span> <span style="color: #2400d9;">720.0</span> <span style="color: #002200;">*</span> tan6Lat<span style="color: #002200;">&#41;</span>;<br />
<br />
<span style="color: #a61390;">double</span> dE <span style="color: #002200;">=</span> <span style="color: #002200;">&#40;</span>eastings <span style="color: #002200;">-</span> e0<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> dE2 <span style="color: #002200;">=</span> dE <span style="color: #002200;">*</span> dE;<br />
<span style="color: #a61390;">double</span> dE3 <span style="color: #002200;">=</span> dE2 <span style="color: #002200;">*</span> dE;<br />
<span style="color: #a61390;">double</span> dE4 <span style="color: #002200;">=</span> dE2 <span style="color: #002200;">*</span> dE2;<br />
<span style="color: #a61390;">double</span> dE5 <span style="color: #002200;">=</span> dE3 <span style="color: #002200;">*</span> dE2;<br />
<span style="color: #a61390;">double</span> dE6 <span style="color: #002200;">=</span> dE3 <span style="color: #002200;">*</span> dE3;<br />
<span style="color: #a61390;">double</span> dE7 <span style="color: #002200;">=</span> dE3 <span style="color: #002200;">*</span> dE4;<br />
<br />
lat <span style="color: #002200;">=</span> lat <span style="color: #002200;">-</span> vii <span style="color: #002200;">*</span> dE2 <span style="color: #002200;">+</span> viii <span style="color: #002200;">*</span> dE4 <span style="color: #002200;">-</span> ix <span style="color: #002200;">*</span> dE6;<br />
<span style="color: #a61390;">double</span> lon <span style="color: #002200;">=</span> lon0 <span style="color: #002200;">+</span> x <span style="color: #002200;">*</span> dE <span style="color: #002200;">-</span> xi <span style="color: #002200;">*</span> dE3 <span style="color: #002200;">+</span> xii <span style="color: #002200;">*</span> dE5 <span style="color: #002200;">-</span> xiia <span style="color: #002200;">*</span> dE7;<br />
<br />
<span style="color: #11740a; font-style: italic;">// Convert to degrees</span><br />
lat <span style="color: #002200;">=</span> lat <span style="color: #002200;">*</span> <span style="color: #2400d9;">180.0</span> <span style="color: #002200;">/</span> M_PI;<br />
lon <span style="color: #002200;">=</span> lon <span style="color: #002200;">*</span> <span style="color: #2400d9;">180.0</span> <span style="color: #002200;">/</span> M_PI;<br />
<br />
<span style="color: #11740a; font-style: italic;">// Return the 2D location</span><br />
<span style="color: #a61390;">return</span> CLLocationCoordinate2DMake<span style="color: #002200;">&#40;</span>lat, lon<span style="color: #002200;">&#41;</span>;<br />
<br />
<span style="color: #002200;">&#125;</span></div></div>
<p>These figures however are based on the OSGB36 datum and not the geocentric WGS84 datum that you&#8217;ll need to be using to display locations accurately on iPhone or iPad. That conversion is achieved using the following:</p>
<div class="codecolorer-container objc blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #11740a; font-style: italic;">// Convert from OSGB36 to WGS84</span><br />
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>CLLocationCoordinate2D<span style="color: #002200;">&#41;</span> convertOSGB36toWGS84<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>CLLocationCoordinate2D<span style="color: #002200;">&#41;</span> p1 <span style="color: #002200;">&#123;</span><br />
<span style="color: #a61390;">return</span> <span style="color: #002200;">&#91;</span>self convert<span style="color: #002200;">:</span> p1 withSourceEllipse<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span>self.ellipse objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;Airy1830&quot;</span><span style="color: #002200;">&#93;</span> withTransform<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span>self.helmert objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;OSGB36toWGS84&quot;</span><span style="color: #002200;">&#93;</span> withTargetEllipse<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span>self.ellipse objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;WGS84&quot;</span><span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span>;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #11740a; font-style: italic;">// Convert from WGS84 to OSGB36</span><br />
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>CLLocationCoordinate2D<span style="color: #002200;">&#41;</span> convertWGS84toOSGB36<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>CLLocationCoordinate2D<span style="color: #002200;">&#41;</span> p1 <span style="color: #002200;">&#123;</span><br />
<span style="color: #a61390;">return</span> <span style="color: #002200;">&#91;</span>self convert<span style="color: #002200;">:</span> p1 withSourceEllipse<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span>self.ellipse objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;WGS84&quot;</span><span style="color: #002200;">&#93;</span> withTransform<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span>self.helmert objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;WGS84toOSGB36&quot;</span><span style="color: #002200;">&#93;</span> withTargetEllipse<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span>self.ellipse objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;Airy1830&quot;</span><span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span>;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #11740a; font-style: italic;">// Transform from one ellipse to another</span><br />
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>CLLocationCoordinate2D<span style="color: #002200;">&#41;</span> convert<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>CLLocationCoordinate2D<span style="color: #002200;">&#41;</span> p1 withSourceEllipse<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> e1 withTransform<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> t withTargetEllipse<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> e2 <span style="color: #002200;">&#123;</span><br />
<br />
<span style="color: #a61390;">double</span> p1Lat <span style="color: #002200;">=</span> p1.latitude <span style="color: #002200;">*</span> M_PI <span style="color: #002200;">/</span> <span style="color: #2400d9;">180.0</span>;<br />
<span style="color: #a61390;">double</span> p1Lon <span style="color: #002200;">=</span> p1.longitude <span style="color: #002200;">*</span> M_PI <span style="color: #002200;">/</span> <span style="color: #2400d9;">180.0</span>;<br />
<br />
<span style="color: #a61390;">double</span> a <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>e1 objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;a&quot;</span><span style="color: #002200;">&#93;</span> doubleValue<span style="color: #002200;">&#93;</span>;<br />
<span style="color: #a61390;">double</span> b <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>e1 objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;b&quot;</span><span style="color: #002200;">&#93;</span> doubleValue<span style="color: #002200;">&#93;</span>;<br />
<br />
<span style="color: #a61390;">double</span> sinPhi <span style="color: #002200;">=</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/sin.html"><span style="color: #a61390;">sin</span></a><span style="color: #002200;">&#40;</span>p1Lat<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> cosPhi <span style="color: #002200;">=</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/cos.html"><span style="color: #a61390;">cos</span></a><span style="color: #002200;">&#40;</span>p1Lat<span style="color: #002200;">&#41;</span>;<br />
<br />
<span style="color: #a61390;">double</span> sinLambda <span style="color: #002200;">=</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/sin.html"><span style="color: #a61390;">sin</span></a><span style="color: #002200;">&#40;</span>p1Lon<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> cosLambda <span style="color: #002200;">=</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/cos.html"><span style="color: #a61390;">cos</span></a><span style="color: #002200;">&#40;</span>p1Lon<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> h <span style="color: #002200;">=</span> <span style="color: #2400d9;">0.0</span>;<br />
<br />
<span style="color: #a61390;">double</span> eSq <span style="color: #002200;">=</span> <span style="color: #002200;">&#40;</span>a <span style="color: #002200;">*</span> a <span style="color: #002200;">-</span> b <span style="color: #002200;">*</span>b<span style="color: #002200;">&#41;</span> <span style="color: #002200;">/</span> <span style="color: #002200;">&#40;</span>a <span style="color: #002200;">*</span> a<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> nu <span style="color: #002200;">=</span> a <span style="color: #002200;">/</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/sqrt.html"><span style="color: #a61390;">sqrt</span></a><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">1.0</span> <span style="color: #002200;">-</span> eSq <span style="color: #002200;">*</span> sinPhi <span style="color: #002200;">*</span> sinPhi<span style="color: #002200;">&#41;</span>;<br />
<br />
<span style="color: #a61390;">double</span> x1 <span style="color: #002200;">=</span> <span style="color: #002200;">&#40;</span>nu <span style="color: #002200;">+</span> h<span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> cosPhi <span style="color: #002200;">*</span> cosLambda;<br />
<span style="color: #a61390;">double</span> y1 <span style="color: #002200;">=</span> <span style="color: #002200;">&#40;</span>nu <span style="color: #002200;">+</span> h<span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> cosPhi <span style="color: #002200;">*</span> sinLambda;<br />
<span style="color: #a61390;">double</span> z1 <span style="color: #002200;">=</span> <span style="color: #002200;">&#40;</span><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">1.0</span> <span style="color: #002200;">-</span> eSq<span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> nu <span style="color: #002200;">+</span> h<span style="color: #002200;">&#41;</span> <span style="color: #002200;">*</span> sinPhi;<br />
<br />
<span style="color: #a61390;">double</span> tx <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>t objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;tx&quot;</span><span style="color: #002200;">&#93;</span> doubleValue<span style="color: #002200;">&#93;</span>;<br />
<span style="color: #a61390;">double</span> ty <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>t objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;ty&quot;</span><span style="color: #002200;">&#93;</span> doubleValue<span style="color: #002200;">&#93;</span>;<br />
<span style="color: #a61390;">double</span> tz <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>t objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;tz&quot;</span><span style="color: #002200;">&#93;</span> doubleValue<span style="color: #002200;">&#93;</span>;<br />
<br />
<span style="color: #a61390;">double</span> rx <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>t objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;rx&quot;</span><span style="color: #002200;">&#93;</span> doubleValue<span style="color: #002200;">&#93;</span> <span style="color: #002200;">/</span> <span style="color: #2400d9;">3600.0</span> <span style="color: #002200;">*</span> M_PI <span style="color: #002200;">/</span> <span style="color: #2400d9;">180.0</span>;<br />
<span style="color: #a61390;">double</span> ry <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>t objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;ry&quot;</span><span style="color: #002200;">&#93;</span> doubleValue<span style="color: #002200;">&#93;</span> <span style="color: #002200;">/</span> <span style="color: #2400d9;">3600.0</span> <span style="color: #002200;">*</span> M_PI <span style="color: #002200;">/</span> <span style="color: #2400d9;">180.0</span>;<br />
<span style="color: #a61390;">double</span> rz <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>t objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;rz&quot;</span><span style="color: #002200;">&#93;</span> doubleValue<span style="color: #002200;">&#93;</span> <span style="color: #002200;">/</span> <span style="color: #2400d9;">3600.0</span> <span style="color: #002200;">*</span> M_PI <span style="color: #002200;">/</span> <span style="color: #2400d9;">180.0</span>;<br />
<br />
<span style="color: #a61390;">double</span> s1 <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>t objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;s&quot;</span><span style="color: #002200;">&#93;</span> doubleValue<span style="color: #002200;">&#93;</span> <span style="color: #002200;">/</span> <span style="color: #2400d9;">1000000.0</span> <span style="color: #002200;">+</span> <span style="color: #2400d9;">1</span>;<br />
<br />
<span style="color: #a61390;">double</span> x2 <span style="color: #002200;">=</span> tx <span style="color: #002200;">+</span> x1<span style="color: #002200;">*</span>s1 <span style="color: #002200;">-</span> y1<span style="color: #002200;">*</span>rz <span style="color: #002200;">+</span> z1<span style="color: #002200;">*</span>ry;<br />
<span style="color: #a61390;">double</span> y2 <span style="color: #002200;">=</span> ty <span style="color: #002200;">+</span> x1<span style="color: #002200;">*</span>rz <span style="color: #002200;">+</span> y1<span style="color: #002200;">*</span>s1 <span style="color: #002200;">-</span> z1<span style="color: #002200;">*</span>rx;<br />
<span style="color: #a61390;">double</span> z2 <span style="color: #002200;">=</span> tz <span style="color: #002200;">-</span> x1<span style="color: #002200;">*</span>ry <span style="color: #002200;">+</span> y1<span style="color: #002200;">*</span>rx <span style="color: #002200;">+</span> z1<span style="color: #002200;">*</span>s1;<br />
<br />
a <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>e2 objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;a&quot;</span><span style="color: #002200;">&#93;</span> doubleValue<span style="color: #002200;">&#93;</span>;<br />
b <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>e2 objectForKey<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;b&quot;</span><span style="color: #002200;">&#93;</span> doubleValue<span style="color: #002200;">&#93;</span>;<br />
<br />
<span style="color: #a61390;">double</span> precision <span style="color: #002200;">=</span> <span style="color: #2400d9;">4</span> <span style="color: #002200;">/</span> a;<br />
<br />
eSq <span style="color: #002200;">=</span> <span style="color: #002200;">&#40;</span>a<span style="color: #002200;">*</span>a <span style="color: #002200;">-</span> b<span style="color: #002200;">*</span>b<span style="color: #002200;">&#41;</span> <span style="color: #002200;">/</span> <span style="color: #002200;">&#40;</span>a<span style="color: #002200;">*</span>a<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> p <span style="color: #002200;">=</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/sqrt.html"><span style="color: #a61390;">sqrt</span></a><span style="color: #002200;">&#40;</span>x2<span style="color: #002200;">*</span>x2 <span style="color: #002200;">+</span> y2<span style="color: #002200;">*</span>y2<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> phi <span style="color: #002200;">=</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/atan2.html"><span style="color: #a61390;">atan2</span></a><span style="color: #002200;">&#40;</span>z2, p<span style="color: #002200;">*</span><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">1</span><span style="color: #002200;">-</span>eSq<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">double</span> phiP <span style="color: #002200;">=</span> <span style="color: #2400d9;">2</span> <span style="color: #002200;">*</span> M_PI;<br />
<br />
<span style="color: #a61390;">while</span> <span style="color: #002200;">&#40;</span><a href="http://www.opengroup.org/onlinepubs/009695399/functions/abs.html"><span style="color: #a61390;">abs</span></a><span style="color: #002200;">&#40;</span>phi<span style="color: #002200;">-</span>phiP<span style="color: #002200;">&#41;</span> &gt; precision<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span><br />
nu <span style="color: #002200;">=</span> a <span style="color: #002200;">/</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/sqrt.html"><span style="color: #a61390;">sqrt</span></a><span style="color: #002200;">&#40;</span><span style="color: #2400d9;">1</span> <span style="color: #002200;">-</span> eSq<span style="color: #002200;">*</span><a href="http://www.opengroup.org/onlinepubs/009695399/functions/sin.html"><span style="color: #a61390;">sin</span></a><span style="color: #002200;">&#40;</span>phi<span style="color: #002200;">&#41;</span><span style="color: #002200;">*</span><a href="http://www.opengroup.org/onlinepubs/009695399/functions/sin.html"><span style="color: #a61390;">sin</span></a><span style="color: #002200;">&#40;</span>phi<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>;<br />
phiP <span style="color: #002200;">=</span> phi;<br />
phi <span style="color: #002200;">=</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/atan2.html"><span style="color: #a61390;">atan2</span></a><span style="color: #002200;">&#40;</span>z2 <span style="color: #002200;">+</span> eSq<span style="color: #002200;">*</span>nu<span style="color: #002200;">*</span><a href="http://www.opengroup.org/onlinepubs/009695399/functions/sin.html"><span style="color: #a61390;">sin</span></a><span style="color: #002200;">&#40;</span>phi<span style="color: #002200;">&#41;</span>, p<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #a61390;">double</span> lambda <span style="color: #002200;">=</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/atan2.html"><span style="color: #a61390;">atan2</span></a><span style="color: #002200;">&#40;</span>y2, x2<span style="color: #002200;">&#41;</span>;<br />
h <span style="color: #002200;">=</span> p<span style="color: #002200;">/</span><a href="http://www.opengroup.org/onlinepubs/009695399/functions/cos.html"><span style="color: #a61390;">cos</span></a><span style="color: #002200;">&#40;</span>phi<span style="color: #002200;">&#41;</span> <span style="color: #002200;">-</span> nu;<br />
<br />
phi <span style="color: #002200;">=</span> phi <span style="color: #002200;">*</span> <span style="color: #2400d9;">180.0</span> <span style="color: #002200;">/</span> M_PI;<br />
lambda <span style="color: #002200;">=</span> lambda <span style="color: #002200;">*</span> <span style="color: #2400d9;">180.0</span> <span style="color: #002200;">/</span> M_PI;<br />
<br />
<span style="color: #a61390;">return</span> CLLocationCoordinate2DMake<span style="color: #002200;">&#40;</span>phi, lambda<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #002200;">&#125;</span></div></div>
<p>You will need to have defined the following items somewhere in your class:</p>
<div class="codecolorer-container objc blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #11740a; font-style: italic;">// Define the conversion constants</span><br />
<a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> <span style="color: #002200;">*</span>wgs84 <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> dictionaryWithObjects<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/"><span style="color: #400080;">NSArray</span></a> arrayWithObjects<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #2400d9;">6378137.0</span><span style="color: #002200;">&#93;</span>, <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #2400d9;">6356752.3142</span><span style="color: #002200;">&#93;</span>, <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">1.0</span> <span style="color: #002200;">/</span> <span style="color: #2400d9;">298.257223563</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#93;</span>, <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; forKeys<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/"><span style="color: #400080;">NSArray</span></a> arrayWithObjects<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;a&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;b&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;f&quot;</span>, <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span>;<br />
<a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> <span style="color: #002200;">*</span>airy1830 <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> dictionaryWithObjects<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/"><span style="color: #400080;">NSArray</span></a> arrayWithObjects<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #2400d9;">6377563.396</span><span style="color: #002200;">&#93;</span>, <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #2400d9;">6356256.910</span><span style="color: #002200;">&#93;</span>, <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">1.0</span> <span style="color: #002200;">/</span> <span style="color: #2400d9;">299.3249646</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#93;</span>, <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;forKeys<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/"><span style="color: #400080;">NSArray</span></a> arrayWithObjects<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;a&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;b&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;f&quot;</span>, <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span style="color: #11740a; font-style: italic;">// Create the ellipse set</span><br />
ellipse <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> dictionaryWithObjects<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/"><span style="color: #400080;">NSArray</span></a> arrayWithObjects<span style="color: #002200;">:</span> wgs84, airy1830, <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; forKeys<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/"><span style="color: #400080;">NSArray</span></a> arrayWithObjects<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;WGS84&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;Airy1830&quot;</span>, <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span> retain<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span style="color: #11740a; font-style: italic;">// Transformation constants</span><br />
<a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> <span style="color: #002200;">*</span>hWGS84toOSGB36 <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> dictionaryWithObjects<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/"><span style="color: #400080;">NSArray</span></a> arrayWithObjects<span style="color: #002200;">:</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #002200;">-</span><span style="color: #2400d9;">446.448</span><span style="color: #002200;">&#93;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #2400d9;">125.157</span><span style="color: #002200;">&#93;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #002200;">-</span><span style="color: #2400d9;">542.060</span><span style="color: #002200;">&#93;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #002200;">-</span><span style="color: #2400d9;">0.1502</span><span style="color: #002200;">&#93;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #002200;">-</span><span style="color: #2400d9;">0.2470</span><span style="color: #002200;">&#93;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #002200;">-</span><span style="color: #2400d9;">0.8421</span><span style="color: #002200;">&#93;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #2400d9;">20.4894</span><span style="color: #002200;">&#93;</span>, <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;forKeys<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/"><span style="color: #400080;">NSArray</span></a> arrayWithObjects<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;tx&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;ty&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;tz&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;rx&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;ry&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;rz&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;s&quot;</span>, <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> <span style="color: #002200;">*</span>hOSGB36toWGS84 <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> dictionaryWithObjects<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/"><span style="color: #400080;">NSArray</span></a> arrayWithObjects<span style="color: #002200;">:</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #2400d9;">446.448</span><span style="color: #002200;">&#93;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #002200;">-</span><span style="color: #2400d9;">125.157</span><span style="color: #002200;">&#93;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #2400d9;">542.0600</span><span style="color: #002200;">&#93;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #2400d9;">0.1502</span><span style="color: #002200;">&#93;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #2400d9;">0.2470</span><span style="color: #002200;">&#93;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #2400d9;">0.8421</span><span style="color: #002200;">&#93;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/"><span style="color: #400080;">NSNumber</span></a> numberWithDouble<span style="color: #002200;">:</span> <span style="color: #002200;">-</span><span style="color: #2400d9;">20.4894</span><span style="color: #002200;">&#93;</span>, <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;forKeys<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/"><span style="color: #400080;">NSArray</span></a> arrayWithObjects<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;tx&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;ty&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;tz&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;rx&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;ry&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;rz&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;s&quot;</span>, <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span style="color: #11740a; font-style: italic;">// Create the helmert set</span><br />
helmert <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> dictionaryWithObjects<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/"><span style="color: #400080;">NSArray</span></a> arrayWithObjects<span style="color: #002200;">:</span> hWGS84toOSGB36, hOSGB36toWGS84, <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; forKeys<span style="color: #002200;">:</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/"><span style="color: #400080;">NSArray</span></a> arrayWithObjects<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;WGS84toOSGB36&quot;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;OSGB36toWGS84&quot;</span>, <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span> retain<span style="color: #002200;">&#93;</span>;</div></div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.virorum.com/2011/12/converting-os-grid-references-to-latitudelongitude-on-ios/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The Shift In Portable Gaming</title>
		<link>http://www.virorum.com/2011/11/the-shift-in-portable-gaming/</link>
		<comments>http://www.virorum.com/2011/11/the-shift-in-portable-gaming/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 14:25:14 +0000</pubDate>
		<dc:creator>Miles</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[360]]></category>
		<category><![CDATA[3ds]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[creative]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[ds]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[nintendo]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[ps3]]></category>
		<category><![CDATA[psp]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[sony]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[vita]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[wii]]></category>
		<category><![CDATA[xbox]]></category>

		<guid isPermaLink="false">http://www.virorum.com/?p=617</guid>
		<description><![CDATA[This from MacRumours this morning: Mobile analytics firm Flurry today reports on the continuing shift in portable gaming from dedicated devices to smartphones and other multipurpose devices. According to results compiled by Flurry from NPD market research and Flurry&#8217;s own mobile app data, Apple&#8217;s iOS and Google&#8217;s Android mobile operating systems will account for 58% of portable...]]></description>
			<content:encoded><![CDATA[<p>This from <a title="MacRumours" href="http://www.macrumors.com/" target="_blank">MacRumours</a> this morning:</p>
<blockquote><p>Mobile analytics firm Flurry today <a href="http://blog.flurry.com/bid/77424/Is-it-Game-Over-for-Nintendo-DS-and-Sony-PSP">reports</a> on the continuing shift in portable gaming from dedicated devices to smartphones and other multipurpose devices. According to results compiled by Flurry from NPD market research and Flurry&#8217;s own mobile app data, Apple&#8217;s iOS and Google&#8217;s Android mobile operating systems will account for 58% of portable gaming revenue in the United States for 2011, an almost exact flip-flop from 2010 when dedicated device leaders Nintendo and Sony held 57% of the market.</p>
<p><a title="iOS and Android Grab 58% of U.S. Portable Gaming Revenue" href="http://www.macrumors.com/2011/11/09/ios-and-android-grab-58-of-u-s-portable-gaming-revenue/" target="_blank"><em>(Read more here)</em></a></p></blockquote>
<p>This is pretty eventful news. As <strong><a title="Nintendo 3DS" href="http://www.nintendo.com/3ds/" target="_blank">Nintendo&#8217;s 3DS</a></strong> continues to struggle to gain a foothold in the market, despite a pretty sizeable price cut, and as Sony continues the hype for the launch of of <strong><a title="PSP Vita" href="http://us.playstation.com/psvita/tech-specs/" target="_blank">PSP Vita</a></strong>, we learn that portable gaming is overwhelmingly going mobile. People don&#8217;t appear to be so interested in paying premium prices for large games on dedicated handheld units. Not when the option of cheap, bit size games that can be picked up and put down on a whim are available for high cost mobile devices that they already own and carry with them as a matter of course.</p>
<p>Gaming in the home is already pretty expensive in today&#8217;s economic climate, with <strong><a title="XBox 360" href="http://www.xbox.com/en-GB" target="_blank">XBox 360</a></strong> and <strong><a title="PS3" href="http://uk.playstation.com/ps3/" target="_blank">PS3</a></strong> games averaging around £40 for a new copy. These are the high production value games that people want to sit down, involve themselves in and experience. Portable gaming has always been about dipping into and out of something on the go. Sure, graphics and gameplay have always been important, but are people really going to be so eager to be presented with epic stories on expensive, graphically capable machines when they&#8217;re on the tube, train or bus? Especially when they may have to break away from their quest at any moment? Not when you can lose yourself in a level or three of <strong><a title="Angry Birds" href="http://itunes.apple.com/gb/app/angry-birds/id343200656?mt=8" target="_blank">Angry Birds</a></strong> or <strong><a title="Plants vs Zombies" href="http://itunes.apple.com/gb/app/plants-vs.-zombies/id350642635?mt=8" target="_blank">Plants vs Zombies</a></strong> which play just as well for no more than £1.99. Big name game developers can&#8217;t compete with that, and it&#8217;s becoming clearer and clearer that not only does the consumer public know this, they&#8217;re perfectly happy with it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.virorum.com/2011/11/the-shift-in-portable-gaming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Killing Flash Mobile Browser</title>
		<link>http://www.virorum.com/2011/11/adobe-killing-flash-mobile-browser/</link>
		<comments>http://www.virorum.com/2011/11/adobe-killing-flash-mobile-browser/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 17:50:27 +0000</pubDate>
		<dc:creator>Miles</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[digital]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[global]]></category>
		<category><![CDATA[globe]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.virorum.com/?p=609</guid>
		<description><![CDATA[Steve Jobs&#8217; final victory? Adobe announced yesterday that they are to cease their mobile flash plugin browser. From ZDNet: the e-mail briefing to Adobe’s partners has been summed up as follows: Adobe is Stopping development on Flash Player for browsers on mobile. Adobe is now focusing their development efforts on: Applications for mobile Expressive content on...]]></description>
			<content:encoded><![CDATA[<p>Steve Jobs&#8217; final victory?</p>
<p>Adobe announced yesterday that they are to cease their mobile flash plugin browser.</p>
<p>From <strong><a title="ZDNet" href="http://www.zdnet.com/blog/perlow/exclusive-adobe-ceases-development-on-mobile-browser-flash-refocuses-efforts-on-html5-updated/19226">ZDNet</a></strong>:</p>
<blockquote><p>the e-mail briefing to Adobe’s partners has been summed up as follows:</p>
<ul>
<li>Adobe is <strong>Stopping development on Flash Player for browsers on mobile.</strong></li>
</ul>
<p>Adobe is now focusing their development efforts on:</p>
<ul>
<li>Applications for mobile</li>
<li>Expressive content on the desktop (in and out of browser)</li>
<li>Increasing their investments in HTML5 in general</li>
</ul>
</blockquote>
<p>This is an extremely important development, for a couple of reasons. Firstly, if anyone doubted Apple&#8217;s power over the mobile market, look no further. All Android handsets are Flash compatible, it was only Apple that refused to use it on their iOS devices. A few years after Apple made that decision &#8211; a decision that, at the time, seemed stunningly ignorant on Apple&#8217;s part &#8211; Adobe have finally capitulated and ceased development on their Flash browser. Not only that, they are going to follow Apple&#8217;s long held line that HTML5 is the only way forward for the mobile realm.</p>
<p>The second point follows on from the above. With the Flash mobile browser now confirmed to be dead, and with the ever increasing amount of online time being logged through mobile devices including phones and tablets, the way now seems clear for HTML5 to really take off as the sole multimedia experience online. The impact will not be felt anywhere near as much on iOS as it will on Android, but it is a huge development for the future of mobile browsing, whichever platform a user is on.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.virorum.com/2011/11/adobe-killing-flash-mobile-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Metro Online</title>
		<link>http://www.virorum.com/2011/11/metro-online/</link>
		<comments>http://www.virorum.com/2011/11/metro-online/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 16:39:02 +0000</pubDate>
		<dc:creator>Miles</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mobile Apps for iOS And Android]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[metro]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[sports]]></category>

		<guid isPermaLink="false">http://www.virorum.com/?p=604</guid>
		<description><![CDATA[Bought in by Metro to redevelop their existing Online App, Virorum rebuilt the structure of the app from the ground up into one of the quickest, most responsive news apps available on the app store. Features include: Browse through the latest and greatest Showbiz, News, Sport, Weird and Tech articles with ease. Culture vultures will...]]></description>
			<content:encoded><![CDATA[<p>Bought in by <strong><a title="Metro" href="http://www.virorum.com/2011/04/metro/">Metro</a></strong> to redevelop their existing Online App, <strong>Virorum</strong> rebuilt the structure of the app from the ground up into one of the quickest, most responsive news apps available on the app store.</p>
<p>Features include:</p>
<p>Browse through the latest and greatest Showbiz, News, Sport, Weird and Tech articles with ease. Culture vultures will also find the latest Film, Music and TV reviews at their fingertips.</p>
<p>From the front page, you can flip straight through to all the top stories directly. And because Metro is updated throughout the day, every day – it’s always real-time news!</p>
<p>The app is also visually attractive, with great pictures conveying everything from celebrity gossip to random animal stories.</p>
<p>And if you have time to browse, you’ll find lots of handy links that’ll take you from one interesting place to another – if you know your friends will like something you find, it’s also easy to share through email, Facebook and Twitter.</p>
<p>&nbsp;</p>
<p>To download Metro Online for iPhone and iPad, click below.</p>
<p><a title="Metro Online" href="http://itunes.apple.com/gb/app/metro-online/id375147109?mt=8"><strong>Metro Online</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.virorum.com/2011/11/metro-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iOS Video Support &#8211; Challenges &amp; Quirks</title>
		<link>http://www.virorum.com/2011/11/ios-video-support-challenges-quirks/</link>
		<comments>http://www.virorum.com/2011/11/ios-video-support-challenges-quirks/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 23:37:01 +0000</pubDate>
		<dc:creator>Philip</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Dev Corner]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[digital]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.virorum.com/?p=601</guid>
		<description><![CDATA[There are a great many good things to be said about handling video on the iOS platform: Live Streaming works remarkably well, the playback quality is excellent and the programming interface is, for the most part, easy to use. This works well if all you want to do is add a video to an article...]]></description>
			<content:encoded><![CDATA[<p>There are a great many good things to be said about handling video on the iOS platform: Live Streaming works remarkably well, the playback quality is excellent and the programming interface is, for the most part, easy to use. This works well if all you want to do is add a video to an article page within your app, or implement a simple video library. However, there are some annoying surprises in store when you push a little further. For example, as of iOS5, you might notice that the MPMoviePlayerController is implemented as a singleton class. So if you wanted to present two videos simultaneously, perhaps cueing between one and the other, you cannot do so directly using this class. AVFoundation&#8217;s AVPlayer offers greater low-level control over your video but this too comes at a price &#8211; attempting to seek to an accurate cue-point using streamed media won&#8217;t work. The best you&#8217;ll get is the nearest .ts file boundary. I was working on a project that involved all these classes recently and thought I had struck upon a brilliant solution to the seek accuracy problem by allowing the system to cue to the inaccurate .ts boundary and then to &#8216;play&#8217; into the desired, accurate cue-point. The problem is, while playing into this cue-point, the system plays the sound whether you want it to or not &#8211; there&#8217;s no way to specifically mute streamed media delivered in this way. Interestingly, you can utilise two video streams simultaneously if you work with one in an MPMoviePlayerController and the other in an AVPlayer. This isn&#8217;t ideal, but if you absolutely must have multiple streams, that&#8217;s the way to go. AirPlay support for both AVPlayer and MPMoviePlayerController arrived with iOS5 (previously, you could not AirPlay direct from an AVPlayer object). This is great, but the API lacks the ability to target specific AirPlay-enabled devices so you must rely on the user selecting one. Again if you&#8217;re managing more than one video stream, you may have problems presenting a seamless viewing experience over AirPlay as you switch between players. One of the missed opportunities on the platform is the ability to maintain several AVPlayer and AVPlayerItem objects independently. Thinking back again to a recent project, it would have been useful to cue up a number of video assets in separate AV objects, roll into accurate cue-points on each and then play them back in response to user-generated events. From the structure of the media APIs in general, you certainly get a feel for where Apple would like to take them as many techniques, including those above, are tantalisingly close to being possible. Hopefully in an iOS version not too far in the future, the API will have these gaps filled in.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.virorum.com/2011/11/ios-video-support-challenges-quirks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Metro Online Relaunches on iPhone and iPad Powered by Virorum</title>
		<link>http://www.virorum.com/2011/09/metro-online-relaunches-on-iphone-and-ipad-powered-by-virorum/</link>
		<comments>http://www.virorum.com/2011/09/metro-online-relaunches-on-iphone-and-ipad-powered-by-virorum/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 10:42:19 +0000</pubDate>
		<dc:creator>Miles</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[digital]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[metro]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.virorum.com/?p=594</guid>
		<description><![CDATA[Metro Online, Metro&#8217;s flagship app, has relaunched this week courtesy of Virorum. A wealth of new features accompany the app&#8217;s move onto both iPhone and iPad platforms, making digital reading of Metro&#8217;s great stories easier and more flexible than ever. New features for Version 2.0 include: The Paper button now lets you download the Metro...]]></description>
			<content:encoded><![CDATA[<p><strong>Metro Online</strong>, <strong>Metro&#8217;s</strong> flagship app, has relaunched this week courtesy of <strong>Virorum</strong>. A wealth of new features accompany the app&#8217;s move onto both iPhone and iPad platforms, making digital reading of Metro&#8217;s great stories easier and more flexible than ever.</p>
<p>New features for Version 2.0 include:</p>
<p>The Paper button now lets you download the Metro newspaper as a separate, and very simple, app. If it’s already on your device, pressing the Paper button will launch this app for seamless switching.</p>
<p>Faster, and with extra stability</p>
<p>Metro Online compatible with older OS3.1.3</p>
<p>Article text available offline</p>
<p>Pull down refresh option</p>
<p>&nbsp;</p>
<p>Reviews of the new app are already raving about the improved speed, responsiveness and stability. So to download the new version of <strong>Metro Online</strong> for both iPhone and iPad click the link below:</p>
<p><a title="Metro Online" href="http://itunes.apple.com/gb/app/metro-online/id375147109?mt=8" target="_blank"><strong>Metro Online</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.virorum.com/2011/09/metro-online-relaunches-on-iphone-and-ipad-powered-by-virorum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

