Математика

Физика

Химия

Биология

Техника и    технологии

Beginning Spatial with SQL Server 2008 -Alastair Aitchison 2009 str401

Beginning Spatial with SQL Server 2008 -Alastair Aitchison 2009 str401





Contents at a G ance



About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . xxi About the Techn ca Rev ewer . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii Acknow edgments
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . xxv Introduct on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii

PART 1 Working with Spatial Data

CHAPTER 1 Defining Spatial Information . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 3

CHAPTER 2 Implementing Spatial Data in SQL Server 2008 . . . . . . . . . . . . . . . . 33

CHAPTER 3 Working with Spatial Data in the .NET Framework . . . . . . . . . . . . . 55

PART 2 Adding Spatial Data


CHAPTER 4 Creating Spatial Data Objects . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 77

CHAPTER 5 Marking Out Geometries Using Virtual Earth . . . . . . . . . . . . . . . . . . 115

CHAPTER 6 Importing Spatial Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 137

CHAPTER 7 Geocoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 157

PART 3 Presenting Spatial Data




CHAPTER 8 Syndicating Spatial Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 181

CHAPTER 9 Presenting Spatial Data Using Web Mapping Services . . . . . . . . . 207

CHAPTER 10 Visualizing Query Results in Management Studio . . . . . . . . . . . . . 249

PART 4 Analyzing Spatial Data


CHAPTER 11 Examining Properties of Spatial Objects . . . . . . . . . . . . . . . . . . . . . .
261

CHAPTER 12 Modifying Spatial Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 315

CHAPTER 13 Testing Spatial Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 345

PART S Ensuring Spatial Performance


CHAPTER 14 Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 37
IND EX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 403



Contents

About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . xxi About the Techn ca Rev ewer . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii Acknow edgments
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . xxv Introduct on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii

PART 1 Working with Spatial Data

CHAPTE R 1 Defining Spatial Information . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 3

What Is Spat a Data? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 3
Uses of Spat a Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 3
Represent ng Features on the Earth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Po nts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 4
L neStr ngs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 5
Po ygons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 7
Choos ng the R ght Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Comb n ng Geometr es n a Geometry Co ect on . . . . . . . . . . . . . . . . 8
Understand ng Inter ors, Exter ors, and Boundar es . . . . . . . . . . . . . . 9
Pos t on ng a Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Descr b ng Pos t ons Us ng a Coord nate System . . . . . . . . . . . . . . . . . . . 11
Geograph c Coord nate System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Projected Coord nate System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
App y ng Coord nate Systems to the Earth . . . . . . . . . . . . . . . . . . . . . . . . . 14
Datum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 14
Pr me Mer d an . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 18
Un t of Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Project on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 19
Us ng Spat a Reference Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Spat a Reference Ident f ers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 25


C ON TE N TS




Spat a References n SOL Server 2008 . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Express ng Spat a References n the We -Known Text Format . . . 26
Contrast ng a Geograph c and a Projected Spat a Reference . . . . . 27
Compar ng Spat a Reference Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
WGS 84 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 29
Nat ona Gr d of Great Br ta n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 31

CHAPTE R 2 Implementing Spatial Data in SQL Ser"er 2008 . . . . . . . . . . 33

Understand ng Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 33
Compar ng Spat a Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
The geography Datatype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 35
Coord nate System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
Un t of Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Spat a Reference ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
S ze L m tat ons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 37
R ng Or entat on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 38
The geometry Datatype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 40
Coord nate System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Un t of Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Spat a Reference ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
R ng Or entat on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 44
Choos ng the R ght Spat a Datatype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Cons stency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 45
Accuracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 45
The End(s) of the Wor d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Presentat on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 48
Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 49
Standards Comp ance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
How Spat a Data Is Stored . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
Convert ng Between Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Spat a y Enab ng Your Tab es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
Creat ng a New Tab e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Add ng to an Ex st ng Tab e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Enforc ng a Common SRID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 54

C ON TEN TS ix



CHAPTE R 3 Working with Spatial Data in the .NET Framework . . . . . . 55

What Is the NET Framework? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
How NET Is Hosted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 56
Why Use NET for Spat a Funct ona ty? . . . . . . . . . . . . . . . . . . . . . . . . . . 58
App y ng Pr nc p es of Object Or entat on . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Data Abstract on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 60
Encapsu at on (Data H d ng) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Inher tance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 62
Po ymorph sm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 64
Instant at ng Spat a Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 64
Us ng Stat c Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
App y ng a Stat c Method of the Appropr ate Datatype . . . . . . . . . . . 65
Invok ng Spat a Instance Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
T-SOL Funct on Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
NET CLR Instance Method Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Cha n ng Mu t p e Method Ca s. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Accessor and Mutator Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Access ng Propert es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 68
Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 68
Read-On y and Read-Wr te Propert es . . . . . . . . . . . . . . . . . . . . . . . . 69
Comb n ng T-SOL and NET CLR Methods . . . . . . . . . . . . . . . . . . . . . . . . . 69
Us ng Open Geospat a Consort um Methods . . . . . . . . . . . . . . . . . . . . . . 70
Hand ng Except ons n the CLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 73

PART 2 Adding Spatial Data

CHAPTE R 4 Creating Spatial Data Objects . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 77

Choos ng an Appropr ate Stat c Method . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Creat ng Geometr es from We -Known Text . . . . . . . . . . . . . . . . . . . . . . . 79
Creat ng a Po nt from WKT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Creat ng a L neStr ng from WKT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Creat ng a Po ygon from WKT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Creat ng a Mu t Po nt from WKT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Creat ng a Mu t L neStr ng from WKT . . . . . . . . . . . . . . . . . . . . . . . . . 86
Creat ng a Mu t Po ygon from WKT . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Creat ng a Geometry Co ect on from WKT . . . . . . . . . . . . . . . . . . . . . 87
Creat ng Any K nd of Geometry from WKT . . . . . . . . . . . . . . . . . . . . . 87
Represent ng an Ex st ng Geometry As WKT . . . . . . . . . . . . . . . . . . . 89

x C ON TE N TS

Creat ng Geometr es from We -Known B nary . . . . . . . . . . . . . . . . . . . . . 91
Creat ng a Po nt from WKB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Creat ng a L neStr ng from WKB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Creat ng a Po ygon from WKB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Creat ng a Mu t e ement Geometry from WKB . . . . . . . . . . . . . . . . . 100
Creat ng Any Type of Geometry from WKB . . . . . . . . . . . . . . . . . . . 102
Represent ng an Ex st ng Geometry As WKB . . . . . . . . . . . . . . . . . . 102
Creat ng Geometr es from Geography Markup Language . . . . . . . . . . . 103
Structure of a GML Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Dec ar ng the GML Namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Methods to Instant ate Geometry Objects from GML . . . . . . . . . . . 106
Creat ng a Po nt from GML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Creat ng a L neStr ng from GML . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Creat ng a Po ygon from GML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Creat ng a Mu t Po nt from GML . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Creat ng a Mu t L neStr ng from GML . . . . . . . . . . . . . . . . . . . . . . . . 110
Creat ng a Mu t Po ygon from GML . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Creat ng a Geometry Co ect on from GML. . . . . . . . . . . . . . . . . . . . 111
Represent ng an Ex st ng Geometry As GML . . . . . . . . . . . . . . . . . . 112
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 113

CHAPTE R 5 Marking Out Geometries Using Virtual Earth . . . . . . . . . . . . 115

Creat ng the Web App cat on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
116
Creat ng a New Web S te . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Add ng a Bas c Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Extend ng the Map Funct ona ty . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Add ng Contro s to HTMLPage htm . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Us ng the Web App cat on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
130
Creat ng a Geometry from the WKT Output . . . . . . . . . . . . . . . . . . . . . . . 132
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 134

CHAPTE R 6 Importing Spatial Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 137

Sources of Spat a Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 137
Import ng Tabu ar Spat a Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
138
Import ng the Text F e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Add ng the geography Co umn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Popu at ng the Spat a Co umn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

C ON TEN TS xi


Import ng Data from Keyho e Markup Language . . . . . . . . . . . . . . . . . . 144
Compar ng KML to GML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Transform ng KML to GML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Import ng Data from ESRI Shapef e Format . . . . . . . . . . . . . . . . . . . . . . 148
Obta n ng Samp e Shapef e Data . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Import ng Shapef e Data w th Shape2SOL . . . . . . . . . . . . . . . . . . . 150
Us ng Th rd-Party Convers on Too s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Commerc a Too s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Free Too s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 154
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 155

CHAPTE R 7 Geocoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 157

What Is Geocod ng? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 157
MapPo nt Web Serv ce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 158
Access ng the MapPo nt Web Serv ce from SOL Server . . . . . . . . . 159
S gn ng Up for the MapPo nt Web Serv ce . . . . . . . . . . . . . . . . . . . . 160
Creat ng the NET Assemb y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
160
Creat ng a New Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Conf gur ng the Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Add ng the Geocod ng Funct on . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Comp ng the Assemb y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
170
Conf gur ng the Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 171
Enab ng CLR Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Sett ng Secur ty Perm ss ons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Import ng the Assemb y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 172
Creat ng the Funct on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 173
Us ng the Geocode Funct on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
174
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 177


PART 3 Presenting Spatial Data


CHAPTE R 8 Syndicating Spatial Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 181

Why Synd cate Spat a Informat on? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Synd cat on Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 182
The GeoRSS Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 184
GeoRSS Spat a Encod ngs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Re at ng Spat a Informat on w th the GeoRSS Tag . . . . 186

xii C ON TE N TS




Attach ng Spat a Informat on to a Feed . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Creat ng a GeoRSS Feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
188
Creat ng the Samp e Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Serv ng the GeoRSS Feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
195
Test ng the Feed Hand er . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 198
Consum ng the GeoRSS Feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Us ng the Goog e Maps Web S te . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Us ng Embedded Goog e Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Us ng M crosoft V rtua Earth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Us ng Yahoo! Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 206

CHAPTE R 9 Presenting Spatial Data Using
Web Mapping Ser"ices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

The App cat on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 207
Process Overv ew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 208
Obta n ng the Source Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
211
Creat ng a New Web S te Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Creat ng the HTML Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
212
Referenc ng the API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
213
Inc ud ng the JavaScr pt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Spec fy ng the Map Conta ner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Rev ew ng the HTML Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Creat ng the Stat c JavaScr pt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
215
Dec ar ng the Map Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Load ng the Goog e Maps API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Sett ng Ca backs to Load and Un oad the Map . . . . . . . . . . . . . . . . 217
Creat ng the Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
217
Conf gur ng the Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Add ng Interact v ty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
219
Creat ng an AJAX Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Request ng Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
221
C ear ng the Map. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
222
Updat ng the Status W ndow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
D spos ng of the Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Rev ew ng the JavaScr pt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Creat ng the Stored Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

C ON TEN TS xiii


Creat ng the Web Hand er . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
231
Creat ng a Connect on to SOL Server . . . . . . . . . . . . . . . . . . . . . . . . 232
Ca ng the Stored Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Construct ng the Geometry E ements . . . . . . . . . . . . . . . . . . . . . . . . 233
Add ng a Shape to the Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Attach ng Descr pt ve Informat on to the Map . . . . . . . . . . . . . . . . . 237
Custom z ng the Appearance of Map E ements . . . . . . . . . . . . . . . . 238
Rev ew ng the NET Hand er . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
V ew ng the Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 244
Further App cat ons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 245
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 247

CH APTER 10 Visualizing Query Results in Management Studio . . . . . . 249

SOL Server Management Stud o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
V sua z ng Spat a Resu ts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
249
Choos ng V sua zat on Opt ons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Supported Project ons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 252
Equ rectangu ar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
252
Mercator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 253
Rob nson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 254
Bonne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 255
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 257


PART 4 Analyzing Spatial Data
CH APTER 11 Examining Properties of Spatial Objects . . . . . . . . . . . . . . . . 261

Return ng the Name of a Geometry Type . . . . . . . . . . . . . . . . . . . . . . . . . 262
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 262
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 263
Return ng the Number of D mens ons Occup ed by a Geometry . . . . . . 263
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 263
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 264

xi" C ON TE N TS




Test ng Whether a Geometry Is of a Part cu ar Type . . . . . . . . . . . . . . . . 264
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 265
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 266
Compar ng the Resu ts of STD mens on(), STGeometryType(),
and InstanceOf() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Test ng Whether a Geometry Is S mp e . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 269
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 270
Test ng Whether a Geometry Is C osed . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 272
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 272
Test ng Whether a L neStr ng Is a R ng . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 274
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 274
Count ng the Number of Po nts n a Geometry . . . . . . . . . . . . . . . . . . . . 275
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 275
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 276
Test ng Whether a Geometry Is Empty . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 277
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 277
Return ng Cartes an Coord nate Va ues . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 278
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 278
Return ng Geograph c Coord nate Va ues . . . . . . . . . . . . . . . . . . . . . . . . . 279
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 279
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 279
Return ng Extended Coord nate Va ues . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 280
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 280

C ON TEN TS x"


Return ng a Spec f c Po nt from a Geometry . . . . . . . . . . . . . . . . . . . . . 281
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 282
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 282
F nd ng the Start and End Po nts of a Geometry . . . . . . . . . . . . . . . . . . . 283
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 283
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 283
F nd ng the Centro d of a geometry Po ygon . . . . . . . . . . . . . . . . . . . . . . 284
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 285
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 286
F nd ng the Center of a geography Instance . . . . . . . . . . . . . . . . . . . . . . 286
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 287
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 287
Return ng an Arb trary Po nt from a Geometry . . . . . . . . . . . . . . . . . . . . 288
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 289
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 289
Measur ng the Length of a Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 290
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 291
Ca cu at ng the Area Conta ned by a Geometry . . . . . . . . . . . . . . . . . . . . 291
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 292
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 292
Sett ng or Retr ev ng the SRID of a Geometry . . . . . . . . . . . . . . . . . . . . . 293
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 293
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 293
Iso at ng the Exter or R ng of a Geometry Po ygon . . . . . . . . . . . . . . . . . 295
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 295
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 295
Count ng the Inter or R ngs of a Geometry . . . . . . . . . . . . . . . . . . . . . . . . 296
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 297
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 297

x"i C ON TE N TS




Iso at ng an Inter or R ng from a Po ygon . . . . . . . . . . . . . . . . . . . . . . . . . 298
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 298
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 298
Count ng the R ngs n a geography Po ygon . . . . . . . . . . . . . . . . . . . . . . 299
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 300
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 300
Iso at ng a R ng from a geography Po ygon . . . . . . . . . . . . . . . . . . . . . . . 301
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 301
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 301
Ident fy ng the Boundary of a Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 304
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 304
Ca cu at ng the Bound ng Box of a Geometry . . . . . . . . . . . . . . . . . . . . . 305
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 306
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 306
Ca cu at ng the Enve ope of a geography Object . . . . . . . . . . . . . . . . . . . 307
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 307
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 308
Count ng the E ements n a Geometry Co ect on . . . . . . . . . . . . . . . . . . 308
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 309
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 309
Retr ev ng an Ind v dua Geometry from a Geometry Co ect on . . . . . . 310
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 311
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 311
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 312

CH APTER 12 Modifying Spatial Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 315

Ensur ng That an Object Is Va d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
315
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 316
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 316

C ON TEN TS x"ii


Va dat ng a Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 318
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 318
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 318
Comb n ng Spat a Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
319
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 322
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 322
Def n ng the Intersect on of Two Geometr es . . . . . . . . . . . . . . . . . . . . . 323
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 325
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 325
Ident fy ng the D fference Between Two Geometr es . . . . . . . . . . . . . . . 327
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 328
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 328
Ca cu at ng the Symmetr c D fference Between Two Geometr es . . . . . 330
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 331
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 331
S mp fy ng a Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 332
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 332
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 334
Creat ng a Buffer Around an Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 336
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 336
Creat ng a S mp er Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
338
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 338
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 339
Creat ng the Convex Hu of a Geometry . . . . . . . . . . . . . . . . . . . . . . . . . 340
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 342
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 342
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 343

x"iii C ON TE N TS



CH APTER 13 Testing Spatial Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . .
345

Test ng the Equa ty of Two Geometr es . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 346
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 346
Ca cu at ng the D stance Between Geometr es . . . . . . . . . . . . . . . . . . . . 348
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 348
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 349
Test ng Whether Two Geometr es Intersect . . . . . . . . . . . . . . . . . . . . . . . 355
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 356
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 356
Perform ng a Ou ck Test of Intersect on Between Two Geometr es . . . 358
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 359
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 359
Test ng Whether Two Geometr es Are D sjo nt . . . . . . . . . . . . . . . . . . . . 361
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 362
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 362
F nd ng Out Whether One Geometry Crosses Another . . . . . . . . . . . . . . 362
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 364
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 364
F nd ng Out Whether Two Geometr es Touch . . . . . . . . . . . . . . . . . . . . . 365
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 366
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 366
Test ng Whether One Geometry Over aps Another . . . . . . . . . . . . . . . . . 368
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 368
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 368
Test ng Whether a Geometry Is Conta ned W th n
Another Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
370
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 370
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 371

C ON TEN TS xix


Test ng Whether a Geometry Conta ns Another Geometry . . . . . . . . . . . 371
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 372
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 372
Test ng Custom Re at onsh ps Between Geometr es . . . . . . . . . . . . . . . 373
Supported Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 373
Examp e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 375
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 376


PART S Ensuring Spatial Performance

CH APTER 14 Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 379

What Does a Spat a Index Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
How Do Spat a Indexes Work? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Bu d ng an Index from the Gr d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
387
Cover ng Ru e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
387
Deepest-Ce Ru e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
Ce s-Per-Object Ru e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
App y ng a Gr d to the geography Datatype . . . . . . . . . . . . . . . . . . . . . . . 389
Creat ng a Spat a Index Us ng T-SOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Creat ng a geometry Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Creat ng a geography Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Creat ng a Spat a Index n SOL Server Management Stud o . . . . . . . . . 393
Des gn ng Ouer es to Use a Spat a Index . . . . . . . . . . . . . . . . . . . . . . . . 395
Prov d ng a H nt to a Spat a Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Opt m z ng an Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 398
Gr d Reso ut on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
398
Bound ng Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
400
Ce s Per Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
400
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 401
INDEX

Цена: 200руб.

Назад

Заказ

На главную страницу