mythril/doctrine2-spatial

Doctrine2对空间类型和函数的多平台支持

dev-master 2013-09-24 08:09 UTC

README

Doctrine2对空间类型和函数的多平台支持。目前支持MySQL和PostgreSQL(含PostGIS)。如有需求,可能增加对其他平台的支持。

此包是对我的doctrine2-mysql-spatial包的重构/延续。

类型

以下SQL/OpenGIS类型已实现为PHP对象和相关Doctrine类型

几何体

  • 线字符串
  • 多边形
  • 多点
  • 多线字符串
  • 多多边形

地理

与几何体类似,但SRID值始终使用(仅PostGIS支持SRID),并且只接受有效的“地理”坐标。

  • 线字符串
  • 多边形

计划中

  • 几何体集合
  • 3D/4D几何体??
  • 栅格?????

支持WKB/WKT和EWKB/EWKT返回值。目前语句中仅使用WKT/EWKT。

函数

目前DQL支持以下SQL函数(更多即将到来)

PostgreSQL

  • ST_Area
  • ST_AsBinary
  • ST_AsText
  • ST_Centroid
  • ST_ClosestPoint
  • ST_Contains
  • ST_ContainsProperly
  • ST_CoveredBy
  • ST_Covers
  • ST_Crosses
  • ST_Disjoint
  • ST_Distance
  • ST_Envelope
  • ST_GeomFromText
  • ST_Length
  • ST_LineCrossingDirection
  • ST_StartPoint
  • ST_Summary

MySQL

  • 面积
  • AsBinary
  • AsText
  • 包含
  • 不相交
  • 边界框
  • GeomFromText
  • GLength
  • MBRContains
  • MBRDisjoint
  • StartPoint

DQL AST Walker

包括一个DQL AST Walker,当与以下DQL函数一起使用时,将从查询中返回适当的几何体类型对象而不是字符串

  • AsText
  • ST_AsText
  • AsBinary
  • ST_AsBinary

EWKT/EWKB函数支持计划中。

示例

    $query = $this->em->createQuery('SELECT AsText(StartPoint(l.lineString)) MyLineStringEntity l');

    $query->setHint(Query::HINT_CUSTOM_OUTPUT_WALKER, 'CrEOF\Spatial\ORM\Query\GeometryWalker');

    $result = $query->getResult();

$result[n][1]现在将是Point类型,而不是字符串'POINT(X Y)'