当前位置: 代码迷 >> CGI >> BingMap读取shape(arcgis)格式数据(将shape资料转成Sql server2008的geometry类型,再进行读取)
  详细解决方案

BingMap读取shape(arcgis)格式数据(将shape资料转成Sql server2008的geometry类型,再进行读取)

热度:486   发布时间:2012-11-23 22:54:33.0
BingMap读取shape(arcgis)格式数据(将shape文件转成Sql server2008的geometry类型,再进行读取)

1. 用Arcmap打开shape数据(region),先转换坐标系(GCS_WGS_1984),在地图的数据框属性中可以针对单个图层进行坐标系的转换。

2. 如果一个区域有多个不相邻的图形组成(mult-polygon),需要用ArcToolbox的多部分(multipart)转单部分(SinglePart)

3. 如果面转折点后的数量太多,影响加载boundary后的移动和缩放的效率,就需要进行重采样处理,经过实践发现SuperMap工具的重采样功能简单实用,用SuperMap Deskpro6打开(导入)前面处理好的数据,直接右击数据集进行重采样操作,数据的值最好是在(0.0001~0.001)范围之内,将重采样后的数据重建空间索引(提高数据操作的效率),导出重采样后的数据成shape格式。

4. 用Arcmap打开Supermap导出的数据,应用ArcToolbox工具的要素折点转点工具,将面的数据转成多个点的数据,如果点的数据太多或者太少与原有图形差别较大,则需要重做第三步的重采样操作。

5.给转化成点后的数据添加x、y坐标(ArcToolbox)。

6.用Excel打开shape文件中的dbf格式的文件,删除一些不必要的列之后,保存成xls或者xlsx格式。

7.用sql server2008的导入工具将xlsx数据导入至数据库中的一个表。

8.用自己写的一个工具将这些点的数据转成geometry格式的数据【GeometeyCollection、Polygon】,其中涉及到一些首尾点不一致的情况,大部分是由于原来的图形是multiPolygon(重做第二步)或者原来的图形中包含岛洞(先删除岛洞,再将岛洞附加到表中的另一个字段中,读取时先判断是否包含岛洞,如不需要很精确可以直接将岛洞删除),这种数据需要单独进行处理。

9.用BingMap程序读取Geometry格式的数据显示到地图上,带有岛洞的多边形需要用AdvacedShape的module来处理。

添加到bingMap上的多边形进行地图的render(渲染)【灵活】是个不小的问题,正在解决中。

1楼jcx508376137分钟前
好文章
  相关解决方案