Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Расстояние между географическими координатами  [new]
Ascar
Member

Откуда:
Сообщений: 26
Питер - Москва
(координаты аэродромов)

DECLARE @g geography;
DECLARE @h geography;
SET @g = geography::STPointFromText('POINT(59.800292 30.262503)', 4326);
SET @h = geography::STPointFromText('POINT(55.408786 37.906314)', 4326);
SELECT @h.STDistance(@g);

получаю ответ

939457,228361567

????

что это? как перевести в км???
1 июн 12, 15:43    [12651873]     Ответить | Цитировать Сообщить модератору
 Re: Расстояние между географическими координатами  [new]
Ascar
Member

Откуда:
Сообщений: 26
прочитал что надо делить на 1000
тогда я неверно задаю координаты???
1 июн 12, 15:54    [12651977]     Ответить | Цитировать Сообщить модератору
 Re: Расстояние между географическими координатами  [new]
Ascar
Member

Откуда:
Сообщений: 26
подставляю в первом посте гугловские координаты
но у меня подозрение что MsSQL использует другой стандарт
тогда как гугловские координаты перевести под MsSQL

помогите пожалуста
1 июн 12, 16:19    [12652137]     Ответить | Цитировать Сообщить модератору
 Re: Расстояние между географическими координатами  [new]
Konst_One
Member

Откуда:
Сообщений: 11625
http://www.sql-server-helper.com/sql-server-2008/convert-latitude-longitude-to-geography-point.aspx
1 июн 12, 16:26    [12652208]     Ответить | Цитировать Сообщить модератору
 Re: Расстояние между географическими координатами  [new]
Ascar
Member

Откуда:
Сообщений: 26
всем спасибо
координаты местами попутал
вернее гуугл и сиквер порядок разный

DECLARE @g geography;
DECLARE @h geography;
SET @g = geography::STPointFromText('POINT(30.315784 59.939037)', 4326);
SET @h = geography::STPointFromText('POINT(37.617634 55.755787)', 4326);
SELECT @h.STDistance(@g)/1000 as ddd

635 км все верно :)
1 июн 12, 16:30    [12652236]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить