如何使用PHP在MongoDB中存储GeoJson

时间:2014-10-30 13:28:46

标签: php mongodb odm


我正在尝试使用Doctrine ODM在MongoDb中以GeoJson格式存储位置: 我所做的是:
映射:

class Coordinates
{

    /** @MongoDB\String */
    protected $type;

    /** @MongoDB\Hash */
    protected $coordinates;

    public function __construct($type='Point',$coordinates)
    {
        $this->setType($type);
        $this->setCoordinates($coordinates);
    }

当我尝试存储一个位置时,我得到如下:

coordinates: { type: "Point", coordinates: { 0: -6.855243444442749, 1: 33.9704221689807 } }

这不是GeoJson格式。 正确的格式应该是

   coordinates: { type: "Point", coordinates: [ -6.855243444442749,33.9704221689807 ] }

我怎样才能做到这一点? 非常感谢你!

编辑! 这是我如何将它存储在PHP中:

$coordinates=new Coordinates('Point',[$lng,$lat]);

1 个答案:

答案 0 :(得分:1)

是的! 我在twitter上得到了答案:P 我应该将整个坐标字段映射为哈希