友情提示,您阅读本篇博文的先决条件如下:

  1、本文示例基于Microsoft SQL Server 2008 R2调测。

  2、具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验。

  3、熟悉或了解Microsoft SQL Server 2008中的空间数据类型。

  4、具备相应(比如OGC规范、KML规范)的GIS专业理论知识。

  5、了解MapInfo地图数据、ArcGIS Shp地图数据格式。

  6、了解SQL空间工具(SqlSpatialTools)

 

 

 


  首先分析个案例:如果产品要实现在Silverlight开发的Map应用中将省份、地市和区县标记出来的功能,通过分析只能获取到省份、地市和区县的空间数据,然后在Map应用中动态绘制图层叠加在Map的图层上。自己绘制图层叠加最关键的一点就是要获取到省份、地市和区县的空间数据,从已有的地图数据中导出这份数据乃明智之举。本篇结合笔者的经历,介绍一种快速提取MapInfo地图数据文件中的空间数据的方案,供大家参考。

 

一、准备环境

  1、安装MapInfo Professional 8.0/8.5,本文基于MapInfo Professional 8.0软件平台。

  2、下载SQL空间工具(SqlSpatialTools)

  3、安装Microsoft SQL Server 2008 R2。

 

二、使用MapInfo Professional转换地图数据格式

  MapInfo Professional提供了地图数据格式转换工具,通过菜单“tools->universal Tanslator->universal Tanslator” 便可打开地图格式转换面板,如下图:

       

 

  通过以上步骤转换.tab的地图数据为.shp格式的地图数据,同时得到的文件有.shp、.shx、.dbf和.prj四种扩展名的文件,具体有什么作用这里就不介绍了,主要使用的是.shp,其他文件都是辅助的数据文件。

 

三、导入Shpfile地图空间数据到SQL Server 2008

  这里不做详细介绍,不清楚如何导入数据的请移步《使用空间工具(Spatial Tools)导入ESRI格式地图数据》。

 

四、SQL Server Management Studio中预览空间数据

  SQL Server Management Studio 支持两种方式查看空间数据,既表记录方式和空间结果方式,下图为两种方式的截图。

 

五、通过空间查询到处空间查询结果

  在SSMS中通过查询空间数据表,使用SQL内置函数可以将空间数据转换为图形坐标点集合。如下图:

        

  上面的操作提取出了坐标点集合,可以直接将查询结果另存为txt文件,直接就可以复制使用里面的地理坐标数据了。

 

六、相关资料

  [1]、SQL Server 2008空间数据应用系列九:使用空间工具(Spatial Tools)导入ESRI格式地图数据

  [2]、空间工具(Spatial Tools): http://www.sharpgis.net/page/SQL-Server-2008-Spatial-Tools.aspx