技术开发 频道

使用SQL Server 2008中的空间数据类型

插入包括多边形值的记录

使用记事本来查看C:\SQLHOLs\Spatial Data\Starter\WesternUS.txt 文本文件的内容。这个文件包含了Adventure Works Western United States销售区域的WKT定义。

在查询编辑器中,在原有代码的下方输入下面的Transact-SQL 代码,并将下面的销售区域的定义粘贴到代码当中:

INSERT INTO SalesPerson
(FirstName, LastName, Email, SalesRegionName, SalesRegion)
VALUES
(
'Syed',
  
'Abbas',
  
'syed0@adventure-works.com',
  
'Western US',
  geography::STGeomFromText(
'POLYGON((
    -123.07402559791684  37.76736709104543 ,
    -121.94097917688177  36.49093792385886 ,
     -120.37149732826121 34.045890710439785,
    -117.16155430516534  32.71568063372854 ,
     -106.47549795243778 31.733844355633792,
     -101.56221503336745 29.807382670042525,
     -100.89817721206964 29.366207091173063,
    -99.50198409288148   27.53090452533937 ,
     -102.5484260476256  49.002355502083155,
    -122.7588943299908   48.97672863231727 ,
    -123.14601579176877  48.16552414006778 ,
     -123.43134011415688 48.118720268780265,
    -124.7351822455773   48.39167853367607 ,
    -123.07402559791684  37.76736709104543 ))
', 4326))

注意: 这段代码使用geography 数据类型的STGeomFromText 方法,从文本描述中创建了一个多边形的实例。
使用一个XML编辑器,如Microsoft Visual Studio 2008 来查看C:\SQLHOLs\Spatial Data\Starter\EasternUS.xml文件的内容。

INSERT INTO SalesPerson
(FirstName, LastName, Email, SalesRegionName, SalesRegion)
VALUES
(
'Linda',
  
'Mitchell',
  
'linda3@adventure-works.com',
  
'Eastern US',
  geography::GeomFromGml(
'<Polygon xmlns="http://www.opengis.net/gml">
  <exterior>
    <LinearRing>
      <posList>49.002355502083155 -102.5484260476256
               27.53090452533937 -99.501984092881486
               25.866221792519891 -97.505157798460743
               25.943457571654395 -97.149468867243158
               27.675151290420871 -97.176960378652467
               29.732981419413576 -93.894849576786243
               29.06303206938912 -90.506037559706073
               24.5583430193 -81.780293310096368
               25.792769938185575 -80.1348529277161
               26.931995972872219 -80.101951906484146
               28.079387498711611 -80.606873640877339
               28.470839300423382 -80.537540390612548
               32.18910378457182 -80.7490576888295
               35.373785353022406 -75.984925610664732
               41.189858770922925 -71.591597672350787
               41.801225588436182 -70.3056301459883
               44.812877974642831 -66.967327377820382
               47.454989805995105 -69.154285648166763
               44.99637100669522 -71.538670536472367
               45.028448990132183 -74.735724992604418
               43.995140406452222 -77.250621135570626
               43.106628418081947 -79.064275416829958
               42.885442987094834 -78.878439629892256
               41.76926713330969 -82.652583599187864
               46.518294248124974 -84.347939004022578
               48.381706457487851 -89.245498827623535
               49.002355502083155 -102.5484260476256</posList>
    </LinearRing>
  </exterior>
</Polygon>
', 4326))

注意: 这段代码使用geography 数据类型的GeoFromGml 方法,从GML 描述中创建了一个多边形的实例。
选中刚刚添加的INSERT语句,然后点击Execute 运行选中的代码。
在现有的代码下方,添加下面的代码以查看销售区域数据。

SELECT SalesRegionName, SalesRegion.ToString()
FROM SalesPerson


选中刚刚添加的SELECT语句,然后点击Execute 运行选中的代码。下面的结果显示了定义每个销售区域所需的点。两个销售区域都显示在下面的地图当中。
 
保存查询脚本文件为C:\SQLHOLs\Spatial Data\Starter\SalesData.sql。
不要关闭SQL Server Management Studio ,在下个实验中还要继续使用。
 

0
相关文章