<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Matematyka w SQL- przeliczanie LAT i LNG na GPS]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=649</link>
		<description><![CDATA[Najświeższe odpowiedzi w Matematyka w SQL- przeliczanie LAT i LNG na GPS.]]></description>
		<lastBuildDate>Thu, 29 Sep 2011 12:24:10 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Matematyka w SQL- przeliczanie LAT i LNG na GPS]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2738#p2738</link>
			<description><![CDATA[Działa poprawnie gszpetkowski dzięki :-)
Jak wezmę się wieczorem za pisanie to poniżej dopiszę jaki mi kod wyszedł może komuś się przyda. 
Pozdrawiam
Michał
KOD:
SELECT lat, lng, nazwa,
(substr(lat, 1, 2)) AS latSt, (substr(lat, 4, 8))AS latMin,
(substr(lng, 1, 2)) AS lngSt, (substr(lng, 4, 8))AS lngMin  
FROM Mapa;

Niestety nie udało mi się zrobić przeliczania w SQL poniewaz mam problemy z typami (projektant bazy wartosci LAT i LNG zrobil na VARCHAR :((]]></description>
			<author><![CDATA[dummy@example.com (hetmanJIIIS)]]></author>
			<pubDate>Thu, 29 Sep 2011 12:24:10 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2738#p2738</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Matematyka w SQL- przeliczanie LAT i LNG na GPS]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2737#p2737</link>
			<description><![CDATA[Odpowiednikiem jest funkcja [url=http://www.postgresql.org/docs/current/static/functions-string.html#FUNCTIONS-STRING-OTHER]substr[/url], przykładowo:

[code]SELECT substr(18.09092323, 4, 8);
  substr  
----------
 09092323
(1 row)[/code]

Wprawdzie pierwszym parametrem powinien być string, ale dla liczb zachodzi konwersja implicit.

Jeśli obcianie ma działać niezależnie od liczby cyfr przed przecinkiem to można dodać użyć strpos, żeby wyłuskać pozycję kropki:

[code]SELECT substr(118.09092323, strpos(118.09092323, '.') + 1, 8);
  substr  
----------
 09092323
(1 row)

SELECT substr(18.09092323, strpos(18.09092323, '.') + 1, 8);
  substr  
----------
 09092323
(1 row)[/code]]]></description>
			<author><![CDATA[dummy@example.com (gszpetkowski)]]></author>
			<pubDate>Wed, 28 Sep 2011 13:43:33 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2737#p2737</guid>
		</item>
		<item>
			<title><![CDATA[Matematyka w SQL- przeliczanie LAT i LNG na GPS]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2736#p2736</link>
			<description><![CDATA[Witam wszystkich

W bazie posiadam długosc i szerokosc geograficzna (np. 49.09223345, 18,09092323). Chcę ją przeliczyć na GPS w SQL'u.
Algorytm przeliczania z LAT(szerokosc) i LNG(dlugosc) na GPS:
1)
GPS to np. 49 32' 33'' 

49- stopnie
32'-minuty
33''-serkundy
lat=49.09223345
przeliczanie na stopnie- liczba_przed_przecinkiem= 49
przeliczanie na minuty- (osiem_liczb_po_przecinku * 60)/100 000 000= 09223345*60/100 000 000
przelicznaie na sekundy- (.... bla bla bla )

Co mnie interesuje- jak zrobic w SQL zeby do obliczen bralo np. osiem liczb po przecinku 
np.:
z liczby: 49.09223345 bralo: 09223345
W excelu jest funkcja MID(49,09223345;4;8):
(wartosc;pozycja_startowa;liczba_znakow) - czy w SQL'u jest cos podobnego ??]]></description>
			<author><![CDATA[dummy@example.com (hetmanJIIIS)]]></author>
			<pubDate>Wed, 28 Sep 2011 12:24:12 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2736#p2736</guid>
		</item>
	</channel>
</rss>
