Типове пространствени данни, Microsoft Docs
Има два вида пространствени данни. Геометричният тип данни се използва за планарни или евклидови данни. Геометричният тип данни отговаря на спецификацията OGC Simple Features за SQL версия 1.1.0.
Освен това SQL Server поддържа типа географски данни, който се използва за съхраняване на елиптични данни като GPS координати на географска ширина и дължина.
Геометричните и географските типове данни поддържат единадесет функции или типове екземпляри. Въпреки това, само седем от тези типове екземпляри са инстанцируеми; такива екземпляри могат да бъдат създадени в базата данни и манипулирани. Тези екземпляри наследяват някои свойства от техните родителски типове данни, които ги отличават като точки, LineStrings, полигони или множество екземпляри на геометрия или география в GeometryCollection.
Фигурата по-долу показва йерархията на геометрията, на която се базират типовете данни геометрия и география. Инстанцираните типове геометрия и география са маркирани в синьо.
Както е показано на фигурата, седемте инстанцирани типа геометрия и география са Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon и GeometryCollection. Типовете геометрия и география могат да разпознаят конкретен екземпляр, ако има правилния формат, дори ако не е изрично дефиниран. Например, ако изрично дефинирате екземпляр на точка с помощта на методаSTPointFromText(), тогава типовете геометрия и география ще разпознаят екземпляра като точка, ако входът на метода е бил добре оформен. Ако един и същ екземпляр е дефиниран с помощта на метода STGeomFromText(), типовете данни за геометрията и географията ще разпознаят екземпляра като точка.
Повече информация затези случаи вижте следните раздели:
Разликата между двата типа данни
Двата типа пространствени данни често показват едно и също поведение, но имат редица ключови разлики в начина, по който данните се съхраняват и управляват.
Как се определят границите на връзката
Дефиниращите данни за типовете LineString и Polygon могат да бъдат само върхове. Границата на връзката между два върха в геометричния тип е права линия. Въпреки това, границата на връзката между два върха в географския тип е къса голяма елиптична крива, начертана между върховете. Голямата елипса е пресечната точка на елипсоида с равнина през центъра му, а голямата елипса е крива сегмент на голямата елипса.
Измерения в типовете пространствени данни
В модел на плоска земя (или плоска земя) разстоянията и площите се измерват в същите единици като координатите. Когато се използва геометричен тип данни, разстоянието между точки (2, 2) и (5, 6) е 5 единици, независимо от използваните единици.
В елипсовиден или кръгъл земен модел координатите са дадени в градуси дължина и ширина. Дължините и площите обаче обикновено се измерват в метри и квадратни метри, въпреки че измерванията може да зависят от пространствения референтен идентификатор (SRID) на географския екземпляр. Най-разпространената мерна единица за типа географски данни е метърът.
Характеристика Ориентация
В равнинна система ориентацията на многоъгълния пръстен е маловажен фактор. Например многоъгълникът ((0, 0), (10, 0), (0, 20), (0, 0)) е идентичен с многоъгълника ((0, 0), (0, 20), (10, 0), (0, 0)). Спецификация "Прости функции за SQL".Консорциумът OGC не определя позицията на пръстена и SQL Server не я взема предвид.
В елиптичен модел без посочена ориентация многоъгълникът е или недефиниран, или двусмислен. Например, пръстенът около екватора описва ли северното или южното полукълбо? Когато използвате типа географски данни за съхраняване на пространствен екземпляр, трябва да посочите ориентацията на пръстена и точно да опишете местоположението на екземпляра.
SQL Server 2008 има следните ограничения за използването на типа географски данни.
Всеки екземпляр на география трябва да лежи в рамките на едно и също полукълбо. Не е позволено да се записват пространствени обекти, по-големи от полукълбо.
Всеки географски екземпляр в OGC добре познат текст (WKT) или добре познат двоичен (WKB) представяне, който създава обект, по-голям от полукълбо, води до хвърляне на ArgumentException.
Методи от типа географски данни, които изискват два географски екземпляра, катоSTIntersection(),STUnion(),STDifference() иSTSymDifference(), ще върнат NULL, ако резултатите от метода не се побират в едно полукълбо.STBuffer() също връща NULL, ако изходът не се побира в едно полукълбо.
Външният и вътрешният пръстен не са важни за типа географски данни.
Спецификацията на OGC „Прости функции за SQL“ обсъжда външни и вътрешни пръстени, но разграничението е без значение за типа данни на SQL Servergeography: всеки пръстен от многоъгълник може да се счита за външен пръстен.
За повече информация относно спецификациите на OGC вижте един от следните източници: