【问题标题】:Bing Maps API - SQL - geometry vs geography typeBing Maps API - SQL - 几何与地理类型
【发布时间】:2011-07-15 14:16:03
【问题描述】:

我正在使用 Bing Maps AJAX API 和 SQL Server 2008 开发一个映射服务。在我看来,我应该使用地理数据类型还是几何数据类型。我研究了很多,但没有找到满意的答案。以下是有关该主题的一些链接:

如果我比较这两种类型,我会看到以下几点。

专业地理

  • 全球范围内的一致距离计算(时间线!)
  • 数据库的坐标系与使用 Bing 地图 API (WGS84) 向地图添加数据的坐标系相同
  • 精确

反地理

  • 计算成本高
  • 数据大小限制在一个半球
  • 缺少函数(STConvexHull()、STRelate()、...)

专业几何

  • 计算速度更快
  • 数据大小不受限制

反地理

  • 以度为单位的距离单位(如果我们使用 WGS84 坐标)

对我来说,问题是我不需要一个快速的框架、一个很好的覆盖范围(整个世界)和强大的功能。所以我更喜欢几何类型。 几何类型的问题是,我必须将我的数据转换为平面投影(Bing Map 使用 SRID=3875),以便获得用于计算的米。但是当我在数据库中使用 Bing 地图投影 (3875) 时,如果我不想在地图中显示它,我必须将我的数据转换回 WGS84。

【问题讨论】:

    标签: sql-server-2008 bing-maps


    【解决方案1】:

    您已经很好地总结了这两种类型之间的差异,并且您已经正确地确定了两个明智的选择是地理 (4326) 或几何 (3857),所以我不太确定是什么任何人都可以提供的更多信息 - 您只需要根据您可用的信息自己做出决定。

    我想说的是,虽然几何数据类型可能比地理数据类型稍快(因为它依赖于更简单的平面计算,并且可以从相关区域上的紧密边界框中受益),但这种性能提升您必须取消投影回 WGS84 纬度/经度才能传递回 Bing 地图,这将远远抵消这一事实 - 重新投影是一个昂贵的过程。

    您当然可以使用几何数据类型存储 WGS84 角坐标,但这确实是一种 hack,不推荐使用 - 您几乎肯定会在以后遇到困难。

    所以,我建议使用 geography 数据类型和 WGS84。通过仔细的索引调整,即使是大型数据集的大多数查询,您仍然应该能够获得亚秒级的响应时间。顺便说一句,SQL Denali 中的地理数据类型取消了“半球内”规则,因此如果您要升级,该限制就会消失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多