zoukankan      html  css  js  c++  java
  • 在Oracle Spatial中增加Web Mercator投影坐标系

    参考资料:

    1. 最重要的参考文章,基本上就是按这个做的!!!:https://www.inf.unibz.it/dis/wiki/doku.php?id=students:minnerebner:oracle:addingsrid 。 

    2. 实例参考:http://www.cnblogs.com/cleverxy/archive/2012/04/28/2474563.html

        步骤1是从0开始,这个应该有一些基础了,可以对照看一下里面对8801~8807、9802~9807的解释,然后再去数据库中查这些表。

    3. 另外两个内容看起来比较丰富的论坛/博客:

    oracle报错查询: http://www.serkey.com/oracle-incorrect-result-from-sdo-filter-bct53x.html#beuerd

    将Spatial与IT结合:  http://spatialdbadvisor.com/

    Web Mercator投影

            在ArcGIS的帮助中 http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#//003r00000038000000  第一段中有如下内容:“有两种用于仿真 Web 服务所用墨卡托投影的方法。如果墨卡托实现支持椭球体(椭圆体),则投影坐标系必须以基于球体的地理坐标系为基础。这要求必须使用球体方程。墨卡托辅助球体的实现仅具有球体方程。此外,如果地理坐标系是基于椭圆体的,它还具有一个投影参数,用于标识球体半径所使用的内容。默认值为零 (0) 时,将使用长半轴。” 乍一读有点混乱, 想起来以前看的的一篇文章 :http://hmfly.info/2012/10/17/mercator%E9%82%A3%E4%BA%9B%E4%BA%8B%E5%84%BF/ ,其中的“Web Mercator与Web Mercator(Auxiliary Sphere)之异同” 部分,比较3785 和3857的区别。我的理解,对应到ArcGIS帮助中的那段话,应该是方法一是3785,方法二对应 3857,“它还具有一个投影参数”指的就是 “Auxiliary_Sphere_Type: 0.0” 吧。后面就不用混乱了,只考虑使用 3857.

            关于坐标及投影还可以看一下ArcGIS的帮助,从椭球体、大地基准面、坐标参照系、投影坐标系慢慢逐步理清楚。

          

    定义Web Mercator投影坐标系(链接1 )的补充说明:

          1.定义椭球体:在MDSYS.SDO_ELLIPSOIDS表中增加所需的椭球体定义,其中INV_FLATTENING(扁率的倒数)设置为很大的一个数1.000E+12,表示只使用长半轴的长度。

      2.定义大地基准面:在MDSYS.SDO_DATUMS表中增加大地基准面定义,其中的椭球体参数用到第1步中的定义;

      3.定义地理坐标系: 在MDSYS.SDO_COORD_REF_SYSTEM表中增加坐标参照系:其中坐标系类型COORD_REF_SYS_KIND和坐标系代号COORD_SYS_ID 要与SDO_COORD_SYS中定义一致。

      4.定义投影转换规则: 在mdsys.sdo_coord_ops中增加投影转换定义,给第3步的坐标参照系基础上定义Latitude of natural origin(原点纬线)、longitude of natural origin(原点经线)、False_Easting东伪偏移、False_Northing北伪偏移等参数。

      5.定义投影坐标系:目标坐标系类型是笛卡尔坐标系,在前面定义的椭球体、地理坐标系和投影转换规则基础上,得到3857投影坐标系。

      6.  定义8307向3857的转换。

      其中涉及到不少代号和Oracle Spatial中已定义的属性项,可在官方文档中进行查找:          

    http://docs.oracle.com/cd/B28359_01/appdev.111/b28400/sdo_cs_concepts.htm#SPATL640

        

      附一点中文资料:    

      SDO_COORD_OPS Table中关于坐标类型的定义:

         一维坐标系:

              垂直(VERTICAL):这些坐标系在对地球表面高度的建模中有着典型的应用。这个高度既可以是大地水准面高度,也可以是椭球高度(就是在  参考系中,用来近似地球表面的椭球面的高度)

         二维坐标系:

              地理二维(Geographic2D):这个类型的坐标系通过参照椭球来实现对地球表面经度和纬度的近似。这个类型也被称为大地坐标系。

    投影(Projected):这个类型的坐标系定义了如何将一个地理二维参考系的经度和纬度投影到一个笛卡尔坐标上。就像在前面"投影坐标系"中所讨论的,你可以使用不同类别的坐标投影技术,如等积投影和等距投影。

         3D坐标系:

             地理三维(Geographic3D):这个类型的坐标系根据大地基准(椭球)来确定经度、纬度和椭球高度。

             地心(Geocentric):这个类型的坐标系以地心为中心来确x、y、z值(而不是地理三维中的表面椭球)。

             复合(Compound):这种方法把地理二维(经纬度)或投影的坐标系与基于重力、海拔等来指定高度的垂直坐标系结合起来。

         本地坐标系

              工程学:这些坐标系都是一些特定应用的坐标系。它们与地球表面的数据相关或无关,但是数据经常被当作是在笛卡尔坐标系中对待。

     
     

    感谢所有引用链接作者的工作!

  • 相关阅读:
    2018年5月份
    2018年4月份
    2018年3月份
    2018年2月份
    代码书写欣赏
    关于Model层中Datetime Datetime? 默认值的问题
    关于DotNetBar中DataGridViewX 自动全屏 Anchor属性无效问题
    关于ios 8 7 下的模态窗口大小的控制 代碼+場景(mainstoryboard)( Resizing UIModalPresentationFormSheet )
    ios 关于StoryBoard 的简易使用说明
    VS2012 Build相关
  • 原文地址:https://www.cnblogs.com/beautifulplanet/p/4230282.html
Copyright © 2011-2022 走看看