Обновление: Об этом сообщается Microsoft.Ошибка в SQL География POINT Lat, Long
В простой таблицы (SQL Server 2012) с geography
столбца (имя geopoint
) заселенной несколькими простыми рядами точек похоже на это. POINT (-0.120875610750927 54.1165118880234)
и т.д. выполнения
select [geopoint].[STAsText](),
[geopoint].Lat lat,
[geopoint].Long long
from mytable
производит этот
Untitled1 lat long
POINT (-0.120875610750927 54.1165118880234) 54.1165118880234 -0.120875610750927
, который выглядит как ошибка, но это слишком основной и должны были пойманы перед выпуском. Так что я делаю что-то неправильно?
Добавлена информация
ИТ-специалисты должны искать детали реализации Microsoft о SQL-сервера на MSDN. Поскольку могут быть различия в реализации. В этом случае. В качестве доказательства этого я только что проверил реализацию PostGist ST_AsText
для столбца geographic
. Это прекрасно работает! и результат, как и следовало ожидать. Поэтому ошибка заключается в реализации SQL. Правильный результат для приведенного выше примера должен быть
POINT (54.1165118880234 -0.120875610750927) 54.1165118880234 -0.120875610750927
Осмелюсь сказать, что есть высокая вероятность того, что есть и другие ошибки, связанные с функциями рабочих geographic
колонн. Поскольку базовые функции в этой области не были полностью протестированы.
Почему вы думаете, что есть ошибки, хорошо выглядит для меня! – Mithrandir
«Я что-то не так?» - предположим, вы предположили, что аргументы «POINT» - это широта, за которой следует долгота, а не долгота, за которой следует широта. –
при отображении [геосайт]. [STAsText]() Lat и Long должны быть другим способом. У меня есть двойная проверка возвращаемых значений для STAsText() как для точки географии, так и для точки геометрии. Для точки геометрии возвращаемые значения верны в соответствии с расширениями STX и STY. Для точек географии [STAsText]() возвращает неправильные значения для POINT. Он должен быть POINT (lat, long) Это ошибка, о которой я сообщу об этом. – Farjad