图数据库中的空间值——实现图数据库内容在地理坐标系下展现

一个帅气的boy,你可以叫我Love And Program
⌨个人主页:Love And Program的个人主页
如果对你有帮助的话希望三连支持一下博主

图数据库中的空间值——实现图数据库内容在地理坐标系下展现_第1张图片

坐标参考系统

  • 地理坐标系及地图经纬度拾取
  • 笛卡尔坐标系
    • 在这里插入图片描述
  • 图数据库(以Galaxybase为例)
    • 使用地理坐标完成数据库建模
    • 使用笛卡尔坐标建模

地理坐标系及地图经纬度拾取

地理坐标系(Geographic Coordinate System),是使用三维球面来定义地球表面位置,以实现通过经纬度对地球表面点位引用的坐标系。一个地理坐标系包括角度测量单位、本初子午线和参考椭球体三部分。在球面系统中,水平线是等纬度线或纬线。垂直线是等经度线或经线。

       地理坐标系是一种使用球面纬度和经度度量来描述地球表面地理位置的方法,可以确定地球上任意一点的位置,先将地球抽象成一个椭球体,称为参考椭球体,然后在其上面定义一系列的经线和纬线构成经纬网,从而达到通过经纬度来描述地表点位的目的,详细知识可以参考ArcGIS内的介绍。

       实际应用可以使用百度地图、高德地图,点击直接进入网页查询相应位置拾取经纬度。
图数据库中的空间值——实现图数据库内容在地理坐标系下展现_第2张图片


图数据库中的空间值——实现图数据库内容在地理坐标系下展现_第3张图片

       这里就不得不提起ArcGis,这是一个非常强大的“计算机制图”应用,允许用户在线创建、浏览、使用和分享智能地图信息,并可以应用于Web前端
(有免费版可以下载,对相关方面感兴趣的同学可以入手学习一波。)
图数据库中的空间值——实现图数据库内容在地理坐标系下展现_第4张图片

笛卡尔坐标系

笛卡尔坐标系(Cartesian coordinates)就是直角坐标系和斜坐标系的统称。相交于原点的两条数轴,构成了平面仿射坐标系 [1] 。如两条数轴上的度量单位相等,则称此仿射坐标系为笛卡尔坐标系。两条数轴互相垂直的笛卡尔坐标系,称为笛卡尔直角坐标系,否则称为笛卡尔斜角坐标系。

       这个需要大家发散一下思维,在脑海中建立一个二维或是三维的坐标系,和高中学过的知识是类似的,这里简单看个图就可以,原理不再多余赘述,详细可见。

图数据库中的空间值——实现图数据库内容在地理坐标系下展现_第5张图片

图数据库(以Galaxybase为例)

       图数据库采用声明式图数据库查询语言(OpenCypher),OpenCypher支持空间类型值处理,底层数据库支持将这些点值存储为节点和关系上的属性,然后使用坐标值也就是经纬度通过坐标参考系统实现。

地理坐标参考系统 笛卡尔坐标参考系统
WGS-84:经度,纬度(x,y) 笛卡尔:x,y
WGS-84-3D:经度,纬度,高度(x,y,z) 笛卡尔 3D:x,y,z
用于对地球上的点进行建模 用于对欧式空间中建模
  • 地理坐标参考系统
  • 纬度和经度字段的单位为十进制,需要使用OpenCypher指定为浮点数。
  • 不能使用其他任何如度、分、秒等格式的数据型。
  • 如果坐标格式或单位不满足支持类型,需要对其进行显示转换。

  • 笛卡尔坐标参考系统
  • 笛卡尔CRS中的2D点由包含x和y坐标值的地图指定;笛卡尔坐标系中的3D点通过x,y,和z坐标值的映射指定
  • x,y和z字段的单位未指定,可以表示用户想要的任何含义。
  • 我们不仅无法将地理点与笛卡尔点进行比较,同样也无法计算2D点和3D点之间的距离,需要对其进行显示转换。

使用地理坐标完成数据库建模

  • 目前Galaxybase图数据库使用地理坐标参考系统仅可以用如下形式longitude,latitude 和 height 或 z搭建2D或3D经纬度模型,其GEOGRAPHICPOINT类型目前还无法正常使用。
    图数据库中的空间值——实现图数据库内容在地理坐标系下展现_第6张图片

  • 创建完成后填入地图搜索到的经纬度
    图数据库中的空间值——实现图数据库内容在地理坐标系下展现_第7张图片

  • 然后应先进行查询功能,查询完成后——此时服务器内部已经接收到对应经纬度坐标,然后 开启地图模式(请确保可以连接到对应地图链接),自动匹配到相应位置,如下图:
    图数据库中的空间值——实现图数据库内容在地理坐标系下展现_第8张图片

使用笛卡尔坐标建模

       使用笛卡尔坐标系在欧式空间中建模,无法在具体地理位置中显示,但是更方便于理论计算,其两点间的计算方式遵循勾股定理,而地理坐标间的距离更倾向于以模拟环境下的地球表面之间的距离为参考

       当计算两个点之间的距离时可以 简单理解为第一个是理论计算的值,第二个是现实应用计算的值,以下列代码为例:

WITH point({ x:3, y:0 }) AS p2d, point({ x:0, y:4, z:1 }) AS p3d
RETURN distance(p2d,p3d) AS bad, distance(p2d,point({ x:p3d.x, y:p3d.y })) AS good

图数据库中的空间值——实现图数据库内容在地理坐标系下展现_第9张图片

有其他问题大家可以在评论区讨论哦

你可能感兴趣的:(图数据库,arcgis,数据库,3d)