alireza / geobundle
Doctrine Geo 扩展
dev-master
2017-01-24 13:37 UTC
Requires
- php: >=5.3.3
- doctrine/doctrine-bundle: ~1.2
- doctrine/orm: ~2.2,>=2.2.3
- symfony/symfony: ~2.4
This package is not auto-updated.
Last update: 2024-09-23 15:35:56 UTC
README
此包提供了一个简单的 MySQL POINT 数据类型集成和一些距离计算。
请注意:此包处于早期开发阶段,使用时请自行承担风险!
安装
请使用 composer(通过自定义仓库)安装此包,并将以下选项添加到您的 config.yml 文件中
doctrine:
dbal:
types:
point: Digilist\GeoBundle\ORM\PointType
mapping_types:
point: point
orm:
dql:
numeric_functions:
DISTANCE: Digilist\GeoBundle\ORM\Distance
使用方法
安装后,您现在可以在实体定义中使用新的 POINT
数据类型。
/**
* @Column(type="point")
*/
private $coordinates;
距离计算(您可以在查询构建器或 DQL 函数的任何地方使用 DISTANCE 函数)
// Query Builder
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->from('Company', 'c')
->where('DISTANCE(c.coordinates, :lat, :lng) < 20')
->setParameter('lat', $point->getLatitude())
->setParameter('lng', $point->getLongitude());