我正在使用Bing Maps AJAX API和SQL Server 2008开发一项地图服务。我遇到的问题是应该使用地理数据类型还是几何数据类型。我做了很多研究,但没有找到令人满意的答案。以下是一些关于此主题的链接:
- SQL 2008 geography & geometry - which to use?
- http://www.mssqltips.com/tip.asp?tip=1847
- https://alastaira.wordpress.com/2011/01/23/the-google-maps-bing-maps-spherical-mercator-projection/
如果我比较这两种类型,我看到以下几点。
地理优势
- 全球范围内距离计算一致(时间轴!)
- 数据库的坐标系与使用Bing Maps API添加数据到地图时使用的坐标系相同(WGS84)
- 精确
反地理学
- 高计算成本
- 数据大小限制为一个半球
- 缺少功能(STConvexHull(),STRelate()...)
几何优势
- 计算速度更快
- 数据大小不受约束
反地理学
- 如果我们使用WGS84坐标,则距离单位为度
对我来说问题在于我不需要一个快速的框架,一个广泛的覆盖范围(整个世界)和高功能性。因此,我更喜欢几何类型。 使用几何类型的问题在于,我必须将我的数据转换为平面投影(Bing Map使用SRID = 3875),以便我得到米数进行计算。但是当我在数据库中使用Bing Maps投影(3875)时,如果我想在地图中显示它,则必须将我的数据转换回WGS84。