mythril / doctrine2-spatial
Doctrine2对空间类型和函数的多平台支持
dev-master
2013-09-24 08:09 UTC
Requires
- doctrine/orm: >=2.1
Requires (Dev)
- doctrine/common: >=2.1
- doctrine/dbal: >=2.1
This package is not auto-updated.
Last update: 2024-09-24 05:41:04 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)'