VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 数据库 > MySQL >
  • Mysql空间数据&空间索引(spatial)

转自:http://www.cnblogs.com/linkerCRed/p/5443200.html

Extensions for Spatial Data

Open Geospatial Consortium (OGC) 是一个由超过两百五十个公司,机构,大学组成的致力于发展管理空间数据的解决方案的组织。
 
OGC 发布了OpenGIS® Implementation Standard for Geographic information - Simple feature access - Part 2: SQL option , 这个文档建议了几种方法扩展RDBMS来支持空间数据。文档查看: http://www.opengeospatial.org/standards/sfs.
 
遵循OGC文档,MySQL以 SQL with Geometry Types (几何类型SQL)环境的一个子集实现了空间扩展。这个环境是指SQL环境扩展的一系列几何类型。一个 geometry-valued(几何-值)列由一个带有几何类型的列实现。规格文档描述了一系列的SQL 几何类型,以及用于创建,分析几何数值的方法。
 
MySQL spatial extensions实现了空间特性的生成,存储和分析。
 
  • 用于表示空间值得数据类型 Data types for representing spatial values

  • 用于操作空间值得方法Functions for manipulating spatial values

  • 提高访问空间列速度的空间索引Spatial indexing for improved access times to spatial columns 

 
数据类型和方法在MyISAM, InnoDB, NDB, and ARCHIVE中可用。至于空间索引, MyISAM and InnoDB支持空间和非空间索引,其他引擎支持非空间索引
 
geographic feature(地理特性)  是指世界上的所有东西都有一个location(位置)。这个特性可以是:
 
       
  • 一个实体,例如一座山,一个池塘,一个城市 An entity. For example, a mountain, a pond, a city.

  • 一个空间,例如城区,热带地区A space. For example, town district, the tropics.

  • 一个确定的位置。例如一个特定两条街交叉的十字路口A definable location. For example, a crossroad, as a particular place where two streets intersect. 

 
地理定义为一个点point,或者由点聚合起来表示的任意东西的位置
 

MySQL GIS Conformance(一致性) and Compatibility(兼容性)

Mysql 没有实现以下GIS特性:
   
     额外的Metadata Views
    
    OpenGIS中LineString and MultiLineString的方法length() 应该使用ST_Length()
 

Additional Resources

Spatial Data Types

    MySQL包含OpenGIS 类相对应的数据类型,其中一些类型保存单一几何值
  • GEOMETRY 几何体

  • POINT 点

  • LINESTRING 线

  • POLYGON 多边形

     

GEOMETRY可以存储任意几何类型。其他的类型需要特定的几何类型
其他类型用于保存集合
    
  • MULTIPOINT 多点

  • MULTILINESTRING 多线

  • MULTIPOLYGON 多个多边形

  • GEOMETRYCOLLECTION 几何集合

 
GEOMETRYCOLLECTION可以存放任意类型的集合。其他类型需要特定几何类型
 

12.5.2 The OpenGIS Geometry Model

OGC's SQL with Geometry Types推荐的几何类型基于OpenGIS Geometry Model.在这个模型中每个几何包含以下通用的属性:
   
  • 它由一个空间关系系统关联起来,这个系统描述了对象定义的坐标空间。

  • 他属于一些几何类

12.5.2.1 The Geometry Class Hierarchy几何类层级

  • Geometry (noninstantiable)几何

    • Point (instantiable)点

    • Curve (noninstantiable)曲线

      • LineString (instantiable)线串

        • Line线

        • LinearRing线圈

    • Surface (noninstantiable) 面

      • Polygon (instantiable)多边形

    • GeometryCollection (instantiable)几何集合

      • MultiPoint (instantiable)多点

      • MultiCurve (noninstantiable)多曲线

        • MultiLineString (instantiable)多线串

      • MultiSurface (noninstantiable)多面

        • MultiPolygon (instantiable) 多个多边形

 
所有的noninstantiable不可创建,instantiable可创建,所有的类有属性,可实例化类还包含认证(判断有效的类实例的规则)
 
Geometry是基本类,他是一个虚拟类。Geometry可实例化子类限制在0、1/2维几何对象,这个对象存在于一个二维坐标空间。所有可实例化几何类被定义可以判断几何类型实例是否是 topologically closed(拓扑闭,也就是说所有的几何类型包含他们的边界)
 
Geometry有以下子类; Point, Curve, Surface, and GeometryCollection
       
  • 点表示0维对象 Point represents zero-dimensional objects.

  • Curve曲线代表一维对象,他有LineString线串子类(子-子类=》Line 线,LinearRing线圈)

  • 面Surface表示一个二 维对象,他有Polygon多边形这个子类

  • GeometryCollection几何集合有专门的0/1/2维集合类叫做MultiPoint, MultiLineString, and MultiPolygon 来建立PointsLineStrings, and Polygons集合相应的几何模型, .MultiCurve and MultiSurface 是做为处理 Curves and Surfaces几何的接口引进的虚拟父类。

 

12.5.2.2 Geometry Class

Geometry是层级中的root class,他是不可实例化类,但是包含一些属性,这些属性是所有Geometry子类共有的。
   Geometry Properties
          
  •  Its type. 每一个geometry属于层级中的某一个可实例化类。

  • Its SRID, or Spatial Reference Identifier.空间关系标示,这个值标识了geometr关联的空间关系系统,系统描述了几何对象在其中定义的坐标空间。

    In MySQL, the SRID value是一个整数关联到几何value.所有的计算通过欧几里得(平面)几何所得.  SRID最大值是232−1. 如果提供了一个更大值只会取其低32位。

  • Its coordinates 在他的空间关系系统中的坐标。由双精度(8-byte)数据表示. 所有的非空几何体包含至少一对(X,Y)坐标.空几何体不包含任何坐标.

    坐标Coordinates和SRID相关 .例如,在不同的坐标系统,两个对象即使这两个对象有相同的坐标但是距离可能会不同,,因为在平面 planar 坐标系统的距离和在地理测量geodetic 系统(地球表面上的系统坐标)的距离是不同的东西.

  • Its interior内部, boundary边界, and exterior外部.

    每一个几何占据了一些空间中的位置。 几何体的外部是指所有没有被几何体占用的空间.内部是指几何体占据的空间。边界是指内部和外部间的交接处

  • Its MBR (最小边框矩形minimum bounding rectangle), 或者envelope封闭线. 这个是边界几何体,由最大的坐标和最小的坐标组成(X,Y):

    ((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY))
    
  • Whether the value is simple or nonsimple.