<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8277363936235467467</id><updated>2024-09-01T05:23:48.401-07:00</updated><title type='text'>Shishir&#39;s Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tewari-shishir.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8277363936235467467/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://tewari-shishir.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Shishir</name><uri>http://www.blogger.com/profile/03991100996333705091</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcuUYWH8l0WzL9WSzZYGq64wLiaiiXhXU9_dww_L7u_Y3FGJQrG6J23yzHIbiNrVHobRkY6VY-6r4jYSqYhPJP_DHLDcklpRbaXU3A4O3-ln723gGZ4nmurlVSPHBpxVQ/s220/Shishir.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8277363936235467467.post-831791384111037549</id><published>2012-08-25T07:04:00.001-07:00</published><updated>2012-08-25T07:20:09.038-07:00</updated><title type='text'>Convert Latitude and Longitude into Y, X coordinate in T-SQL(MS SQL Server) and Y, X coordinate into Latitude and Longitude </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Times New Roman; font-size: small;&quot;&gt;

&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-family: Times New Roman; font-size: small;&quot;&gt;

&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt;&quot;&gt;T-SQL
(MS SQL SERVER) functions to convert latitude and longitude into Y and X coordinate
at specific zoom level (&lt;/span&gt;&lt;span class=&quot;comment-copy&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-bidi-font-family: Helvetica;&quot;&gt;Latitude
represents Y axis and longitude X axis) and vice-versa. Latitude range is from
+90 degree to -90 degree and longitude range is from +180 degree to -180 degree.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQRWOK59cBNFWvsF4zirWQkbsHddfy7BtS4eJUzz6j_qDSBE_E6aF5zZXSkYg-22qg3bEB2pFX4TdFlMgE4kbP5BTgU5YIkXWVvV5hbXGkT2dm6UAR2N2Xj6ENN_Ex8lfIZbSMQH7C6mJY/s1600/Lat-Long.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;201&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQRWOK59cBNFWvsF4zirWQkbsHddfy7BtS4eJUzz6j_qDSBE_E6aF5zZXSkYg-22qg3bEB2pFX4TdFlMgE4kbP5BTgU5YIkXWVvV5hbXGkT2dm6UAR2N2Xj6ENN_Ex8lfIZbSMQH7C6mJY/s400/Lat-Long.gif&quot; width=&quot;400&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Convert Latitude and Longitude into Y and X coordinate in T-SQL&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;strong&gt;&lt;u&gt;Convert Latitude into Y Coordinate:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;CREATE FUNCTION [dbo].[fnGetLatToY]&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;@Latitude&amp;nbsp;decimal(18,14), &lt;br /&gt;&amp;nbsp;@ZoomLevel&amp;nbsp;tinyint&lt;br /&gt;)&lt;br /&gt;RETURNS BIGINT&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;&amp;nbsp;DECLARE @Power DECIMAL(30,14)&lt;br /&gt;&amp;nbsp;DECLARE @SinLatitude DECIMAL(30,14)&lt;br /&gt;&amp;nbsp;DECLARE @YPixel BIGINT&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;&amp;nbsp;SELECT @Power = CAST(POWER(2,@ZoomLevel) AS DECIMAL(30,14))*256&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;&amp;nbsp;SELECT @SinLatitude = SIN(@Latitude * PI()/180)&lt;br /&gt;&amp;nbsp;SELECT @YPixel = CAST(((.5 - LOG((&lt;/span&gt;&lt;a href=&quot;mailto:1+@SinLatitude)/(1-@SinLatitude&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;1+@SinLatitude)/(1-@SinLatitude&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;)) / (4*PI())) &lt;/span&gt;&lt;a href=&quot;mailto:*@Power&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;*@Power&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;)&amp;nbsp; AS BIGINT)&lt;br /&gt;&lt;br /&gt;RETURN @YPixel&lt;br /&gt;END&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;&lt;strong&gt;&lt;u&gt;Convert Longitude into X Coordinate:&lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;CREATE FUNCTION [dbo].[fnGetLonToX]&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;@Longitude&amp;nbsp;decimal(18,14), &lt;br /&gt;&amp;nbsp;@ZoomLevel&amp;nbsp;tinyint&lt;br /&gt;)&lt;br /&gt;RETURNS BIGINT&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp;DECLARE @Power DECIMAL(30,14)&lt;br /&gt;&amp;nbsp;DECLARE @XPixel BIGINT&lt;br /&gt;&amp;nbsp;SELECT @Power = CAST(POWER(2,@ZoomLevel) AS DECIMAL(30,14))*256&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;&amp;nbsp;SELECT @XPixel = CAST((((@Longitude + 180)/360)*@Power) AS BIGINT)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;RETURN @XPixel&lt;br /&gt;END&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;&lt;strong&gt;&lt;u&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;&lt;strong&gt;&lt;u&gt;Convert Y Coordinate into Latitude:&lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;CREATE FUNCTION [dbo].[fnGetYToLat]&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;@YPixel BIGINT,&lt;br /&gt;&amp;nbsp;@ZoomLevel&amp;nbsp;tinyint&lt;br /&gt;)&lt;br /&gt;RETURNS DECIMAL(18,14)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp;DECLARE @Latitude DECIMAL(18,14)&lt;br /&gt;&amp;nbsp;DECLARE @Power DECIMAL(30,14)&lt;br /&gt;&amp;nbsp;DECLARE @SinLatitude DECIMAL(30,14)&lt;br /&gt;&amp;nbsp;DECLARE @MapSize&amp;nbsp; DECIMAL(30,14)&lt;br /&gt;&amp;nbsp;DECLARE @TempMaxY&amp;nbsp; DECIMAL(30,14)&lt;br /&gt;&amp;nbsp;DECLARE @MaximumMaxY&amp;nbsp; DECIMAL(30,14)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;&amp;nbsp;SELECT @Power = CAST(POWER(2,@ZoomLevel) AS DECIMAL(30,14))*256&lt;br /&gt;&amp;nbsp;SELECT @SinLatitude = SIN(@Latitude * PI()/180)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;-- calculate Lat from Y&lt;br /&gt;&amp;nbsp;SELECT @MapSize = 256 * CAST(POWER(2, @ZoomLevel) AS BIGINT)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;&amp;nbsp;SELECT @MaximumMaxY = CASE WHEN @YPixel &amp;gt;= 0 THEN @YPixel ELSE 0 END&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;&amp;nbsp;SELECT @TempMaxY = 0.5 - ((CASE WHEN @MaximumMaxY &amp;lt;= @MapSize - 1 THEN @MaximumMaxY ELSE @MapSize - 1 END) / @MapSize)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;&amp;nbsp;SELECT @Latitude = 90 - 360 * Atan(Exp(&lt;/span&gt;&lt;a href=&quot;mailto:-@TempMaxY&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;-@TempMaxY&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt; * 2 * PI())) / PI();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;RETURN @Latitude&lt;br /&gt;END&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;&lt;strong&gt;&lt;u&gt;Convert X Coordinate into Longitude:&lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;CREATE FUNCTION [dbo].[fnGetXToLon]&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;@XPixel BIGINT,&lt;br /&gt;&amp;nbsp;@ZoomLevel&amp;nbsp;tinyint&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;)&lt;br /&gt;RETURNS DECIMAL(18,14)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;&amp;nbsp;DECLARE @Longitude decimal(18,14)&lt;br /&gt;&amp;nbsp;DECLARE @Power DECIMAL(30,14)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;SELECT @Power = CAST(POWER(2,@ZoomLevel) AS DECIMAL(30,14))*256&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;&amp;nbsp;-- calculate Long from X&lt;br /&gt;&amp;nbsp;SELECT @Longitude = @XPixel/@Power*360-180&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-small;&quot;&gt;RETURN @Longitude&lt;br /&gt;END&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tewari-shishir.blogspot.com/feeds/831791384111037549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tewari-shishir.blogspot.com/2012/08/convert-latitude-and-longitude-into-y-x.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8277363936235467467/posts/default/831791384111037549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8277363936235467467/posts/default/831791384111037549'/><link rel='alternate' type='text/html' href='http://tewari-shishir.blogspot.com/2012/08/convert-latitude-and-longitude-into-y-x.html' title='Convert Latitude and Longitude into Y, X coordinate in T-SQL(MS SQL Server) and Y, X coordinate into Latitude and Longitude '/><author><name>Shishir</name><uri>http://www.blogger.com/profile/03991100996333705091</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcuUYWH8l0WzL9WSzZYGq64wLiaiiXhXU9_dww_L7u_Y3FGJQrG6J23yzHIbiNrVHobRkY6VY-6r4jYSqYhPJP_DHLDcklpRbaXU3A4O3-ln723gGZ4nmurlVSPHBpxVQ/s220/Shishir.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQRWOK59cBNFWvsF4zirWQkbsHddfy7BtS4eJUzz6j_qDSBE_E6aF5zZXSkYg-22qg3bEB2pFX4TdFlMgE4kbP5BTgU5YIkXWVvV5hbXGkT2dm6UAR2N2Xj6ENN_Ex8lfIZbSMQH7C6mJY/s72-c/Lat-Long.gif" height="72" width="72"/><thr:total>1</thr:total></entry></feed>